Recently I hit this funny problem in ruby, when trying to merge options to ENV. Although ENV supports most of Hash functions, it's not really Hash instance:
irb(main):001:0> ENV.class => Object irb(main):002:0> env = { 'X'=>1 } => {"X"=>1}
irb(main):003:0> env.class => Hash
There are some useful methods missing from ENV like merge!
irb(main):004:0> ENV.merge(env) NoMethodError: undefined method `merge' for #<object:0xb7f54814> from (irb):4
Workaround is simple enough, merge! hash manualy:
irb(main):012:0> env.each { |k,v| ENV[k.to_s]=v.to_s } => {"X"=>1} irb(main):013:0> ENV["X"] => "1"
No comments:
Post a Comment