Class: GraphQL::Introspection::InputValueType
- Inherits:
-
BaseObject
- Object
- Schema::Member
- Schema::Object
- BaseObject
- GraphQL::Introspection::InputValueType
- Defined in:
- lib/graphql/introspection/input_value_type.rb
Constant Summary
Constants included from Schema::Member::HasFields
Schema::Member::HasFields::CONFLICT_FIELD_NAMES, Schema::Member::HasFields::GRAPHQL_RUBY_KEYWORDS, Schema::Member::HasFields::RUBY_KEYWORDS
Constants included from EmptyObjects
EmptyObjects::EMPTY_ARRAY, EmptyObjects::EMPTY_HASH
Constants included from Schema::Member::GraphQLTypeNames
Schema::Member::GraphQLTypeNames::Boolean, Schema::Member::GraphQLTypeNames::ID, Schema::Member::GraphQLTypeNames::Int
Instance Attribute Summary
Attributes inherited from Schema::Object
Attributes included from Schema::Member::BaseDSLMethods
#default_graphql_name, #graphql_name
Attributes included from Schema::Member::RelayShortcuts
#connection_type, #connection_type_class, #edge_type, #edge_type_class
Attributes included from Schema::Member::HasAstNode
Class Method Summary collapse
-
.resolve_default_value(object, context) ⇒ Object
-
.resolve_is_deprecated(object, context) ⇒ Object
-
.serialize_default_value(value, type, context) ⇒ Object
Recursively serialize, taking care not to add quotes to enum values.
Instance Method Summary collapse
Methods inherited from BaseObject
Methods inherited from Schema::Object
authorized_new, const_missing, #dataloader, #initialize, kind, #raw_value, scoped_new, wrap, wrap_scoped
Methods included from Schema::Member::HasFields
#add_field, #all_field_definitions, #field, #field_class, #global_id_field, #has_no_fields, #has_no_fields?, #own_fields
Methods included from Schema::Member::HasInterfaces
#implements, #interface_type_memberships, #interfaces, #own_interface_type_memberships
Methods included from Schema::Member::HasDataloader
#dataload, #dataload_all, #dataload_association, #dataload_record, #dataloader
Methods included from Schema::Member::BaseDSLMethods
#authorized?, #comment, #default_relay, #description, #introspection, #introspection?, #mutation, #name, #visible?
Methods included from Schema::Member::BaseDSLMethods::ConfigurationExtension
Methods included from Schema::Member::TypeSystemHelpers
#initialize, #kind, #list?, #non_null?, #to_list_type, #to_non_null_type, #to_type_signature
Methods included from Schema::Member::Scoped
#inherited, #reauthorize_scoped_objects, #scope_items
Methods included from Schema::Member::HasPath
Methods included from Schema::Member::HasAstNode
Methods included from Schema::Member::HasDirectives
add_directive, #directive, #directives, get_directives, #inherited, #remove_directive, remove_directive
Constructor Details
This class inherits a constructor from GraphQL::Schema::Object
Class Method Details
.resolve_default_value(object, context) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/graphql/introspection/input_value_type.rb', line 24 def self.resolve_default_value(object, context) if object.default_value? value = object.default_value if value.nil? 'null' else if (object.type.kind.list? || (object.type.kind.non_null? && object.type.of_type.kind.list?)) && !value.respond_to?(:map) # This is a bit odd -- we expect the default value to be an application-style value, so we use coerce result below. # But coerce_result doesn't wrap single-item lists, which are valid inputs to list types. # So, apply that wrapper here if needed. value = [value] end coerced_default_value = object.type.coerce_result(value, context) serialize_default_value(coerced_default_value, object.type, context) end else nil end end |
.resolve_is_deprecated(object, context) ⇒ Object
16 17 18 |
# File 'lib/graphql/introspection/input_value_type.rb', line 16 def self.resolve_is_deprecated(object, context) !!object.deprecation_reason end |
.serialize_default_value(value, type, context) ⇒ Object
Recursively serialize, taking care not to add quotes to enum values
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/graphql/introspection/input_value_type.rb', line 52 def self.serialize_default_value(value, type, context) if value.nil? 'null' elsif type.kind.list? inner_type = type.of_type "[" + value.map { |v| serialize_default_value(v, inner_type, context) }.join(", ") + "]" elsif type.kind.non_null? serialize_default_value(value, type.of_type, context) elsif type.kind.enum? value elsif type.kind.input_object? "{" + value.map do |k, v| arg_defn = type.get_argument(k, context) "#{k}: #{serialize_default_value(v, arg_defn.type, context)}" end.join(", ") + "}" else GraphQL::Language.serialize(value) end end |
Instance Method Details
#default_value ⇒ Object
44 45 46 |
# File 'lib/graphql/introspection/input_value_type.rb', line 44 def default_value self.class.resolve_default_value(object, context) end |
#is_deprecated ⇒ Object
20 21 22 |
# File 'lib/graphql/introspection/input_value_type.rb', line 20 def is_deprecated self.class.resolve_is_deprecated(object, context) end |