class RuboCop::Cop::Rails::EnumUniqueness

This cop looks for duplicate values in enum declarations.

@example

# bad
enum status: { active: 0, archived: 0 }

# good
enum status: { active: 0, archived: 1 }

# bad
enum status: [:active, :archived, :active]

# good
enum status: [:active, :archived]

Constants

MSG

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rails/enum_uniqueness.rb, line 29
def on_send(node)
  enum_declaration(node) do |name, args|
    items = args.values

    return unless duplicates?(items)

    consecutive_duplicates(items).each do |item|
      add_offense(item, message: format(MSG, item.source, name))
    end
  end
end