module RuboCop::Cop::Duplication

def consecutive_duplicates(collection)

Returns:
  • (Array) - the consecutive duplicates

Parameters:
  • collection (Array) -- an array to return consecutive duplicates for
def consecutive_duplicates(collection)
  grouped_duplicates(collection).flat_map { |items| items[1..] }
end

def duplicates(collection)

Returns:
  • (Array) - all the duplicates

Parameters:
  • collection (Array) -- an array to return duplicates for
def duplicates(collection)
  grouped_duplicates(collection).flatten
end

def duplicates?(collection)

Returns:
  • (Boolean) - whether the array contains any duplicates

Parameters:
  • collection (Array) -- an array to check for duplicates
def duplicates?(collection)
  collection.size > 1 && collection.size > collection.uniq.size
end

def grouped_duplicates(collection)

Returns:
  • (Array) - the grouped duplicates

Parameters:
  • collection (Array) -- an array to group duplicates for
def grouped_duplicates(collection)
  collection.group_by { |item| item }.values.reject(&:one?)
end