class GraphQL::Upgrader::ProcToClassMethodTransform::NamedProcProcessor
Attributes
proc_arg_names[R]
proc_body_end[R]
proc_body_start[R]
proc_defn_end[R]
proc_defn_indent[R]
proc_defn_start[R]
Public Class Methods
new(proc_name)
click to toggle source
# File lib/graphql/upgrader/member.rb, line 300 def initialize(proc_name) @proc_name_sym = proc_name.to_sym @proc_arg_names = nil # Beginning of the `#{proc_name} -> {...}` call @proc_defn_start = nil # End of the last `end/}` @proc_defn_end = nil # Amount of whitespace to insert to the rewritten body @proc_defn_indent = nil # First statement of the proc @proc_body_start = nil # End of last statement in the proc @proc_body_end = nil # Used for identifying the proper block @inside_proc = false end
Public Instance Methods
on_block(node)
click to toggle source
Calls superclass method
# File lib/graphql/upgrader/member.rb, line 331 def on_block(node) send_node, args_node, body_node = node.children _receiver, method_name, _send_args_node = *send_node if method_name == :lambda && @inside_proc source_exp = body_node.loc.expression @proc_arg_names = args_node.children.map { |arg_node| arg_node.children[0].to_s } @proc_body_start = source_exp.begin.begin_pos @proc_body_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 317 def on_send(node) receiver, method_name, _args = *node if method_name == @proc_name_sym && receiver.nil? source_exp = node.loc.expression @proc_defn_start = source_exp.begin.begin_pos @proc_defn_end = source_exp.end.end_pos @proc_defn_indent = source_exp.column @inside_proc = true end res = super(node) @inside_proc = false res end