class RuboCop::Cop::Rails::DelegateAllowBlank

This cop looks for delegations that pass :allow_blank as an option instead of :allow_nil. :allow_blank is not a valid option to pass to ActiveSupport#delegate.

@example

# bad
delegate :foo, to: :bar, allow_blank: true

# good
delegate :foo, to: :bar, allow_nil: true

Constants

MSG

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rails/delegate_allow_blank.rb, line 27
def on_send(node)
  offending_node = allow_blank_option(node)

  return unless offending_node

  add_offense(offending_node)
end

Private Instance Methods

allow_blank_option(node) click to toggle source
# File lib/rubocop/cop/rails/delegate_allow_blank.rb, line 43
def allow_blank_option(node)
  delegate_options(node) do |hash|
    hash.pairs.find { |opt| allow_blank_option?(opt) }
  end
end
autocorrect(pair_node) click to toggle source
# File lib/rubocop/cop/rails/delegate_allow_blank.rb, line 37
def autocorrect(pair_node)
  lambda do |corrector|
    corrector.replace(pair_node.key.source_range, 'allow_nil')
  end
end