A Hash to object converter
Allows you to convert complex Hashes into objects for more common use.
In your Gemfile, make sure you have this gem:
gem 'phantom-object'
Now you can do this
h = {
key: "Some value",
another_key: "Another value"
}
o = PhantomObject.new(h)
p o.key
# => "Some value"
p o.another_key
# => "Another value"
And even this
h = {
nested: {
key: "Some value"
}
}
o = PhantomObject.new(h)
p o.nested.key
# => "Some value"
For any level, and with arrays
And also you can do this, instead of PhantomObject.new()
h = {
key: "Some value",
another_key: "Another value"
}
o = h.to_object
p o.key
# => "Some value"
p o.another_key
# => "Another value"
Also, PhantomObject includes ActiveModel, and you can extend it to use validations, form builders, etc.