Class: Rubocop::Cop::Style::CaseIndentation
- Defined in:
- lib/rubocop/cop/style/case_indentation.rb
Overview
This cop checks how the whens of a case expression are indented in relation to its case or end keyword.
It will register a separate offence for each misaligned when.
Constant Summary
Constants inherited from Cop
Constants included from Util
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offences, #processed_source
Instance Method Summary collapse
Methods inherited from Cop
#add_offence, all, #autocorrect?, #config_to_allow_offences, #config_to_allow_offences=, #cop_config, cop_name, #cop_name, cop_type, #debug?, #exclude_file?, #exclude_paths, #ignore_node, #include_file?, #include_paths, inherited, #initialize, lint?, #message, non_rails, rails?, #relevant_file?, style?, #support_autocorrect?
Methods included from Util
block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, on_node, proc?, range_with_surrounding_space, source_range, strip_quotes
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#on_case(case_node) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/rubocop/cop/style/case_indentation.rb', line 11 def on_case(case_node) _condition, *whens, _else = *case_node base, indent = cop_config.values_at('IndentWhenRelativeTo', 'IndentOneStep') base_column = base_column(case_node, base) whens.each do |when_node| pos = when_node.loc.keyword expected_column = base_column + (indent ? IndentationWidth::CORRECT_INDENTATION : 0) if pos.column != expected_column msg = 'Indent when ' + if indent "one step more than #{base}." else "as deep as #{base}." end add_offence(when_node, pos, msg) end end end |