module RipperRubyParser::SexpHandlers::MethodCalls
Sexp handlers for method calls
Constants
- CALL_OP_MAP
Public Instance Methods
map_call_op(call_op)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 78 def map_call_op(call_op) call_op = call_op.sexp_body.first.to_sym if call_op.is_a? Sexp CALL_OP_MAP.fetch(call_op) end
process_aref(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 101 def process_aref(exp) _, coll, idx = exp.shift 3 coll = process(coll) idx = process(idx) || [] idx.shift s(:call, coll, :[], *idx) end
process_arg_paren(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 18 def process_arg_paren(exp) _, args = exp.shift 2 return s(:arglist) if args.nil? process(args) end
process_args_add_block(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 11 def process_args_add_block(exp) _, regular, block = exp.shift 3 args = process(regular) args << s(:block_pass, process(block)) if block args end
process_args_add_star(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 7 def process_args_add_star(exp) generic_add_star exp end
process_bare_assoc_hash(exp)
click to toggle source
Handle implied hashes, such as at the end of argument lists.
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 37 def process_bare_assoc_hash(exp) _, elems = exp.shift 2 s(:hash, *make_hash_items(elems)) end
process_call(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 48 def process_call(exp) _, receiver, op, ident = exp.shift 4 type = map_call_op op case ident when :call s(type, process(receiver), :call) else with_position_from_node_symbol(ident) do |method| s(type, unwrap_begin(process(receiver)), method) end end end
process_command(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 61 def process_command(exp) _, ident, arglist = exp.shift 3 with_position_from_node_symbol(ident) do |method| args = process(arglist).sexp_body s(:call, nil, method, *args) end end
process_command_call(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 69 def process_command_call(exp) _, receiver, op, ident, arguments = exp.shift 5 type = map_call_op op with_position_from_node_symbol(ident) do |method| args = process(arguments).sexp_body s(type, process(receiver), method, *args) end end
process_fcall(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 94 def process_fcall(exp) _, ident = exp.shift 2 with_position_from_node_symbol(ident) do |method| s(:call, nil, method) end end
process_method_add_arg(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 25 def process_method_add_arg(exp) _, call, parens = exp.shift 3 call = process(call) parens = process(parens) if parens.sexp_type == :forward_args call.push(parens) else call.push(*parens.sexp_body) end end
process_super(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 110 def process_super(exp) _, args = exp.shift 2 args = process(args) args.shift s(:super, *args) end
process_vcall(exp)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 83 def process_vcall(exp) _, ident = exp.shift 2 with_position_from_node_symbol(ident) do |method| if replace_kwrest_arg_call? method s(:lvar, method) else s(:call, nil, method) end end end
Private Instance Methods
replace_kwrest_arg_call?(method)
click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/method_calls.rb, line 119 def replace_kwrest_arg_call?(method) kwrest_arg?(method) end