module GraphQL::Schema::Printer::TypeKindPrinters::FieldPrinter
def print_args(field)
def print_args(field) return if field.arguments.empty? "(#{field.arguments.values.map{ |arg| print_input_value(arg) }.join(", ")})" end
def print_fields(type)
def print_fields(type) type.all_fields.map{ |field| " #{field.name}#{print_args(field)}: #{field.type}" }.join("\n") end
def print_input_value(arg)
def print_input_value(arg) if arg.default_value.nil? default_string = nil else default_string = " = #{print_value(arg.default_value, arg.type)}" end "#{arg.name}: #{arg.type.to_s}#{default_string}" end
def print_value(value, type)
def print_value(value, type) case type when FLOAT_TYPE value.to_f.inspect when INT_TYPE value.to_i.inspect when BOOLEAN_TYPE (!!value).inspect when ScalarType, ID_TYPE, STRING_TYPE value.to_s.inspect when EnumType value.to_s when InputObjectType fields = value.to_h.map{ |field_name, field_value| field_type = type.input_fields.fetch(field_name.to_s).type "#{field_name}: #{print_value(field_value, field_type)}" }.join(", ") "{ #{fields} }" when NonNullType print_value(value, type.of_type) when ListType "[#{value.to_a.map{ |v| print_value(v, type.of_type) }.join(", ")}]" else raise NotImplementedError, "Unexpected value type #{type.inspect}" end end