class RuboCop::Cop::Style::SingleLineMethods

It can optionally accept single-line methods with no body.
This cop checks for single-line method definitions.

def allow_empty?

def allow_empty?
  cop_config['AllowIfMethodIsEmpty']
end

def autocorrect(node)

def autocorrect(node)
  body = node.body
  lambda do |corrector|
    each_part(body) do |part|
      break_line_before(part, node, corrector, 1)
    end
    break_line_before(node.loc.end, node, corrector, 0)
    eol_comment = end_of_line_comment(node.source_range.line)
    move_comment(eol_comment, node, corrector) if eol_comment
  end
end

def break_line_before(range, node, corrector, indent_steps)

def break_line_before(range, node, corrector, indent_steps)
  corrector.insert_before(
    range,
    "\n" + ' ' * (node.loc.keyword.column +
                  indent_steps * configured_indentation_width)
  )
end

def each_part(body)

def each_part(body)
  return unless body
  if body.begin_type?
    body.each_child_node { |part| yield part.source_range }
  else
    yield body.source_range
  end
end

def end_of_line_comment(line)

def end_of_line_comment(line)
  processed_source.comments.find { |c| c.loc.line == line }
end

def move_comment(eol_comment, node, corrector)

def move_comment(eol_comment, node, corrector)
  text = eol_comment.loc.expression.source
  corrector.insert_before(node.source_range,
                          text + "\n" + (' ' * node.loc.keyword.column))
  corrector.remove(eol_comment.loc.expression)
end

def on_def(node)

def on_def(node)
  return unless node.single_line?
  return if allow_empty? && !node.body
  add_offense(node)
end