Module: RubySync::Connectors::MemoryAssociationTracking

Included in:
MemoryConnector
Defined in:
lib/ruby_sync/connectors/memory_association_tracking.rb

Instance Method Summary collapse

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_pathObject

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_associationObject

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_associationsObject



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