class RedParse::MethodNode

Public Instance Methods

get_while(params,should_be) { |param| ... } click to toggle source
# File lib/redparse/ripper.rb, line 289
def get_while params,should_be
  param=nil
  result=[]
  result<<yield( param )while should_be===params.first and param=params.shift
ensure
  return result unless result.empty?
end
reducer_ident() click to toggle source
# File lib/redparse/ReduceWithsFor_RedParse_1_8.rb, line 17129
def reducer_ident
  :MethodNode
end
rip(p) click to toggle source
# File lib/redparse/ripper.rb, line 297
def rip p
  params=args ? args.dup : []
  params2=[]
  #param=nil

  params2.push get_while(params,VarNode){|param| p.on_ident param.name}
  params2.push get_while(params,AssignNode){|param| [p.on_ident(param.left.name), param.right.rip(p)]}
  get_while(params,UnaryStarNode){|param| params2.push p.on_rest_param p.on_ident param.val.name; break }
  params2.push get_while(params,VarNode){|param| p.on_ident param.name}
  get_while(params,UnaryAmpNode){|param| params2.push p.on_blockarg p.on_ident param.val.name; break }

  params=p.on_params( *params2 )
  params=p.on_paren( params ) if has_parens?

  result=[p.on_ident(name), params, rip_and_rescues(p)]
  result.unshift receiver.rip(p), p.on_period(".") if receiver
  p.on_def( *result )
end