Class: Yus::Persistence::Odba
- Inherits:
-
Object
- Object
- Yus::Persistence::Odba
- Defined in:
- lib/yus/persistence/odba.rb
Instance Method Summary collapse
- #add_entity(entity) ⇒ Object
- #delete_entity(name) ⇒ Object
- #entities ⇒ Object
- #find_entity(name) ⇒ Object
-
#initialize ⇒ Odba
constructor
A new instance of Odba.
- #save_entity(entity) ⇒ Object
Constructor Details
#initialize ⇒ Odba
Returns a new instance of Odba.
13 14 15 |
# File 'lib/yus/persistence/odba.rb', line 13 def initialize @entities = ODBA.cache.fetch_named('entities', self) { Hash.new } end |
Instance Method Details
#add_entity(entity) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/yus/persistence/odba.rb', line 16 def add_entity(entity) @entities.store(Entity.sanitize(entity.name), entity) entity.odba_store @entities.odba_store entity end |
#delete_entity(name) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/yus/persistence/odba.rb', line 22 def delete_entity(name) if entity = @entities.delete(Entity.sanitize(name)) @entities.odba_store affiliations = entity.affiliations affiliations.odba_delete unless affiliations.odba_unsaved? entity.odba_delete entity end end |
#entities ⇒ Object
31 32 33 |
# File 'lib/yus/persistence/odba.rb', line 31 def entities @entities.values end |
#find_entity(name) ⇒ Object
34 35 36 |
# File 'lib/yus/persistence/odba.rb', line 34 def find_entity(name) @entities[Entity.sanitize(name)] end |
#save_entity(entity) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/yus/persistence/odba.rb', line 37 def save_entity(entity) if(@entities[entity.name]) entity.odba_store else @entities.delete_if { |name, ent| ent.name == entity.name } add_entity(entity) end end |