class RuboCop::Cop::EachToForCorrector
This class autocorrects ‘#each` enumeration to `for` iteration.
Constants
- CORRECTION_WITHOUT_ARGUMENTS
- CORRECTION_WITH_ARGUMENTS
Attributes
argument_node[R]
block_node[R]
collection_node[R]
Public Class Methods
new(block_node)
click to toggle source
# File lib/rubocop/cop/correctors/each_to_for_corrector.rb, line 12 def initialize(block_node) @block_node = block_node @collection_node = block_node.receiver @argument_node = block_node.arguments end
Public Instance Methods
call(corrector)
click to toggle source
# File lib/rubocop/cop/correctors/each_to_for_corrector.rb, line 18 def call(corrector) corrector.replace(offending_range, correction) end
Private Instance Methods
correction()
click to toggle source
# File lib/rubocop/cop/correctors/each_to_for_corrector.rb, line 26 def correction if block_node.arguments? format(CORRECTION_WITH_ARGUMENTS, collection: collection_node.source, variables: argument_node.children.first.source) else format(CORRECTION_WITHOUT_ARGUMENTS, enumerable: collection_node.source) end end
offending_range()
click to toggle source
# File lib/rubocop/cop/correctors/each_to_for_corrector.rb, line 36 def offending_range begin_range = block_node.source_range.begin if block_node.arguments? begin_range.join(argument_node.source_range.end) else begin_range.join(block_node.loc.begin.end) end end