后端开发2025年06月19日
最近刚开始学ruby为了练习一下基本语法的使用,用ruby写了一下插入排序算法,可能有些从C#翻译过来的痕迹1、插入排序 seq = [3,4,9,0,2,5,9,7,1].upto(seq.length-) do |i|if seq[i] < seq[i-1] tmp = seq[i] j = i-while(j>= &...
后端开发2025年06月19日
单引号内的内容,ruby会原样输出 双引号内的内容,ruby会解析 我们看个简单的例子,针对字符串 #{foo}test 我们分别用单引号核双引号操作 '#{foo}test' => "\#{foo}test" "#{foo}test" NameError: undefined local variab...
后端开发2025年06月18日
https://rubygems.org/pages/download 如果你的Gem版本太低了,可以参考上面的链接说明,升级到合适的Version ...
后端开发2025年06月18日
Installation: http://rubygems.org/gems/ci_reporter sample rakefile require 'rake/testtask' require 'ci/reporter/rake/test_unit' # use this if you're using Test::Unit ENV['CI_REPOR...
后端开发2025年06月18日
一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news。 观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息...
后端开发2025年06月18日
strategy.txt 模板模式固然不错,但其还是有一些缺陷的。比如其实现依赖于继承并且缺足够的灵活性。在这时候我们就需要找到一个更加优化的解决方案——策略模式。 下面是使用策略模式实现的Report模板 1 #encoding: utf-8 2 3 class Formatter 4 def output_report title, text 5 ra...
后端开发2025年06月18日
我们经常要在子类的initialize方法中调用super和super()。 从语法上说super和super()是有微妙区别的。 super不带括号表示调用父类的同名函数,并将本函数的所有参数传入父类的同名函数; super()带括号则表示调用父类的同名函数,但是不传入任何参数; 演示代码如下: class SParent def initialize ...
后端开发2025年06月18日
从上一篇博文我们可以看出,策略模式的策略类实际上就是一组实现特定功能的代码集合。而ruby实际上已经原生提供了操作一组代码集合的对象,Proc类。于是我们可以用更加ruby些的方式来实现我们的Report类和策略模式。具体代码如下: class Report attr_reader :title, :text attr_accessor :formatte...
后端开发2025年06月18日
昨天因为要装watir-webdriver的原因将用了快一年的ruby1.8.6升级到了1.9。由于1.9是原生支持unicode编码,所以我们可以使用中文进行自动化脚本的编写工作。做了简单的封装后,我们可以实现如下的自动化测试代码。请注意,这些代码是可以正确运行并作为正式的自动化测试用例的。 测试浏览器 = Watir::Browser.new :fir...
后端开发2025年06月18日
前几天在《戏说设计模式》这篇文章中看到了一段关于组合模式的描述: COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。” “……”,MM...