class RuboCop::Cop::Style::MultilineIfModifier

{ result: ‘ok’ } if cond
# good
} unless cond
result: ‘this should not happen’
{
# bad
@example
Checks for uses of if/unless modifiers with multiple-lines bodies.

def configured_indentation_width

def configured_indentation_width
  super || 2
end

def indented_body(body, node)

def indented_body(body, node)
  body_source = "#{offset(node)}#{body.source}"
  body_source.each_line.map do |line|
    if line == "\n"
      line
    else
      line.sub(/^\s{#{offset(node).length}}/, indentation(node))
    end
  end.join
end

def on_if(node)

def on_if(node)
  return unless node.modifier_form? && node.body.multiline?
  add_offense(node, message: format(MSG, keyword: node.keyword)) do |corrector|
    corrector.replace(node, to_normal_if(node))
  end
end

def to_normal_if(node)

def to_normal_if(node)
  indented_body = indented_body(node.body, node)
  condition = "#{node.keyword} #{node.condition.source}"
  indented_end = "#{offset(node)}end"
  [condition, indented_body, indented_end].join("\n")
end