class GraphQL::Upgrader::ResolveProcToMethodTransform::ResolveProcProcessor
Attributes
proc_arg_names[R]
proc_end[R]
proc_start[R]
resolve_end[R]
resolve_indent[R]
resolve_start[R]
Public Class Methods
new()
click to toggle source
# File lib/graphql/upgrader/member.rb, line 567 def initialize @proc_arg_names = nil @resolve_start = nil @resolve_end = nil @resolve_indent = nil @proc_start = nil @proc_end = nil end
Public Instance Methods
on_block(node)
click to toggle source
Calls superclass method
# File lib/graphql/upgrader/member.rb, line 587 def on_block(node) send_node, args_node, body_node = node.children _receiver, method_name, _send_args_node = *send_node # Assume that the first three-argument proc we enter is the resolve if method_name == :lambda && args_node.children.size == 3 && @proc_arg_names.nil? source_exp = body_node.loc.expression @proc_arg_names = args_node.children.map { |arg_node| arg_node.children[0].to_s } @proc_start = source_exp.begin.begin_pos @proc_end = source_exp.end.end_pos end super(node) end
on_send(node)
click to toggle source
Calls superclass method
# File lib/graphql/upgrader/member.rb, line 576 def on_send(node) receiver, method_name, _args = *node if method_name == :resolve && receiver.nil? source_exp = node.loc.expression @resolve_start = source_exp.begin.begin_pos @resolve_end = source_exp.end.end_pos @resolve_indent = source_exp.column end super(node) end