module FindDuplicates

Constants

VERSION

Public Instance Methods

duplicate?(*args) click to toggle source
# File lib/find_duplicates.rb, line 7
def duplicate?(*args)
  set_fields(args)
  duplicates_with_self(@fields).count > 1
end
duplicates(*args) click to toggle source
# File lib/find_duplicates.rb, line 12
def duplicates(*args)
  set_fields(args)
  duplicates_with_self(@fields).where('id <> ?', id)
end
duplicates_with_self(*args) click to toggle source
# File lib/find_duplicates.rb, line 17
def duplicates_with_self(*args)
  set_fields(args)
  self.class.where(self.attributes.slice(*@fields))
end

Private Instance Methods

set_fields(args) click to toggle source
# File lib/find_duplicates.rb, line 45
def set_fields(args)
  @fields = args.is_a?(Array) ? args : [args]
  @fields = @fields.flatten.map &:to_s
end