Module: RubySync::Connectors::ActiveRecordAssociationHandler
- Defined in:
- lib/ruby_sync/connectors/active_record_association_handler.rb
Instance Method Summary collapse
- #associate(association, path) ⇒ Object
- #association_key_for(context, path) ⇒ Object
- #associations_for(path) ⇒ Object
- #find_associated(association) ⇒ Object
- #path_for_association(association) ⇒ Object
- #remove_association(association) ⇒ Object
Instance Method Details
#associate(association, path) ⇒ Object
24 25 26 27 28 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 24 def associate association, path log.debug "Associating '#{association}' with '#{path}'" ruby_sync_association.create :synchronizable_id=>path, :synchronizable_type=>ar_class.name, :context=>association.context, :key=>association.key end |
#association_key_for(context, path) ⇒ Object
39 40 41 42 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 39 def association_key_for context, path record = ruby_sync_association.find_by_synchronizable_id_and_synchronizable_type_and_context path, model.to_s, context record and record.key end |
#associations_for(path) ⇒ Object
44 45 46 47 48 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 44 def associations_for(path) ruby_sync_association.find_by_synchronizable_id_and_synchronizable_type(path, model.to_s) rescue ActiveRecord::RecordNotFound return nil end |
#find_associated(association) ⇒ Object
30 31 32 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 30 def find_associated association ruby_sync_association.find_by_context_and_key association.context, association.key end |
#path_for_association(association) ⇒ Object
34 35 36 37 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 34 def path_for_association association assoc = ruby_sync_association.find_by_context_and_key association.context, association.key (assoc)? assoc.synchronizable_id : nil end |
#remove_association(association) ⇒ Object
50 51 52 53 54 |
# File 'lib/ruby_sync/connectors/active_record_association_handler.rb', line 50 def remove_association association ruby_sync_association.find_by_context_and_key(association.context, association.key).destroy rescue ActiveRecord::RecordNotFound return nil end |