Class: RuboCop::Cop::Metrics::AbcSize
- Includes:
- RuboCop::Cop::MethodComplexity
- Defined in:
- lib/rubocop/cop/metrics/abc_size.rb
Overview
This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See c2.com/cgi/wiki?AbcMetric and en.wikipedia.org/wiki/ABC_Software_Metric.
You can have repeated “attributes” calls count as a single “branch”. For this purpose, attributes are any method with no argument; no attempt is meant to distinguish actual ‘attr_reader` from other methods.
This cop also takes into account ‘IgnoredMethods` (defaults to `[]`)
Constant Summary collapse
- MSG =
'Assignment Branch Condition size for %<method>s is too high. ' \ '[%<abc_vector>s %<complexity>.4g/%<max>.4g]'
Constants inherited from Base
Constants included from Util
Instance Attribute Summary
Attributes inherited from Base
Method Summary
Methods included from RuboCop::Cop::MethodComplexity
Methods included from Utils::RepeatedCsendDiscount
#discount_for_repeated_csend?, #reset_on_lvasgn, #reset_repeated_csend
Methods included from IgnoredMethods
#ignored_method?, #ignored_methods, included
Methods inherited from Base
#add_global_offense, #add_offense, autocorrect_incompatible_with, badge, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, #cop_name, cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, joining_forces, lint?, match?, #message, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #ready, #relevant_file?, support_autocorrect?, support_multiple_source?, #target_rails_version, #target_ruby_version
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
add_parentheses, args_begin, args_end, begins_its_line?, comment_line?, comment_lines?, double_quotes_required?, escape_string, first_part_of_call_chain, indent, interpret_string_escapes, line_range, needs_escaping?, on_node, parentheses?, same_line?, to_string_literal, to_supported_styles, trim_string_interporation_escape_character
Methods included from PathUtil
absolute?, hidden_dir?, hidden_file?, hidden_file_in_not_hidden_dir?, match_path?, maybe_hidden_file?, relative_path, smart_path
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base