class RuboCop::Cop::Style::For


end
end
puts n
for n in [1, 2, 3] do
def foo
# good
end
end
puts n
[1, 2, 3].each do |n|
def foo
# bad
@example EnforcedStyle: for
end
end
puts n
[1, 2, 3].each do |n|
def foo
# good
end
end
puts n
for n in [1, 2, 3] do
def foo
# bad
@example EnforcedStyle: each (default)
allowed.
parameter. An ‘each` call with a block on a single line is always
preferred alternative is set in the EnforcedStyle configuration
This cop looks for uses of the `for` keyword or `each` method. The

def autocorrect(node)

def autocorrect(node)
  if style == :each
    ForToEachCorrector.new(node)
  else
    EachToForCorrector.new(node)
  end
end

def on_block(node)

def on_block(node)
  return unless suspect_enumerable?(node)
  if style == :for
    add_offense(node, message: PREFER_FOR) do
      opposite_style_detected
    end
  else
    correct_style_detected
  end
end

def on_for(node)

def on_for(node)
  if style == :each
    add_offense(node, message: PREFER_EACH) do
      opposite_style_detected
    end
  else
    correct_style_detected
  end
end

def suspect_enumerable?(node)

def suspect_enumerable?(node)
  node.multiline? &&
    node.send_node.method?(:each) && !node.send_node.arguments?
end