Module: Perpetuity::DataInjectable

Included in:
Mapper, Retrieval
Defined in:
lib/perpetuity/data_injectable.rb

Instance Method Summary collapse

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