class YARD::Parser::Ruby::MethodDefinitionNode

def def?; true end

def def?; true end

def index_adjust

def index_adjust
  type == :defs ? 2 : 0
end

def kw?; true end

def kw?; true end

def method_name(name_only = false)

def method_name(name_only = false)
  name = self[index_adjust]
  name_only ? name.jump(:ident).first.to_sym : name
end

def namespace; first if index_adjust > 0 end

def namespace; first if index_adjust > 0 end

def parameters(include_block_param = true)

def parameters(include_block_param = true)
  params = self[1 + index_adjust]
  params = params[0] if params.type == :paren
  include_block_param ? params : params[0...-1]
end

def signature

def signature
  params_src = ''
  params = self[1 + index_adjust]
  if params.first
    params_src = params.type == :paren ? '' : ' '
    params_src += params.source.gsub(/\s+(\s|\))/m, '\1')
  end
  "def #{method_name(true)}#{params_src}"
end