Class: RubySync::Connectors::MemoryConnector
- Inherits:
-
BaseConnector
- Object
- BaseConnector
- RubySync::Connectors::MemoryConnector
- Includes:
- MemoryAssociationTracking, MemoryChangeTracking
- Defined in:
- lib/ruby_sync/connectors/memory_connector.rb
Instance Attribute Summary
Attributes inherited from BaseConnector
#is_vault, #name, #once_only, #pipeline
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #add(id, operations) ⇒ Object
- #delete(id) ⇒ Object
- #each_entry ⇒ Object
-
#initialize(options) ⇒ MemoryConnector
constructor
A new instance of MemoryConnector.
- #modify(id, operations) ⇒ Object
Methods included from MemoryChangeTracking
#delete_from_mirror, #digest, #each_change, #remove_mirror, #shadow, #update_mirror
Methods included from MemoryAssociationTracking
#associate, #association_key_for, #associations_by_path, #associations_for, #path_for_association, #paths_by_association, #remove_association, #remove_associations
Methods inherited from BaseConnector
#association_context, #association_for, #can_act_as_vault?, #clean, #create_operations_for, #entry_for_own_association_key, event_method, fields, #find_associated, #has_entry_for_key?, #is_delete_echo?, #is_echo?, #is_vault?, #own_association_key_for, #path_for_own_association_key, sample_config, #start, #started, #stop, #stopped, #sync_started, #sync_stopped, target_transform, #test_add, #test_delete, #test_modify, track_associations_with, track_changes_with
Methods included from ConnectorEventProcessing
#associated_path, #clean, #delete_from_mirror, #perform_add, #perform_delete, #perform_modify, #process, #update_mirror
Methods included from Utilities
#as_array, #call_if_exists, #class_called, #class_for_name, #class_name_for, #connector_called, #dump_after, #dump_before, #effective_operations, #ensure_dir_exists, #get_preference, #get_preference_file_path, #include_in_search_path, #log_progress, #perform_operations, #perform_transform, #pipeline_called, #set_preference, #something_called, #with_rescue
Constructor Details
#initialize(options) ⇒ MemoryConnector
Returns a new instance of MemoryConnector.
34 35 36 37 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 34 def initialize super @data = {} end |
Instance Method Details
#[](key) ⇒ Object
67 68 69 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 67 def [](key) @data[normalize(key)] end |
#[]=(key, value) ⇒ Object
71 72 73 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 71 def []=(key, value) @data[normalize(key)] = value end |
#add(id, operations) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 39 def add id, operations id = normalize id raise Exception.new("Item already exists") if @data[id] log.debug "Adding new record with key '#{id}'" @data[id] = perform_operations operations association_key = (is_vault?)? nil : [nil, own_association_key_for(id)] return id end |
#delete(id) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 56 def delete id id = normalize id unless @data[id] log.warn "Can't delete non-existent item '#{id}'" return end @data.delete id end |
#each_entry ⇒ Object
27 28 29 30 31 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 27 def each_entry @data.each do |key, entry| yield key, entry end end |
#modify(id, operations) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/ruby_sync/connectors/memory_connector.rb', line 48 def modify id, operations id = normalize id raise Exception.new("Attempting to modify non-existent record '#{id}'") unless @data[id] perform_operations operations, @data[id] return id end |