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.
-
#model_name ⇒ Object
Returns the value of attribute model_name.
-
#primary ⇒ Object
Returns the value of attribute primary.
-
#success ⇒ Object
Returns the value of attribute success.
Instance Method Summary collapse
Instance Attribute Details
#duplicates ⇒ Object
Returns the value of attribute duplicates
5 6 7 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 5 def duplicates @duplicates end |
#failure ⇒ Object
Returns the value of attribute failure
5 6 7 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 5 def failure @failure end |
#model_name ⇒ Object
Returns the value of attribute model_name
5 6 7 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 5 def model_name @model_name end |
#primary ⇒ Object
Returns the value of attribute primary
5 6 7 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 5 def primary @primary end |
#success ⇒ Object
Returns the value of attribute success
5 6 7 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 5 def success @success end |
Instance Method Details
#squash ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 22 def squash if valid? duplicates.each do |duplicate| SingleSquasher.new(primary, duplicate, model_name).squash end name = model_name.split('::').last self.success = "Squashed duplicate #{name.pluralize} #{duplicates.map(&:title).sort} into primary #{primary.id}." end self end |
#valid? ⇒ Boolean
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/calagator/duplicate_checking/duplicate_squasher.rb', line 10 def valid? name = model_name.split('::').last self.failure = "A primary #{name} must be selected." if primary.blank? if duplicates.empty? self.failure = "At least one duplicate #{name} must be selected." end if duplicates.include?(primary) self.failure = "The primary #{name} could not be squashed into itself." end failure.blank? end |