Module: GraphQL::Schema::Printer::TypeKindPrinters::ArgsPrinter
- Includes:
- DescriptionPrinter
- Included in:
- DirectivePrinter, FieldPrinter
- Defined in:
- lib/graphql/schema/printer.rb
Instance Method Summary collapse
- #print_args(field, indentation = '') ⇒ Object
- #print_input_value(arg) ⇒ Object
- #print_value(value, type) ⇒ Object
Methods included from DescriptionPrinter
Instance Method Details
#print_args(field, indentation = '') ⇒ Object
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/graphql/schema/printer.rb', line 105 def print_args(field, indentation = '') return if field.arguments.empty? field_arguments = field.arguments.values if field_arguments.all?{ |arg| !arg.description } return "(#{field_arguments.map{ |arg| print_input_value(arg) }.join(", ")})" end out = "(\n" out << field_arguments.map.with_index{ |arg, i| "#{print_description(arg, " #{indentation}", i == 0)} #{indentation}"\ "#{print_input_value(arg)}" }.join("\n") out << "\n#{indentation})" end |
#print_input_value(arg) ⇒ Object
122 123 124 125 126 127 128 129 130 |
# File 'lib/graphql/schema/printer.rb', line 122 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 |
#print_value(value, type) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/graphql/schema/printer.rb', line 132 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 type.coerce_result(value) 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 |