class RuboCop::Cop::Metrics::BlockLength

This cop checks if the length of a block exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable. The cop can be configured to ignore blocks passed to certain methods.

Constants

LABEL

Public Instance Methods

on_block(node) click to toggle source
# File lib/rubocop/cop/metrics/block_length.rb, line 15
def on_block(node)
  return if excluded_method?(node)
  return if node.class_constructor?

  check_code_length(node)
end

Private Instance Methods

cop_label() click to toggle source
# File lib/rubocop/cop/metrics/block_length.rb, line 44
def cop_label
  LABEL
end
excluded_method?(node) click to toggle source
# File lib/rubocop/cop/metrics/block_length.rb, line 24
def excluded_method?(node)
  node_receiver = node.receiver&.source&.gsub(/\s+/, '')
  node_method = String(node.method_name)

  excluded_methods.any? do |config|
    receiver, method = config.split('.')

    unless method
      method = receiver
      receiver = node_receiver
    end

    method == node_method && receiver == node_receiver
  end
end
excluded_methods() click to toggle source
# File lib/rubocop/cop/metrics/block_length.rb, line 40
def excluded_methods
  cop_config['ExcludedMethods'] || []
end