class GraphQL::Upgrader::UnderscorizeMutationHashTransform::ReturnedHashLiteralProcessor
Attributes
keys_to_upgrade[R]
Public Class Methods
new()
click to toggle source
# File lib/graphql/upgrader/member.rb, line 402 def initialize @keys_to_upgrade = [] end
Public Instance Methods
on_def(node)
click to toggle source
# File lib/graphql/upgrader/member.rb, line 406 def on_def(node) method_name, _args, body = *node if method_name == :resolve possible_returned_hashes = find_returned_hashes(body, returning: false) possible_returned_hashes.each do |hash_node| pairs = *hash_node pairs.each do |pair_node| if pair_node.type == :pair # Skip over :kwsplat pair_k, _pair_v = *pair_node if pair_k.type == :sym && pair_k.children[0].to_s =~ /[a-z][A-Z]/ # Does it have any camelcase boundaries? source_exp = pair_k.loc.expression @keys_to_upgrade << { start: source_exp.begin.begin_pos, end: source_exp.end.end_pos, key: pair_k.children[0], operator: pair_node.loc.operator.source, } end end end end end