class RuboCop::Cop::Style::For
This cop looks for uses of the for keyword, or each method. The preferred alternative is set in the EnforcedStyle configuration parameter. An each call with a block on a single line is always allowed, however.
Constants
- EACH_LENGTH
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/style/for.rb, line 25 def on_block(node) return if node.single_line? return unless node.send_node.method?(:each) && !node.send_node.arguments? if style == :for incorrect_style_detected(node.send_node) else correct_style_detected end end
on_for(node)
click to toggle source
# File lib/rubocop/cop/style/for.rb, line 13 def on_for(node) if style == :each msg = 'Prefer `each` over `for`.' add_offense(node, location: :keyword, message: msg) do opposite_style_detected end else correct_style_detected end end
Private Instance Methods
incorrect_style_detected(method)
click to toggle source
# File lib/rubocop/cop/style/for.rb, line 40 def incorrect_style_detected(method) end_pos = method.source_range.end_pos range = range_between(end_pos - EACH_LENGTH, end_pos) msg = 'Prefer `for` over `each`.' add_offense(range, location: range, message: msg) do opposite_style_detected end end