Class: SingleType
- Inherits:
-
Object
- Object
- SingleType
- Defined in:
- lib/ObjectModel/Types/SingleType.rb
Class Method Summary collapse
- .delete_all_children(e, m) ⇒ Object
- .delete_all_references_to(referrer, e, m) ⇒ Object
- .delete_from_parent(e, parent, m) ⇒ Object
- .each(e, m, &b) ⇒ Object
- .initial_value(m, e) ⇒ Object
- .initialize_copy(m, e, c) ⇒ Object
- .load(m, e, storage) ⇒ Object
- .persist(c, entity_id, m, storage) ⇒ Object
- .write_back(c, e, m) ⇒ Object
Class Method Details
.delete_all_children(e, m) ⇒ Object
38 39 40 41 42 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 38 def delete_all_children e, m child = e.send m.name # p [e.name, m.name, child] child.delete if child != nil end |
.delete_all_references_to(referrer, e, m) ⇒ Object
44 45 46 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 44 def delete_all_references_to referrer, e, m referrer.send m.name.to_writer, nil if referrer.send(m.name) == e end |
.delete_from_parent(e, parent, m) ⇒ Object
48 49 50 51 52 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 48 def delete_from_parent e, parent, m if parent.send(m.name.to_reader) == e parent.send m.name.to_writer, nil end end |
.each(e, m, &b) ⇒ Object
54 55 56 57 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 54 def each e, m, &b v = e.send m.name b.call v if v != nil end |
.initial_value(m, e) ⇒ Object
5 6 7 8 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 5 def initial_value m, e nil # e.instance_variable_set m.ivname, nil end |
.initialize_copy(m, e, c) ⇒ Object
10 11 12 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 10 def initialize_copy m, e, c c[m.ivname] = e.instance_variable_get(m.ivname) end |
.load(m, e, storage) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 20 def load m, e, storage row = storage[:entities_content][:entity_id => e.entity_id, :name => m.name.to_s] raise LoadError unless row value = AnEntity::EntityType.load_id! row[:value], row[:class] e.instance_variable_set m.ivname, value end |
.persist(c, entity_id, m, storage) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 28 def persist c, entity_id, m, storage value, klass = AnEntity::EntityType.dump_id! c[m.ivname] storage[:entities_content].insert( :entity_id => entity_id, :name => m.name.to_s, :value => value, :class => klass ) end |
.write_back(c, e, m) ⇒ Object
14 15 16 17 18 |
# File 'lib/ObjectModel/Types/SingleType.rb', line 14 def write_back c, e, m value = c[m.ivname] value.should! :be_a, [NilClass, String] e.instance_variable_set m.ivname, value end |