Class: RuboCop::Cop::Chef::ChefModernize::IfProvidesDefaultAction

Inherits:
RuboCop::Cop
  • Object
show all
Defined in:
lib/rubocop/cop/chef/modernize/if_provides_default_action.rb

Overview

if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.

Examples:


# bad
default_action :foo if defined?(default_action)

# good
default_action :foo

Constant Summary collapse

MSG =
'if defined?(default_action) is no longer necessary in Chef Resources as default_action shipped in Chef 10.8.'.freeze

Instance Method Summary collapse

Instance Method Details

#autocorrect(node) ⇒ Object



40
41
42
43
44
# File 'lib/rubocop/cop/chef/modernize/if_provides_default_action.rb', line 40

def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.loc.expression, node.children[1].source)
  end
end

#on_defined?(node) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
38
# File 'lib/rubocop/cop/chef/modernize/if_provides_default_action.rb', line 34

def on_defined?(node)
  return unless node.arguments.first == s(:send, nil, :default_action)
  node = node.parent if node.parent.respond_to?(:if?) && node.parent.if? # we want the whole if statement
  add_offense(node, location: :expression, message: MSG, severity: :refactor)
end