class RuboCop::Cop::Itamae::CommandEqualsToName

Check that `command` doesn't equals to name of `execute`.

@example

# bad
execute 'rm -rf /tmp/*' do
  command 'rm -rf /tmp/*'
end

# good
execute 'rm -rf /tmp/*'

execute 'Remove temporary files' do
  command 'rm -rf /tmp/*'
end

Constants

MSG

Public Instance Methods

on_block(node) click to toggle source
# File lib/rubocop/cop/itamae/command_equals_to_name.rb, line 43
def on_block(node)
  find_execute(node) do |name, param_nodes|
    param_nodes.compact.each do |param_node|
      find_command(param_node) do |command|
        next unless name == command

        add_param_node_offense(param_node)
      end
    end
  end
end

Private Instance Methods

add_param_node_offense(param_node) click to toggle source
# File lib/rubocop/cop/itamae/command_equals_to_name.rb, line 57
def add_param_node_offense(param_node)
  add_offense(param_node.loc.expression) do |corrector|
    if param_node.begin_type?
      param_node.each_child_node do |child_param_node|
        remove_command_param(corrector, param_node.parent, child_param_node)
      end

    elsif param_node.send_type?
      remove_command_param(corrector, param_node.parent, param_node)
    end
  end
end
node_range(node) click to toggle source
# File lib/rubocop/cop/itamae/command_equals_to_name.rb, line 80
def node_range(node)
  range_by_whole_lines(node.source_range, include_final_newline: true)
end
remove_command_param(corrector, parent_node, param_node) click to toggle source
# File lib/rubocop/cop/itamae/command_equals_to_name.rb, line 70
def remove_command_param(corrector, parent_node, param_node)
  find_execute(parent_node) do |name|
    find_command(param_node) do |command|
      next unless name == command

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