Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/hash_to_obj.rb
Instance Method Summary collapse
-
#to_obj ⇒ Object
Convert a Hash to a Class object.
Instance Method Details
#to_obj ⇒ Object
Convert a Hash to a Class object. This method accepts multi-dimensional hashes.
Example:
>> myhash = { :title => "hello world" }.to_obj
>> myhash.title
=> "hello world"
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/hash_to_obj.rb', line 10 def to_obj hash = self klass = Class.new hash.each do |key, val| klass.send(:define_method, "#{key}=", proc { |val| klass.instance_variable_set("@#{key}", val) }) klass.send(:define_method, key, proc { klass.instance_variable_get("@#{key}") }) unless val.instance_of? Hash klass.instance_variable_set("@#{key}", val) else klass.instance_variable_set("@#{key}", val.to_obj) end end klass.new end |