class RuboCop::Cop::Layout::BeginEndAlignment
Checks whether the end keyword of ‘begin` is aligned properly.
Two modes are supported through the ‘EnforcedStyleAlignWith` configuration parameter. If it’s set to ‘start_of_line` (which is the default), the `end` shall be aligned with the start of the line where the `begin` keyword is. If it’s set to ‘begin`, the `end` shall be aligned with the `begin` keyword.
‘Layout/EndAlignment` cop aligns with keywords (e.g. `if`, `while`, `case`) by default. On the other hand, `||= begin` that this cop targets tends to align with the start of the line, it defaults to `EnforcedStyleAlignWith: start_of_line`. These style can be configured by each cop.
@example EnforcedStyleAlignWith: start_of_line (default)
# bad foo ||= begin do_something end # good foo ||= begin do_something end
@example EnforcedStyleAlignWith: begin
# bad foo ||= begin do_something end # good foo ||= begin do_something end
Constants
- MSG
Public Instance Methods
on_kwbegin(node)
click to toggle source
# File lib/rubocop/cop/layout/begin_end_alignment.rb, line 48 def on_kwbegin(node) check_begin_alignment(node) end
Private Instance Methods
alignment_node(node)
click to toggle source
# File lib/rubocop/cop/layout/begin_end_alignment.rb, line 63 def alignment_node(node) case style when :begin node else start_line_range(node) end end
autocorrect(corrector, node)
click to toggle source
# File lib/rubocop/cop/layout/begin_end_alignment.rb, line 59 def autocorrect(corrector, node) AlignmentCorrector.align_end(corrector, processed_source, node, alignment_node(node)) end
check_begin_alignment(node)
click to toggle source
# File lib/rubocop/cop/layout/begin_end_alignment.rb, line 54 def check_begin_alignment(node) align_with = { begin: node.loc.begin, start_of_line: start_line_range(node) } check_end_kw_alignment(node, align_with) end