Class: RuboCop::Cop::Lint::EndAlignment

Inherits:
Cop
  • Object
show all
Includes:
CheckAssignment, EndKeywordAlignment, IfNode
Defined in:
lib/rubocop/cop/lint/end_alignment.rb

Overview

This cop checks whether the end keywords are aligned properly.

Two modes are supported through the AlignWith configuration parameter. If it's set to keyword (which is the default), the end shall be aligned with the start of the keyword (if, class, etc.). If it's set to variable the end shall be aligned with the left-hand-side of the variable assignment, if there is one.

Examples:


variable = if true
           end

Constant Summary collapse

MSG =
'`end` at %d, %d is not aligned with `%s` at %d, %d'

Constants included from CheckAssignment

CheckAssignment::TYPES

Constants included from Util

Util::ASGN_NODES, Util::EQUALS_ASGN_NODES, Util::OPERATOR_METHODS, Util::PROC_NEW_NODE, Util::SHORTHAND_ASGN_NODES

Instance Attribute Summary

Attributes inherited from Cop

#config, #corrections, #offenses, #processed_source

Instance Method Summary collapse

Methods included from IfNode

#elsif?, #if_else?, #modifier_if?, #ternary_op?

Methods included from ConfigurableEnforcedStyle

#alternative_style, #both_styles_detected, #correct_style_detected, #opposite_style_detected, #parameter_name, #style, #unrecognized_style_detected

Methods included from CheckAssignment

#on_casgn, #on_op_asgn, #on_send

Methods inherited from Cop

#add_offense, all, #autocorrect?, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, #cop_name, cop_name, cop_name_with_namespace, cop_type, #debug?, #display_cop_names?, inherited, #initialize, #join_force?, lint?, #message, non_rails, qualified_cop_name, rails?, #relevant_file?, #support_autocorrect?

Methods included from IgnoredNode

#ignore_node, #ignored_node?, #part_of_ignored_node?

Methods included from Util

begins_its_line?, block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, numeric_range_size, on_node, operator?, parentheses?, proc?, range_with_surrounding_space, source_range, strip_quotes, within_node?

Methods included from PathUtil

issue_deprecation_warning, match_path?, relative_path

Constructor Details

This class inherits a constructor from RuboCop::Cop::Cop

Instance Method Details

#on_class(node) ⇒ Object



25
26
27
# File 'lib/rubocop/cop/lint/end_alignment.rb', line 25

def on_class(node)
  check_offset_of_node(node)
end

#on_if(node) ⇒ Object



33
34
35
# File 'lib/rubocop/cop/lint/end_alignment.rb', line 33

def on_if(node)
  check_offset_of_node(node) unless ternary_op?(node)
end

#on_module(node) ⇒ Object



29
30
31
# File 'lib/rubocop/cop/lint/end_alignment.rb', line 29

def on_module(node)
  check_offset_of_node(node)
end

#on_until(node) ⇒ Object



41
42
43
# File 'lib/rubocop/cop/lint/end_alignment.rb', line 41

def on_until(node)
  check_offset_of_node(node)
end

#on_while(node) ⇒ Object



37
38
39
# File 'lib/rubocop/cop/lint/end_alignment.rb', line 37

def on_while(node)
  check_offset_of_node(node)
end