class GraphQL::SharedArguments::Injector
Attributes
filter_fields[R]
filter_type[R]
new_arguments[R]
object_fields[R]
selected_fields[R]
Public Class Methods
new(object_definition, filter, new_arguments)
click to toggle source
# File lib/graphql/shared_arguments/injector.rb, line 4 def initialize(object_definition, filter, new_arguments) @object_fields = object_definition.fields @filter_type = filter.keys.first @filter_fields = filter.values.first @new_arguments = new_arguments end
Public Instance Methods
except()
click to toggle source
# File lib/graphql/shared_arguments/injector.rb, line 15 def except object_fields.reject { |k, _v| filter_fields.include?(k.to_sym) } end
inject()
click to toggle source
# File lib/graphql/shared_arguments/injector.rb, line 19 def inject @selected_fields = object_fields if filter_fields.nil? && filter_type.nil? @selected_fields ||= send(filter_type) selected_fields.transform_values do |field| field.arguments.merge!(new_arguments) end object_fields.merge!(selected_fields) end
only()
click to toggle source
# File lib/graphql/shared_arguments/injector.rb, line 11 def only object_fields.select { |k, _v| filter_fields.include?(k.to_sym) } end