Class: GroupMerge
- Inherits:
-
Object
- Object
- GroupMerge
- Includes:
- ActiveModel::Associations, ActiveModel::Model
- Defined in:
- app/models/group_merge.rb
Constant Summary collapse
- ONLY_ON_TARGET =
:only_on_target- ONLY_ON_SOURCE =
:only_on_source- ON_BOTH =
:on_both
Instance Method Summary collapse
- #[](attr) ⇒ Object
- #[]=(attr, value) ⇒ Object
- #associations_to_merge ⇒ Object
- #save! ⇒ Object
- #to_merge_elements ⇒ Object
Instance Method Details
#[](attr) ⇒ Object
22 23 24 |
# File 'app/models/group_merge.rb', line 22 def [](attr) send(attr) end |
#[]=(attr, value) ⇒ Object
26 27 28 |
# File 'app/models/group_merge.rb', line 26 def []=(attr, value) send("#{attr}=", value) end |
#associations_to_merge ⇒ Object
43 44 45 |
# File 'app/models/group_merge.rb', line 43 def associations_to_merge i[users memberships ] end |
#save! ⇒ Object
36 37 38 39 40 41 |
# File 'app/models/group_merge.rb', line 36 def save! ActiveRecord::Base.transaction do source_new_elements.each { |x| add_element_to_target(x[0], x[1]) } source.destroy! end end |
#to_merge_elements ⇒ Object
30 31 32 33 34 |
# File 'app/models/group_merge.rb', line 30 def to_merge_elements (target_elements + source_elements).uniq.map do |x| [x[0], element_on_status(x)] end end |