Class: Calagator::DuplicateChecking::DuplicateSquasher
- Inherits:
-
Struct
- Object
- Struct
- Calagator::DuplicateChecking::DuplicateSquasher
- Defined in:
- lib/calagator/duplicate_checking/duplicate_squasher.rb
Defined Under Namespace
Classes: SingleSquasher
Instance Attribute Summary collapse
-
#duplicates ⇒ Object
Returns the value of attribute duplicates.
-
#failure ⇒ Object
Returns the value of attribute failure.
-
#master ⇒ Object
Returns the value of attribute master.
-
#model_name ⇒ Object
Returns the value of attribute model_name.
-
#success ⇒ Object
Returns the value of attribute success.
Instance Method Summary collapse
Instance Attribute Details
#duplicates ⇒ Object
Returns the value of attribute duplicates
4 5 6 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 4 def duplicates @duplicates end |
#failure ⇒ Object
Returns the value of attribute failure
4 5 6 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 4 def failure @failure end |
#master ⇒ Object
Returns the value of attribute master
4 5 6 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 4 def master @master end |
#model_name ⇒ Object
Returns the value of attribute model_name
4 5 6 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 4 def model_name @model_name end |
#success ⇒ Object
Returns the value of attribute success
4 5 6 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 4 def success @success end |
Instance Method Details
#squash ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 17 def squash if valid? duplicates.each do |duplicate| SingleSquasher.new(master, duplicate, model_name).squash end name = model_name.split("::").last self.success = "Squashed duplicate #{name.pluralize} #{duplicates.map(&:title).sort} into master #{master.id}." end self end |
#valid? ⇒ Boolean
9 10 11 12 13 14 15 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 9 def valid? name = model_name.split("::").last self.failure = "A master #{name} must be selected." if master.blank? self.failure = "At least one duplicate #{name} must be selected." if duplicates.empty? self.failure = "The master #{name} could not be squashed into itself." if duplicates.include?(master) failure.blank? end |