Sha256: 5c340289fe8071f67039e3df7f4392379a19a7170a40e3b877f59d56cb02b934
Contents?: true
Size: 1.37 KB
Versions: 4
Compression:
Stored size: 1.37 KB
Contents
# encoding: utf-8 module Rubocop module Cop module Style # 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. class For < Cop include ConfigurableEnforcedStyle def on_for(node) if style == :each add_offense(node, :keyword, 'Prefer `each` over `for`.') do opposite_style_detected end else correct_style_detected end end def on_block(node) return if block_length(node) == 0 method, _args, _body = *node return unless method.type == :send _receiver, method_name, *args = *method return unless method_name == :each && args.empty? if style == :for end_pos = method.loc.expression.end_pos range = Parser::Source::Range.new(processed_source.buffer, end_pos - 'each'.length, end_pos) add_offense(range, range, 'Prefer `for` over `each`.') do opposite_style_detected end else correct_style_detected end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.22.0 | lib/rubocop/cop/style/for.rb |
rubocop-0.21.0 | lib/rubocop/cop/style/for.rb |
rubocop-0.20.1 | lib/rubocop/cop/style/for.rb |
rubocop-0.20.0 | lib/rubocop/cop/style/for.rb |