module AccessibleData::DataAccessors
Public Instance Methods
accessor_for_data(data)
click to toggle source
# File lib/accessible_data/data_accessors.rb, line 11 def accessor_for_data(data) HashMethods.each_hash(data) do |hash| hash.each do |key, value| define_accessor(hash, key) accessor_for_data(value) end end end
accessor_for_obj(obj)
click to toggle source
# File lib/accessible_data/data_accessors.rb, line 5 def accessor_for_obj(obj) obj.to_h.keys.each do |key| define_accessor(obj, key) end end
define_accessor(obj, key)
click to toggle source
# File lib/accessible_data/data_accessors.rb, line 20 def define_accessor(obj, key) define_getter(obj, key) define_setter(obj, key) end
define_getter(obj, key)
click to toggle source
# File lib/accessible_data/data_accessors.rb, line 25 def define_getter(obj, key) obj.define_singleton_method(key) do obj.to_h.fetch(key) end end
define_setter(obj, key)
click to toggle source
# File lib/accessible_data/data_accessors.rb, line 31 def define_setter(obj, key) obj.define_singleton_method("#{key}=") do |value| obj.to_h[key] = AccessibleData::DataAccessors.accessor_for_data(value) end end