Class: GraphQL::SharedArguments::Injector
- Inherits:
-
Object
- Object
- GraphQL::SharedArguments::Injector
- Defined in:
- lib/graphql/shared_arguments/injector.rb
Instance Method Summary collapse
- #except ⇒ Object
-
#initialize(object_definition, filter, new_arguments) ⇒ Injector
constructor
A new instance of Injector.
- #inject ⇒ Object
- #only ⇒ Object
Constructor Details
#initialize(object_definition, filter, new_arguments) ⇒ Injector
Returns a new instance of Injector.
4 5 6 7 8 9 |
# 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 |
Instance Method Details
#except ⇒ Object
15 16 17 |
# File 'lib/graphql/shared_arguments/injector.rb', line 15 def except object_fields.reject { |k, _v| filter_fields.include?(k.to_sym) } end |
#inject ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# 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 ⇒ Object
11 12 13 |
# File 'lib/graphql/shared_arguments/injector.rb', line 11 def only object_fields.select { |k, _v| filter_fields.include?(k.to_sym) } end |