class RuboCop::Cop::Itamae::NeedlessDefaultAction

Checks whether default action is written for resource.

@example

# bad
package 'git' do
  action :install
end

# good
package 'git' do
end

package 'git'

Constants

MSG
RESOURCE_DEFAULT_ACTIONS

Public Instance Methods

on_block(node) click to toggle source
# File lib/rubocop/cop/itamae/needless_default_action.rb, line 60
def on_block(node)
  find_resource(node) do |resource, param_nodes|
    param_nodes.compact.each do |param_node|
      find_action(param_node) do |action|
        next unless action == RESOURCE_DEFAULT_ACTIONS[resource]

        add_offense(param_node.loc.expression) do |corrector|
          remove_action_param(corrector, param_node.parent, param_node) if param_node.send_type?
        end
      end
    end
  end
end

Private Instance Methods

node_range(node) click to toggle source
# File lib/rubocop/cop/itamae/needless_default_action.rb, line 86
def node_range(node)
  range_by_whole_lines(node.source_range, include_final_newline: true)
end
remove_action_param(corrector, parent_node, param_node) click to toggle source
# File lib/rubocop/cop/itamae/needless_default_action.rb, line 76
def remove_action_param(corrector, parent_node, param_node)
  find_resource(parent_node) do |resource|
    find_action(param_node) do |action|
      next unless action == RESOURCE_DEFAULT_ACTIONS[resource]

      corrector.remove(node_range(param_node))
    end
  end
end