123456789_123456789_123456789_123456789_123456789_

Module: RuboCop::Cop::EndlessMethodRewriter

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/rubocop/cop/mixin/endless_method_rewriter.rb

Overview

Common functionality for rewriting endless methods to normal method definitions

Instance Method Summary

Instance Method Details

#arguments(node, missing = '') (private)

[ GitHub ]

  
# File 'lib/rubocop/cop/mixin/endless_method_rewriter.rb', line 23

def arguments(node, missing = '')
  node.arguments.any? ? node.arguments.source : missing
end

#configured_indentation_width (private)

[ GitHub ]

  
# File 'lib/rubocop/cop/mixin/endless_method_rewriter.rb', line 27

def configured_indentation_width
  cop_config['IndentationWidth'] || config.for_cop('Layout/IndentationWidth')['Width'] || 2
end

#correct_to_multiline(corrector, node)

[ GitHub ]

  
# File 'lib/rubocop/cop/mixin/endless_method_rewriter.rb', line 7

def correct_to_multiline(corrector, node)
  replacement = [
    "def #{receiver(node)}#{node.method_name}#{arguments(node)}",
    "#{indent(node, offset: configured_indentation_width)}#{node.body.source}",
    "#{indent(node)}end"
  ].join("\n")

  corrector.replace(node, replacement)
end

#receiver(node) (private)

[ GitHub ]

  
# File 'lib/rubocop/cop/mixin/endless_method_rewriter.rb', line 19

def receiver(node)
  node.receiver ? "#{node.receiver.source}#{node.loc.operator.source}" : ''
end