class Rubocop::Cop::Style::MultilineIfThen
Checks for uses of the ‘then` keyword in multi-line if statements.
This is considered bad practice: @example
if cond then end
While if statements can contain ‘then` on the same line: @example
if cond then a elsif cond then b end
Public Instance Methods
error_message()
click to toggle source
# File lib/rubocop/cop/style/multiline_if_then.rb, line 41 def error_message 'Never use then for multi-line if/unless.' end
offending_line(node)
click to toggle source
# File lib/rubocop/cop/style/multiline_if_then.rb, line 23 def offending_line(node) condition, body, else_clause = *node next_thing = if body && body.loc.expression body.loc.expression.begin elsif else_clause && else_clause.loc.expression else_clause.loc.expression.begin else node.loc.end # No body, use "end". end right_after_cond = Parser::Source::Range.new(next_thing.source_buffer, condition.loc.expression.end.end_pos, next_thing.begin_pos) if right_after_cond.source =~ /\A\s*then\s*(#.*)?\s*\n/ node.loc.expression.begin.line end end