As per Ruby Array documentation, there is a method to_h
which can be used to convert arrays to hash as long as each element of the array is another array of two elements. Example below from the same documentation
p [[:foo, :bar], [1, 2]].to_h
However, when I run the above code, I get this error:
irb(main):001:0> p [[:foo, :bar], [1, 2]].to_h
NoMethodError: undefined method `to_h' for [[:foo, :bar], [1, 2]]:Array
from (irb):1
from E:/RubyInstall/bin/irb:12:in `<main>'
irb(main):002:0>
My Ruby version is
C:\>ruby -v
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
I wanted to use this technique to answer another question on Stackoverflow, but I am stuck now as a documented feature of Ruby is not working for me.
Yes, it's not supported for lower version than Ruby 2.1, If you are looking for alternative. Try this
The following code will monkey patch Array and provide a
to_h
method using the code give in @engineersmnky's comment, ifto_h
isn't already defined - that is, in pre-2.1 ruby environments.Ruby 2.0 doesn't support to_h method. its available in 2.1 and higher
The
to_h
method is only available in Ruby version 2.1 or higher.Check the release notes here
http://pivotallabs.com/ruby-2-1-0-changes-of-note/