class Rubocop::Cop::Style::IfUnlessModifier

if written as a modifier if/unless.
Checks for if and unless statements that would fit on one line

def elsif?(node)

def elsif?(node)
  node.loc.keyword.is?('elsif')
end

def error_message

def error_message
  'Favor modifier if/unless usage when you have a single-line body. ' +
    'Another good alternative is the usage of control flow &&/||.'
end

def if_else?(node)

def if_else?(node)
  node.loc.respond_to?(:else) && node.loc.else
end

def investigate(processed_source)

def investigate(processed_source)
  return unless processed_source.ast
  on_node(:if, processed_source.ast) do |node|
    # discard ternary ops, if/else and modifier if/unless nodes
    next if ternary_op?(node)
    next if modifier_if?(node)
    next if elsif?(node)
    next if if_else?(node)
    if check(node, processed_source.comments)
      add_offence(:convention, node.loc.expression, error_message)
    end
  end
end

def modifier_if?(node)

def modifier_if?(node)
  node.loc.end.nil?
end

def ternary_op?(node)

def ternary_op?(node)
  node.loc.respond_to?(:question)
end