Class: GraphQL::Configuration::Base
- Inherits:
-
Object
- Object
- GraphQL::Configuration::Base
show all
- Defined in:
- lib/graphql/configuration/configuration.rb
Direct Known Subclasses
GraphQLArgumentConfiguration, GraphQLDirectiveConfiguration, GraphQLEnumTypeConfiguration, GraphQLEnumValue, GraphQLFieldConfiguration, GraphQLInputObjectField, GraphQLInputObjectTypeConfiguration, GraphQLInterfaceTypeConfiguration, GraphQLObjectTypeConfiguration, GraphQLScalarTypeConfiguration, GraphQLSchemaConfiguration, GraphQLUnionTypeConfiguration
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(*args, &block) ⇒ Base
Returns a new instance of Base.
8
9
10
11
12
13
|
# File 'lib/graphql/configuration/configuration.rb', line 8
def initialize(*args, &block)
options = args.last.instance_of?(Hash) ? args.pop : {}
slots.each { |key, slot| options[(slot.singular || slot.name).to_sym] = args.shift if args.size > 0 }
options.each { |key, value| public_send(key, value) }
instance_eval(&block) if block_given?
end
|
Class Method Details
.coerce(slot, *args, &block) ⇒ Object
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/graphql/configuration/configuration.rb', line 34
def coerce(slot, *args, &block)
if args.size == 1 && !block_given?
value = args.first
return value if value.is_a?(slot.effective_type)
value = slot.coerce.nil? ? value : slot.coerce.call(value)
return value if value.is_a?(slot.effective_type)
return value if value.is_a?(Proc)
end
slot.effective_type.new(*args, &block)
end
|
.inherited(base) ⇒ Object
20
21
22
|
# File 'lib/graphql/configuration/configuration.rb', line 20
def inherited(base)
base.instance_variable_set(:"@slots", @slots)
end
|
.slot(*args, &block) ⇒ Object
28
29
30
31
32
|
# File 'lib/graphql/configuration/configuration.rb', line 28
def slot(*args, &block)
slot = Slot.new(*args, &block)
define_accessors(slot)
slots[slot.name] = slot
end
|
.slots ⇒ Object
24
25
26
|
# File 'lib/graphql/configuration/configuration.rb', line 24
def slots
@slots ||= {}
end
|
Instance Method Details
#slots ⇒ Object
15
16
17
|
# File 'lib/graphql/configuration/configuration.rb', line 15
def slots
self.class.slots
end
|