Class: GraphQL::Introspection::InputValueType
- Inherits:
-
Introspection::BaseObject
- Object
- Introspection::BaseObject
- GraphQL::Introspection::InputValueType
- Defined in:
- lib/graphql/introspection/input_value_type.rb
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
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 |