class GraphQL::Introspection::InputValueType
Public Instance Methods
default_value()
click to toggle source
# File lib/graphql/introspection/input_value_type.rb, line 20 def default_value 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) end else nil end end
is_deprecated()
click to toggle source
# File lib/graphql/introspection/input_value_type.rb, line 16 def is_deprecated !!@object.deprecation_reason end
Private Instance Methods
serialize_default_value(value, type)
click to toggle source
Recursively serialize, taking care not to add quotes to enum values
# File lib/graphql/introspection/input_value_type.rb, line 44 def serialize_default_value(value, type) if value.nil? 'null' elsif type.kind.list? inner_type = type.of_type "[" + value.map { |v| serialize_default_value(v, inner_type) }.join(", ") + "]" elsif type.kind.non_null? serialize_default_value(value, type.of_type) 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)}" end.join(", ") + "}" else GraphQL::Language.serialize(value) end end