class RuboCop::Cop::ForToEachCorrector
This class autocorrects ‘for` iteration to `#each` enumeration.
Constants
- CORRECTION
Attributes
Public Class Methods
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 11 def initialize(for_node) @for_node = for_node @variable_node = for_node.variable @collection_node = for_node.collection end
Public Instance Methods
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 17 def call(corrector) offending_range = for_node.source_range.begin.join(end_range) corrector.replace(offending_range, correction) end
Private Instance Methods
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 57 def collection_end if collection_node.begin_type? collection_node.loc.end else collection_node.source_range end end
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 31 def collection_source if requires_parentheses? "(#{collection_node.source})" else collection_node.source end end
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 27 def correction format(CORRECTION, collection: collection_source, argument: variable_node.source) end
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 45 def end_range if for_node.do? keyword_begin.end else collection_end.end end end
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 53 def keyword_begin for_node.loc.begin end
Source
# File lib/rubocop/cop/correctors/for_to_each_corrector.rb, line 39 def requires_parentheses? return true if collection_node.send_type? && collection_node.operator_method? collection_node.range_type? || collection_node.operator_keyword? end