Class: RuboCop::Cop::Chef::Modernize::IfProvidesDefaultAction

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
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:


### incorrect
default_action :foo if defined?(default_action)

### correct
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.'

Instance Method Summary collapse

Methods inherited from Base

#target_chef_version

Instance Method Details

#on_defined?(node) ⇒ Boolean

Returns:

  • (Boolean)


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

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, severity: :refactor) do |corrector|
    corrector.replace(node, node.children[1].source)
  end
end