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
20 21 22 |
# File 'app/models/group_merge.rb', line 20 def [](attr) send(attr) end |
#[]=(attr, value) ⇒ Object
24 25 26 |
# File 'app/models/group_merge.rb', line 24 def []=(attr, value) send("#{attr}=", value) end |
#associations_to_merge ⇒ Object
41 42 43 |
# File 'app/models/group_merge.rb', line 41 def associations_to_merge [:users, :memberships, :permissions] end |
#save! ⇒ Object
34 35 36 37 38 39 |
# File 'app/models/group_merge.rb', line 34 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
28 29 30 31 32 |
# File 'app/models/group_merge.rb', line 28 def to_merge_elements (target_elements + source_elements).uniq.map do |x| [x[0], element_on_status(x)] end end |