Module: Perpetuity::DataInjectable
Instance Method Summary collapse
- #give_id_to(object, *args) ⇒ Object
- #inject_attribute(object, attribute, value) ⇒ Object
- #inject_data(object, data) ⇒ Object
Instance Method Details
#give_id_to(object, *args) ⇒ Object
15 16 17 18 19 |
# File 'lib/perpetuity/data_injectable.rb', line 15 def give_id_to object, *args object.define_singleton_method :id do args.first || object.instance_variable_get(:@id) end end |
#inject_attribute(object, attribute, value) ⇒ Object
3 4 5 6 |
# File 'lib/perpetuity/data_injectable.rb', line 3 def inject_attribute object, attribute, value attribute = "@#{attribute}" unless attribute[0] == '@' object.instance_variable_set(attribute, value) end |
#inject_data(object, data) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/perpetuity/data_injectable.rb', line 8 def inject_data object, data data.each_pair do |attribute,value| inject_attribute object, attribute, value end give_id_to object if object.instance_variables.include?(:@id) end |