class RuboCop::Cop::Layout::BlockEndNewline
}
foo(i)
blah { |i|
# good
foo(i) }
blah { |i|
# bad
end
foo(i)
blah do |i|
# good
foo(i) end
blah do |i|
# bad
@example
is on its own line.
This cop checks whether the end statement of a do..end block
def delimiter_range(node)
def delimiter_range(node) Parser::Source::Range.new( node.loc.expression.source_buffer, node.children.compact.last.loc.expression.end_pos, node.loc.expression.end_pos ) end
def message(node)
def message(node) format(MSG, line: node.loc.end.line, column: node.loc.end.column + 1) end
def on_block(node)
def on_block(node) return if node.single_line? # If the end is on its own line, there is no offense return if begins_its_line?(node.loc.end) add_offense(node.loc.end, message: message(node)) do |corrector| corrector.replace(delimiter_range(node), "\n#{node.loc.end.source}#{offset(node)}") end end