module RuboCop::Cop::Metrics::Utils::IteratingBlock

Used to identify iterating blocks like `.map{}` and `.map(&:…)`

Constants

KNOWN_ITERATING_METHODS

Public Instance Methods

block_method_name(node) click to toggle source

Returns the name of the method called with a block if node is a block node, or a block-pass node.

# File lib/rubocop/cop/metrics/utils/iterating_block.rb, line 37
def block_method_name(node)
  case node.type
  when :block
    node.method_name
  when :block_pass
    node.parent.method_name
  end
end
iterating_block?(node) click to toggle source

Returns nil if node is neither a block node or a block-pass node. Otherwise returns true/false if method call is a known iterating call

# File lib/rubocop/cop/metrics/utils/iterating_block.rb, line 53
def iterating_block?(node)
  name = block_method_name(node)
  name && iterating_method?(name)
end
iterating_method?(name) click to toggle source

Returns true iff name is a known iterating type (e.g. :each, :transform_values)

# File lib/rubocop/cop/metrics/utils/iterating_block.rb, line 47
def iterating_method?(name)
  KNOWN_ITERATING_METHODS.include? name
end