Module: RubySync::Connectors::MemoryAssociationTracking
- Included in:
- MemoryConnector
- Defined in:
- lib/ruby_sync/connectors/memory_association_tracking.rb
Instance Method Summary collapse
-
#associate(association, path) ⇒ Object
Store association for the given path.
- #association_key_for(context, path) ⇒ Object
-
#associations_by_path ⇒ Object
Returns an instance based hash path=>context=>key.
- #associations_for(path) ⇒ Object
- #path_for_association(association) ⇒ Object
-
#paths_by_association ⇒ Object
Returns an instance based hash association=>path.
- #remove_association(association) ⇒ Object
- #remove_associations ⇒ Object
Instance Method Details
#associate(association, path) ⇒ Object
Store association for the given path
31 32 33 34 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 31 def associate association, path paths_by_association[association.to_s] = path associations_for(path)[association.context] = association.key end |
#association_key_for(context, path) ⇒ Object
52 53 54 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 52 def association_key_for context, path associations_for(path)[context] end |
#associations_by_path ⇒ Object
Returns an instance based hash path=>context=>key
26 27 28 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 26 def associations_by_path @assocications_by_path ||= {} end |
#associations_for(path) ⇒ Object
40 41 42 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 40 def associations_for path associations_by_path[path] ||= {} end |
#path_for_association(association) ⇒ Object
36 37 38 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 36 def path_for_association association paths_by_association[association.to_s] end |
#paths_by_association ⇒ Object
Returns an instance based hash association=>path
21 22 23 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 21 def paths_by_association @paths_by_association ||= {} end |
#remove_association(association) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 44 def remove_association association path = paths_by_association[association] if path paths_by_association.delete(association) associations_for(path).delete(association.context) end end |
#remove_associations ⇒ Object
56 57 58 59 |
# File 'lib/ruby_sync/connectors/memory_association_tracking.rb', line 56 def remove_associations @paths_by_association = nil @associations_by_path = nil end |