Module: FatJam::ActsAsRevisable::CloneAssociations
- Defined in:
- lib/acts_as_revisable/clone_associations.rb
Class Method Summary collapse
- .clone_association(association, to) ⇒ Object
- .clone_associations(from, to) ⇒ Object
- .clone_belongs_to_association(association, to) ⇒ Object
- .clone_has_many_association(association, to) ⇒ Object
Class Method Details
.clone_association(association, to) ⇒ Object
18 19 20 21 22 |
# File 'lib/acts_as_revisable/clone_associations.rb', line 18 def clone_association(association, to) = association..clone [:foreign_key] ||= "revisable_original_id" to.send(association.macro, association.name, ) end |
.clone_associations(from, to) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/acts_as_revisable/clone_associations.rb', line 7 def clone_associations(from, to) return unless from.descends_from_active_record? && to.descends_from_active_record? to.revision_cloned_associations.each do |key| assoc = from.reflect_on_association(key) meth = "clone_#{assoc.macro.to_s}_association" meth = "clone_association" unless respond_to? meth send(meth, assoc, to) end end |
.clone_belongs_to_association(association, to) ⇒ Object
24 25 26 |
# File 'lib/acts_as_revisable/clone_associations.rb', line 24 def clone_belongs_to_association(association, to) to.send(association.macro, association.name, association..clone) end |
.clone_has_many_association(association, to) ⇒ Object
28 29 30 31 32 |
# File 'lib/acts_as_revisable/clone_associations.rb', line 28 def clone_has_many_association(association, to) = association..clone [:foreign_key] ||= "revisable_original_id" to.send(association.macro, association.name, ) end |