Module#instance_methods, #private_instance_methods, #public_instance_methods
在1.9中返回一个由Symbol构成的数组,而不是String数组
class X; def foo; end; end
X.instance_methods(false) # => [:foo] in 1.9, ["foo"] in 1.8
Module#const_defined?, #const_get
在1.9中可以接受一个额外的参数,指明是否要把父类的const也考虑进来,默认是true
module A; X=1; end
module B; include A; end
B.const_defined? "X" # => true
B.const_defined? "X", false # => false
B.const_get "X", false # uninitialized const exception
#class_variable_set, #class_variable_get
现在是public method了, 1.8里面这个方法是private的
class AA; self; end.class_variable_set(:@aa, "foo") # =>"foo" in 1.9, throw NoMethodError in 1.8
单间类现在是对象的类的子类
很难理解的一个特性,比较
class X; end
x = X.new; class << x; self < X; end # => true in 1.9, nil in 1.8
为了搞清楚单件类(singleton)的概念,可以看看
这篇文章先。但是从这篇文章出发,似乎1.8里面上面的片断也应该返回true才对啊?这个改动大概是一个bug fix? 达人指教。
增加Module.module_exec方法
和Object#instance_exec类似
Binding#eval
a = 1
binding.eval("a") # => 1 in 1.9, NoMethodError throws in 1.8
没有采纳的feature:
* Module#method_defined?可以接受第二个参数指明是否把父类的方法包括进来
* Module#class_variable_defined?至少从1.8.6开始就有了
* 使用attr :foo=来定义attr_accessor
* 子类不再能访问类变量
Ruby 1.9 (1): 新语法
Ruby 1.9 (2): 内核与对象...
分享到:
相关推荐
《Ruby程序设计语言》是Ruby的权威指南,全面涵盖该语言的1.8版和1.9版。本书详尽但并不拘泥于语言规范,既适合首次接触Ruby的资深程序员,同样也适合那些想要挑战对这门语言的理解并更深入掌握它的Ruby程序员。本书...
Unicode Utils-Ruby 1.9的Unicode算法 UnicodeUtils在纯Ruby代码中实现了用于大小写转换,规范化,文本分段等的Unicode算法。安装 使用RubyGems安装: gem install unicode_utils或者从Github获取源代码: 并按照...
内部类/模块/异常类 附加库 Ruby变更记录 ruby 1.6 特性 ruby 1.7 特性 ruby 1.8 特性 1.6.8到1.8.0的变更点(总结) ruby 1.9 特性 obsolete 对应DOSISH 附录 疑似BNF的Ruby语法 Ruby术语集 Ruby的...
《Ruby编程语言》详细介绍了Ruby1.8和1.9版本各方面的内容。在对Ruby进行了简要的综述之后,《Ruby编程语言》详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、...
Rubinius,JRuby,MRI入门gem install em-http-request介绍扩展名一些更高阶的Ruby项目已经合并了em-http和其他Ruby HTTP客户端: 便利类和基元的集合,以帮助解开事件代码(Ruby 1.9 + Fibers)。 -将Rack API用于...
§12.3.2 使用Method类和UnboundMethod类 86 §12.3.3 使用eval方法 88 §12.3.4 性能 88 §12.4 Hook和回调方法 89 §12.4.1 什么是Hook 89 §12.4.2 Ruby中的Hook 89 §11.4.2 回调方法 90 §12.5 跟踪程序的运行 ...
特点/问题: 用户应该知道,在使用影子密码的系统上,当前用户以外的用户身份验证将失败,除非 a) 以 root 身份执行身份验证的 Ruby 代码,或者,b) /sbin/unix_chkpwd 是 suid root(或 sgid shadow)。 在某些发行...
CM15 **注意它不是一个稳定的库。 仅用于测试CM15** ...适用于 Ruby 1.9 使用示例: bedroom_lamp = Cm15 :: Components :: Lamp . new :C , 1 bedroom_lamp . light_on 贡献者 凯文·迪斯内尔
Ruby 1.9+用法 只需使用您希望其实现对象定义的任何方法创建一个模块module RemoteControl # turns the device on def on end # turns the device off def off endend然后在您的类中使用implements方法(也别名为...
Ruby 1.9+ JSON样式 confine libs: "simple-graphite" 多个库 confine :libs => ["openstack", "slackcat"] 相当于: confine :libs => "openstack" confine :libs => "slackcat" 相当于: conf
生成“对象”表达式树(OO API)的解析器在Ruby 2.x,3.x和JRuby运行时上运行识别Ruby 1.8、1.9、2.x和3.x正则表达式有关正在使用的regexp_parser的示例,请参见。要求Ruby> = 2.0 Ragel> = 6.0,但仅当您要构建...
Ruby 1.9兼容性 注意…从1.2.5版本开始,TMail与Ruby 1.9.1不兼容。 为了实现1.9.1 +兼容性,建议您查看Mail( )。 在Rails 3.0及更高版本中,ActionMailer使用Mail,并且可以处理您的电子邮件发送和解析需求。 ...
govuk-puppet, 用于置备主 GOV.UK web堆栈的Puppet 清单 GOV.UK Puppet这里...的Puppet 模块和清单正在启动为了运行/测试 Puppet 清单,需要 ruby 1.9. x 和 Bundler 。依赖关系由和图书管理员puppet管理,但希望这应该
该项目用于演示 Ruby 中测试自动化的模块或关键字框架模式 使用说明 安装 Ruby(1.9 或更高版本) 宝石安装Cucumber 宝石安装捆绑器 检查项目 从项目根文件夹,“捆绑执行Cucumber功能” 已知的问题 Hooks.rb 代码...
Mojibake映射的生成需要ruby 1.9中的String编码支持,如下所示: Ruby> = 1.9.2(经过测试的1.9.2p290、1.9.3p392、2.0.0p247 Linux) jruby〜> 1.6.5或〜> 1.7.5(经过测试的1.6.8、1.7.5 Linux) rubinius> = ...
为了运行/测试Puppet清单,您将需要Ruby 1.9.x和Bundler。 依赖关系通过和进行管理,但希望这应该是透明的,除非您需要自己更新依赖关系。 标准品 在添加到此存储库之前,请先熟悉我们的Puppet标准: 在检入之前,...
DTF 旨在成为一个模块化框架,用于测试从 shell 脚本到 Ruby 再到 Rails 应用程序的所有内容。 DTF 是一个保护伞,旨在包含多个子 gem,每个子 gem 都为 DTF 提供附加功能。 DTF 是集成所有其他 dtf-* gem 的主骨架...