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