如何在使用File#open时设置文件的编码?
我们都知道“神奇” # encoding: utf-8 线。 但我已经看到了其他几种备选符号,其中一些非常狂野。 你知道或使用这些吗? 有什么可以接受的更一般的规则吗? 编辑:好的,显然有三种方法: # encoding: UTF-8 # coding: UTF-8 # -*- coding: UTF-8 -*- (更多在http://blog.grayproductions.net/articles/ruby_19s_three_default_encodings )
这些课程有什么区别? 他们的目的有什么区别?
在ruby1.9有没有一种方法来定义这个哈希与新的语法? irb> { a: 2 } => {:a=>2} irb> { ab: 2 } SyntaxError: (irb):5: syntax error, unexpected tLABEL { ab: 2 } ^ 与旧的,它的工作: irb> { :"ab" => 2 } => {:"ab"=>2}
在Ubuntu 9.04上,有没有办法将Ruby 1.8安装为ruby1.8 (或者完全清除它),并将Ruby 1.9作为默认的ruby ?
如果我想在Ruby中require一个相关文件, 而且我希望它能在1.8.x和> = 1.9.2中工作,那么最佳做法是什么? 我看到几个选项: 只要做$LOAD_PATH << '.' 忘记一切 做$LOAD_PATH << File.dirname(__FILE__) require './path/to/file' 检查RUBY_VERSION <1.9.2,然后将require_relative定义为require ,然后在require地方使用require_relative 检查require_relative已经存在,如果是,则尝试按前面的方式继续 使用奇怪的结构,如 require File.join(File.dirname(__FILE__), 'path/to/file') – 唉,他们似乎并不在Ruby 1.9中工作,因为,例如: $ cat caller.rb require File.join(File.dirname(__FILE__), 'path/to/file') $ cat path/to/file.rb puts 'Some testing' $ ruby caller Some testing $ pwd /tmp $ ruby /tmp/caller Some testing $ ruby tmp/caller tmp/caller.rb:1:in 'require': […]
我不清楚“当前”版本的Ruby(1.8)和“新”版本(1.9)之间的差异。 对于这些差异有什么“简单的”或“简单的”解释,以及它们为何如此不同?
引用良好的RIP Hash火箭文章似乎暗示了Hash Rocket语法( :foo => "bar" )已被弃用,以支持新到Ruby JSON风格的散列( foo: "bar" ),但是我找不到任何明确的引用,说明从Ruby 1.9开始,Hash Rocket表单实际上已被弃用/未被使用。
是否有任何区别:key => "value" (hashrocket)和key: "value" (Ruby 1.9)符号? 如果没有,那么我想用key: "value"符号。 有没有一个gem,可以帮助我从:x =>转换为x: notations?