Sha256: 4a2cbe16694c8a9bad8a80df709c5b2c3c10f457df3eff26092a3bce59e49b42
Contents?: true
Size: 1.68 KB
Versions: 20
Compression:
Stored size: 1.68 KB
Contents
# encoding: utf-8 module RuboCop module Cop module Rails # This cop checks for the use of old-style attribute validation macros. class Validation < Cop MSG = 'Prefer the new style validations `%s` over `%s`.' BLACKLIST = [:validates_acceptance_of, :validates_confirmation_of, :validates_exclusion_of, :validates_format_of, :validates_inclusion_of, :validates_length_of, :validates_numericality_of, :validates_presence_of, :validates_size_of, :validates_uniqueness_of] WHITELIST = [ 'validates :column, acceptance: value', 'validates :column, confirmation: value', 'validates :column, exclusion: value', 'validates :column, format: value', 'validates :column, inclusion: value', 'validates :column, length: value', 'validates :column, numericality: value', 'validates :column, presence: value', 'validates :column, size: value', 'validates :column, uniqueness: value' ] def on_send(node) receiver, method_name, *_args = *node return unless receiver.nil? && BLACKLIST.include?(method_name) add_offense(node, :selector, format(MSG, preferred_method(method_name), method_name)) end private def preferred_method(method) WHITELIST[BLACKLIST.index(method.to_sym)] end end end end end
Version data entries
20 entries across 20 versions & 2 rubygems