lib/instana/instrumentation/graphql.rb in instana-1.209.7 vs lib/instana/instrumentation/graphql.rb in instana-1.209.8
- old
+ new
@@ -61,10 +61,23 @@
def walk_fields(parent, method)
return [] unless parent.respond_to?(method)
parent.send(method).map do |field|
- [{object: parent.name, field: field.name}] + walk_fields(field, method)
+ # Certain types like GraphQL::Language::Nodes::InlineFragment
+ # have no "name" instance variable defined,
+ # in such case we use the class's name
+ parent_name = if parent.instance_variable_defined?(:@name)
+ parent.name
+ else
+ parent.class.name.split('::').last
+ end
+ field_name = if field.instance_variable_defined?(:@name)
+ field.name
+ else
+ field.class.name.split('::').last
+ end
+ [{object: parent_name, field: field_name}] + walk_fields(field, method)
end.flatten
end
def grouped_fields(fields)
fields