rails-graphql 0.2.1 → 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/ext/console.rb +18 -0
  3. data/ext/extconf.h +3 -0
  4. data/ext/extconf.rb +1 -54
  5. data/ext/gql_parser.c +631 -0
  6. data/ext/gql_parser.h +21 -0
  7. data/ext/shared.c +477 -0
  8. data/ext/shared.h +177 -0
  9. data/lib/generators/graphql/channel_generator.rb +27 -0
  10. data/lib/generators/graphql/controller_generator.rb +9 -4
  11. data/lib/generators/graphql/install_generator.rb +49 -0
  12. data/lib/generators/graphql/schema_generator.rb +9 -4
  13. data/lib/generators/graphql/templates/channel.erb +7 -0
  14. data/lib/generators/graphql/templates/config.rb +97 -0
  15. data/lib/generators/graphql/templates/controller.erb +2 -0
  16. data/lib/generators/graphql/templates/schema.erb +5 -3
  17. data/lib/gql_parser.so +0 -0
  18. data/lib/rails/graphql/adapters/mysql_adapter.rb +59 -0
  19. data/lib/rails/graphql/adapters/pg_adapter.rb +25 -22
  20. data/lib/rails/graphql/adapters/sqlite_adapter.rb +17 -14
  21. data/lib/rails/graphql/alternative/field_set.rb +48 -0
  22. data/lib/rails/graphql/alternative/mutation.rb +17 -0
  23. data/lib/rails/graphql/alternative/query.rb +98 -0
  24. data/lib/rails/graphql/alternative/subscription.rb +18 -0
  25. data/lib/rails/graphql/alternative.rb +20 -0
  26. data/lib/rails/graphql/argument.rb +25 -26
  27. data/lib/rails/graphql/callback.rb +30 -14
  28. data/lib/rails/graphql/collectors/hash_collector.rb +26 -7
  29. data/lib/rails/graphql/collectors/idented_collector.rb +10 -7
  30. data/lib/rails/graphql/collectors/json_collector.rb +43 -17
  31. data/lib/rails/graphql/collectors.rb +4 -4
  32. data/lib/rails/graphql/config.rb +154 -23
  33. data/lib/rails/graphql/directive/cached_directive.rb +33 -0
  34. data/lib/rails/graphql/directive/deprecated_directive.rb +10 -10
  35. data/lib/rails/graphql/directive/include_directive.rb +4 -4
  36. data/lib/rails/graphql/directive/skip_directive.rb +4 -4
  37. data/lib/rails/graphql/directive/specified_by_directive.rb +24 -0
  38. data/lib/rails/graphql/directive.rb +134 -73
  39. data/lib/rails/graphql/errors.rb +33 -4
  40. data/lib/rails/graphql/event.rb +21 -9
  41. data/lib/rails/graphql/field/authorized_field.rb +17 -6
  42. data/lib/rails/graphql/field/input_field.rb +8 -12
  43. data/lib/rails/graphql/field/mutation_field.rb +43 -9
  44. data/lib/rails/graphql/field/output_field.rb +112 -12
  45. data/lib/rails/graphql/field/proxied_field.rb +35 -26
  46. data/lib/rails/graphql/field/resolved_field.rb +27 -25
  47. data/lib/rails/graphql/field/scoped_config.rb +10 -4
  48. data/lib/rails/graphql/field/subscription_field.rb +123 -0
  49. data/lib/rails/graphql/field/typed_field.rb +69 -24
  50. data/lib/rails/graphql/field.rb +89 -74
  51. data/lib/rails/graphql/global_id.rb +89 -0
  52. data/lib/rails/graphql/helpers/attribute_delegator.rb +5 -5
  53. data/lib/rails/graphql/helpers/inherited_collection/array.rb +51 -0
  54. data/lib/rails/graphql/helpers/inherited_collection/base.rb +45 -0
  55. data/lib/rails/graphql/helpers/inherited_collection/hash.rb +88 -0
  56. data/lib/rails/graphql/helpers/inherited_collection.rb +25 -76
  57. data/lib/rails/graphql/helpers/instantiable.rb +15 -0
  58. data/lib/rails/graphql/helpers/leaf_from_ar.rb +7 -7
  59. data/lib/rails/graphql/helpers/registerable.rb +44 -62
  60. data/lib/rails/graphql/helpers/unregisterable.rb +16 -0
  61. data/lib/rails/graphql/helpers/with_arguments.rb +33 -28
  62. data/lib/rails/graphql/helpers/with_assignment.rb +6 -6
  63. data/lib/rails/graphql/helpers/with_callbacks.rb +28 -11
  64. data/lib/rails/graphql/helpers/with_description.rb +73 -0
  65. data/lib/rails/graphql/helpers/with_directives.rb +58 -30
  66. data/lib/rails/graphql/helpers/with_events.rb +22 -23
  67. data/lib/rails/graphql/helpers/with_fields.rb +86 -26
  68. data/lib/rails/graphql/helpers/with_global_id.rb +22 -0
  69. data/lib/rails/graphql/helpers/with_name.rb +44 -0
  70. data/lib/rails/graphql/helpers/with_namespace.rb +7 -4
  71. data/lib/rails/graphql/helpers/with_owner.rb +8 -7
  72. data/lib/rails/graphql/helpers/with_schema_fields.rb +162 -56
  73. data/lib/rails/graphql/helpers/with_validator.rb +9 -9
  74. data/lib/rails/graphql/helpers.rb +10 -3
  75. data/lib/rails/graphql/introspection.rb +43 -36
  76. data/lib/rails/graphql/railtie.rb +89 -33
  77. data/lib/rails/graphql/railties/app/base_channel.rb +10 -0
  78. data/lib/rails/graphql/railties/app/base_controller.rb +12 -0
  79. data/lib/rails/graphql/railties/app/views/_cable.js.erb +56 -0
  80. data/lib/rails/graphql/railties/app/views/_fetch.js.erb +20 -0
  81. data/lib/rails/graphql/railties/app/views/graphiql.html.erb +101 -0
  82. data/lib/rails/graphql/railties/base_generator.rb +5 -17
  83. data/lib/rails/graphql/railties/channel.rb +157 -0
  84. data/lib/rails/graphql/railties/controller.rb +91 -25
  85. data/lib/rails/graphql/railties/controller_runtime.rb +5 -5
  86. data/lib/rails/graphql/railties/log_subscriber.rb +81 -14
  87. data/lib/rails/graphql/request/arguments.rb +26 -50
  88. data/lib/rails/graphql/request/backtrace.rb +212 -0
  89. data/lib/rails/graphql/request/component/field.rb +98 -70
  90. data/lib/rails/graphql/request/component/fragment.rb +80 -26
  91. data/lib/rails/graphql/request/component/operation/subscription.rb +162 -4
  92. data/lib/rails/graphql/request/component/operation.rb +73 -34
  93. data/lib/rails/graphql/request/component/spread.rb +79 -27
  94. data/lib/rails/graphql/request/component/typename.rb +28 -13
  95. data/lib/rails/graphql/request/component.rb +77 -36
  96. data/lib/rails/graphql/request/context.rb +19 -9
  97. data/lib/rails/graphql/request/errors.rb +16 -6
  98. data/lib/rails/graphql/request/event.rb +23 -8
  99. data/lib/rails/graphql/request/helpers/directives.rb +69 -27
  100. data/lib/rails/graphql/request/helpers/selection_set.rb +57 -25
  101. data/lib/rails/graphql/request/helpers/value_writers.rb +24 -19
  102. data/lib/rails/graphql/request/prepared_data.rb +100 -0
  103. data/lib/rails/graphql/request/steps/authorizable.rb +24 -14
  104. data/lib/rails/graphql/request/steps/organizable.rb +111 -49
  105. data/lib/rails/graphql/request/steps/{prepareable.rb → preparable.rb} +21 -8
  106. data/lib/rails/graphql/request/steps/{resolveable.rb → resolvable.rb} +16 -7
  107. data/lib/rails/graphql/request/strategy/cached_strategy.rb +64 -0
  108. data/lib/rails/graphql/request/strategy/dynamic_instance.rb +6 -6
  109. data/lib/rails/graphql/request/strategy/multi_query_strategy.rb +6 -13
  110. data/lib/rails/graphql/request/strategy/sequenced_strategy.rb +9 -9
  111. data/lib/rails/graphql/request/strategy.rb +147 -77
  112. data/lib/rails/graphql/request/subscription.rb +82 -0
  113. data/lib/rails/graphql/request.rb +353 -104
  114. data/lib/rails/graphql/schema.rb +251 -106
  115. data/lib/rails/graphql/shortcuts.rb +33 -8
  116. data/lib/rails/graphql/source/active_record/builders.rb +64 -51
  117. data/lib/rails/graphql/source/active_record_source.rb +158 -82
  118. data/lib/rails/graphql/source/base.rb +83 -0
  119. data/lib/rails/graphql/source/builder.rb +115 -0
  120. data/lib/rails/graphql/source/scoped_arguments.rb +39 -21
  121. data/lib/rails/graphql/source.rb +90 -228
  122. data/lib/rails/graphql/subscription/provider/action_cable.rb +113 -0
  123. data/lib/rails/graphql/subscription/provider/base.rb +192 -0
  124. data/lib/rails/graphql/subscription/provider.rb +18 -0
  125. data/lib/rails/graphql/subscription/store/base.rb +141 -0
  126. data/lib/rails/graphql/subscription/store/memory.rb +136 -0
  127. data/lib/rails/graphql/subscription/store.rb +19 -0
  128. data/lib/rails/graphql/subscription.rb +17 -0
  129. data/lib/rails/graphql/to_gql.rb +29 -32
  130. data/lib/rails/graphql/type/creator.rb +196 -0
  131. data/lib/rails/graphql/type/enum/directive_location_enum.rb +11 -11
  132. data/lib/rails/graphql/type/enum/type_kind_enum.rb +3 -3
  133. data/lib/rails/graphql/type/enum.rb +44 -50
  134. data/lib/rails/graphql/type/input.rb +92 -25
  135. data/lib/rails/graphql/type/interface.rb +29 -28
  136. data/lib/rails/graphql/type/object/directive_object.rb +10 -9
  137. data/lib/rails/graphql/type/object/enum_value_object.rb +3 -3
  138. data/lib/rails/graphql/type/object/field_object.rb +24 -6
  139. data/lib/rails/graphql/type/object/input_value_object.rb +6 -7
  140. data/lib/rails/graphql/type/object/schema_object.rb +5 -8
  141. data/lib/rails/graphql/type/object/type_object.rb +62 -25
  142. data/lib/rails/graphql/type/object.rb +34 -26
  143. data/lib/rails/graphql/type/scalar/any_scalar.rb +30 -0
  144. data/lib/rails/graphql/type/scalar/bigint_scalar.rb +5 -5
  145. data/lib/rails/graphql/type/scalar/binary_scalar.rb +5 -3
  146. data/lib/rails/graphql/type/scalar/boolean_scalar.rb +8 -8
  147. data/lib/rails/graphql/type/scalar/date_scalar.rb +5 -3
  148. data/lib/rails/graphql/type/scalar/date_time_scalar.rb +5 -3
  149. data/lib/rails/graphql/type/scalar/decimal_scalar.rb +5 -3
  150. data/lib/rails/graphql/type/scalar/float_scalar.rb +5 -5
  151. data/lib/rails/graphql/type/scalar/id_scalar.rb +6 -5
  152. data/lib/rails/graphql/type/scalar/int_scalar.rb +6 -5
  153. data/lib/rails/graphql/type/scalar/json_scalar.rb +41 -0
  154. data/lib/rails/graphql/type/scalar/string_scalar.rb +18 -4
  155. data/lib/rails/graphql/type/scalar/time_scalar.rb +8 -6
  156. data/lib/rails/graphql/type/scalar.rb +26 -23
  157. data/lib/rails/graphql/type/union.rb +21 -18
  158. data/lib/rails/graphql/type.rb +43 -26
  159. data/lib/rails/graphql/type_map.rb +268 -165
  160. data/lib/rails/graphql/uri.rb +167 -0
  161. data/lib/rails/graphql/version.rb +19 -3
  162. data/lib/rails/graphql.rake +3 -0
  163. data/lib/rails/graphql.rb +91 -56
  164. data/lib/rails-graphql.rb +1 -1
  165. data/test/assets/en.yml +29 -0
  166. data/test/assets/introspection-mem.txt +1 -1
  167. data/test/assets/introspection.gql +2 -0
  168. data/test/assets/mem.gql +86 -99
  169. data/test/assets/mysql.gql +406 -0
  170. data/test/assets/sqlite.gql +96 -73
  171. data/test/assets/translate.gql +346 -0
  172. data/test/config.rb +19 -8
  173. data/test/graphql/schema_test.rb +14 -50
  174. data/test/graphql/source_test.rb +8 -85
  175. data/test/graphql/type/enum_test.rb +207 -203
  176. data/test/graphql/type/input_test.rb +14 -9
  177. data/test/graphql/type/interface_test.rb +12 -9
  178. data/test/graphql/type/object_test.rb +8 -2
  179. data/test/graphql/type/scalar/any_scalar_test.rb +38 -0
  180. data/test/graphql/type/scalar/boolean_scalar_test.rb +6 -3
  181. data/test/graphql/type/scalar/json_scalar_test.rb +23 -0
  182. data/test/graphql/type_map_test.rb +63 -81
  183. data/test/graphql/type_test.rb +0 -19
  184. data/test/graphql_test.rb +1 -1
  185. data/test/integration/{authorization/authorization_test.rb → authorization_test.rb} +40 -14
  186. data/test/integration/config.rb +36 -3
  187. data/test/integration/customization_test.rb +39 -0
  188. data/test/integration/global_id_test.rb +99 -0
  189. data/test/integration/memory/star_wars_introspection_test.rb +24 -16
  190. data/test/integration/memory/star_wars_query_test.rb +54 -3
  191. data/test/integration/memory/star_wars_validation_test.rb +3 -3
  192. data/test/integration/mysql/star_wars_introspection_test.rb +25 -0
  193. data/test/integration/persisted_query_test.rb +87 -0
  194. data/test/integration/resolver_precedence_test.rb +154 -0
  195. data/test/integration/schemas/memory.rb +24 -10
  196. data/test/integration/schemas/mysql.rb +62 -0
  197. data/test/integration/schemas/sqlite.rb +21 -12
  198. data/test/integration/sqlite/star_wars_global_id_test.rb +89 -0
  199. data/test/integration/sqlite/star_wars_introspection_test.rb +10 -0
  200. data/test/integration/sqlite/star_wars_query_test.rb +14 -1
  201. data/test/integration/translate_test.rb +73 -0
  202. data/test/test_ext.rb +16 -13
  203. metadata +125 -161
  204. data/ext/depend +0 -3
  205. data/ext/graphqlparser/Ast.cpp +0 -346
  206. data/ext/graphqlparser/Ast.h +0 -1214
  207. data/ext/graphqlparser/AstNode.h +0 -36
  208. data/ext/graphqlparser/AstVisitor.h +0 -137
  209. data/ext/graphqlparser/GraphQLParser.cpp +0 -76
  210. data/ext/graphqlparser/GraphQLParser.h +0 -55
  211. data/ext/graphqlparser/JsonVisitor.cpp +0 -161
  212. data/ext/graphqlparser/JsonVisitor.cpp.inc +0 -456
  213. data/ext/graphqlparser/JsonVisitor.h +0 -121
  214. data/ext/graphqlparser/JsonVisitor.h.inc +0 -110
  215. data/ext/graphqlparser/VERSION +0 -1
  216. data/ext/graphqlparser/c/GraphQLAst.cpp +0 -324
  217. data/ext/graphqlparser/c/GraphQLAst.h +0 -180
  218. data/ext/graphqlparser/c/GraphQLAstForEachConcreteType.h +0 -44
  219. data/ext/graphqlparser/c/GraphQLAstNode.cpp +0 -25
  220. data/ext/graphqlparser/c/GraphQLAstNode.h +0 -33
  221. data/ext/graphqlparser/c/GraphQLAstToJSON.cpp +0 -21
  222. data/ext/graphqlparser/c/GraphQLAstToJSON.h +0 -24
  223. data/ext/graphqlparser/c/GraphQLAstVisitor.cpp +0 -55
  224. data/ext/graphqlparser/c/GraphQLAstVisitor.h +0 -53
  225. data/ext/graphqlparser/c/GraphQLParser.cpp +0 -35
  226. data/ext/graphqlparser/c/GraphQLParser.h +0 -54
  227. data/ext/graphqlparser/dump_json_ast.cpp +0 -48
  228. data/ext/graphqlparser/lexer.lpp +0 -324
  229. data/ext/graphqlparser/parser.ypp +0 -693
  230. data/ext/graphqlparser/parsergen/lexer.cpp +0 -2633
  231. data/ext/graphqlparser/parsergen/lexer.h +0 -528
  232. data/ext/graphqlparser/parsergen/location.hh +0 -189
  233. data/ext/graphqlparser/parsergen/parser.tab.cpp +0 -3300
  234. data/ext/graphqlparser/parsergen/parser.tab.hpp +0 -646
  235. data/ext/graphqlparser/parsergen/position.hh +0 -179
  236. data/ext/graphqlparser/parsergen/stack.hh +0 -156
  237. data/ext/graphqlparser/syntaxdefs.h +0 -19
  238. data/ext/libgraphqlparser/AstNode.h +0 -36
  239. data/ext/libgraphqlparser/CMakeLists.txt +0 -148
  240. data/ext/libgraphqlparser/CONTRIBUTING.md +0 -23
  241. data/ext/libgraphqlparser/GraphQLParser.cpp +0 -76
  242. data/ext/libgraphqlparser/GraphQLParser.h +0 -55
  243. data/ext/libgraphqlparser/JsonVisitor.cpp +0 -161
  244. data/ext/libgraphqlparser/JsonVisitor.h +0 -121
  245. data/ext/libgraphqlparser/LICENSE +0 -22
  246. data/ext/libgraphqlparser/README.clang-tidy +0 -7
  247. data/ext/libgraphqlparser/README.md +0 -84
  248. data/ext/libgraphqlparser/ast/ast.ast +0 -203
  249. data/ext/libgraphqlparser/ast/ast.py +0 -61
  250. data/ext/libgraphqlparser/ast/c.py +0 -100
  251. data/ext/libgraphqlparser/ast/c.pyc +0 -0
  252. data/ext/libgraphqlparser/ast/c_impl.py +0 -61
  253. data/ext/libgraphqlparser/ast/c_impl.pyc +0 -0
  254. data/ext/libgraphqlparser/ast/c_visitor_impl.py +0 -39
  255. data/ext/libgraphqlparser/ast/c_visitor_impl.pyc +0 -0
  256. data/ext/libgraphqlparser/ast/casing.py +0 -26
  257. data/ext/libgraphqlparser/ast/casing.pyc +0 -0
  258. data/ext/libgraphqlparser/ast/cxx.py +0 -197
  259. data/ext/libgraphqlparser/ast/cxx.pyc +0 -0
  260. data/ext/libgraphqlparser/ast/cxx_impl.py +0 -61
  261. data/ext/libgraphqlparser/ast/cxx_impl.pyc +0 -0
  262. data/ext/libgraphqlparser/ast/cxx_json_visitor_header.py +0 -42
  263. data/ext/libgraphqlparser/ast/cxx_json_visitor_header.pyc +0 -0
  264. data/ext/libgraphqlparser/ast/cxx_json_visitor_impl.py +0 -80
  265. data/ext/libgraphqlparser/ast/cxx_json_visitor_impl.pyc +0 -0
  266. data/ext/libgraphqlparser/ast/cxx_visitor.py +0 -64
  267. data/ext/libgraphqlparser/ast/cxx_visitor.pyc +0 -0
  268. data/ext/libgraphqlparser/ast/js.py +0 -65
  269. data/ext/libgraphqlparser/ast/license.py +0 -10
  270. data/ext/libgraphqlparser/ast/license.pyc +0 -0
  271. data/ext/libgraphqlparser/c/GraphQLAstNode.cpp +0 -25
  272. data/ext/libgraphqlparser/c/GraphQLAstNode.h +0 -33
  273. data/ext/libgraphqlparser/c/GraphQLAstToJSON.cpp +0 -21
  274. data/ext/libgraphqlparser/c/GraphQLAstToJSON.h +0 -24
  275. data/ext/libgraphqlparser/c/GraphQLAstVisitor.cpp +0 -55
  276. data/ext/libgraphqlparser/c/GraphQLAstVisitor.h +0 -53
  277. data/ext/libgraphqlparser/c/GraphQLParser.cpp +0 -35
  278. data/ext/libgraphqlparser/c/GraphQLParser.h +0 -54
  279. data/ext/libgraphqlparser/clang-tidy-all.sh +0 -3
  280. data/ext/libgraphqlparser/cmake/version.cmake +0 -16
  281. data/ext/libgraphqlparser/dump_json_ast.cpp +0 -48
  282. data/ext/libgraphqlparser/go/README.md +0 -20
  283. data/ext/libgraphqlparser/go/callbacks.go +0 -18
  284. data/ext/libgraphqlparser/go/gotest.go +0 -64
  285. data/ext/libgraphqlparser/lexer.lpp +0 -324
  286. data/ext/libgraphqlparser/libgraphqlparser.pc.in +0 -11
  287. data/ext/libgraphqlparser/parser.ypp +0 -693
  288. data/ext/libgraphqlparser/parsergen/lexer.cpp +0 -2633
  289. data/ext/libgraphqlparser/parsergen/lexer.h +0 -528
  290. data/ext/libgraphqlparser/parsergen/location.hh +0 -189
  291. data/ext/libgraphqlparser/parsergen/parser.tab.cpp +0 -3300
  292. data/ext/libgraphqlparser/parsergen/parser.tab.hpp +0 -646
  293. data/ext/libgraphqlparser/parsergen/position.hh +0 -179
  294. data/ext/libgraphqlparser/parsergen/stack.hh +0 -156
  295. data/ext/libgraphqlparser/python/CMakeLists.txt +0 -14
  296. data/ext/libgraphqlparser/python/README.md +0 -5
  297. data/ext/libgraphqlparser/python/example.py +0 -31
  298. data/ext/libgraphqlparser/syntaxdefs.h +0 -19
  299. data/ext/libgraphqlparser/test/BuildCAPI.c +0 -5
  300. data/ext/libgraphqlparser/test/CMakeLists.txt +0 -25
  301. data/ext/libgraphqlparser/test/JsonVisitorTests.cpp +0 -28
  302. data/ext/libgraphqlparser/test/ParserTests.cpp +0 -352
  303. data/ext/libgraphqlparser/test/kitchen-sink.graphql +0 -59
  304. data/ext/libgraphqlparser/test/kitchen-sink.json +0 -1
  305. data/ext/libgraphqlparser/test/schema-kitchen-sink.graphql +0 -78
  306. data/ext/libgraphqlparser/test/schema-kitchen-sink.json +0 -1
  307. data/ext/libgraphqlparser/test/valgrind.supp +0 -33
  308. data/ext/version.cpp +0 -21
  309. data/lib/graphqlparser.so +0 -0
  310. data/lib/rails/graphql/native/functions.rb +0 -38
  311. data/lib/rails/graphql/native/location.rb +0 -41
  312. data/lib/rails/graphql/native/pointers.rb +0 -23
  313. data/lib/rails/graphql/native/visitor.rb +0 -349
  314. data/lib/rails/graphql/native.rb +0 -56
  315. data/test/integration/schemas/authorization.rb +0 -12
@@ -13,6 +13,7 @@ query IntrospectionQuery {
13
13
  args {
14
14
  ...InputValue
15
15
  }
16
+ isRepeatable
16
17
  }
17
18
  }
18
19
  }
@@ -21,6 +22,7 @@ fragment FullType on __Type {
21
22
  kind
22
23
  name
23
24
  description
25
+ specifiedByURL
24
26
  fields(includeDeprecated: true) {
25
27
  name
26
28
  description
data/test/assets/mem.gql CHANGED
@@ -3,34 +3,10 @@ schema {
3
3
  mutation: _Mutation
4
4
  }
5
5
 
6
- """
7
- The Bigint scalar type represents a signed numeric non‐fractional value.
8
- It can go beyond the Int 32‐bit limit, but it's exchanged as a string.
9
- """
10
- scalar Bigint
11
-
12
- """
13
- The Binary scalar type represents a Base64 string.
14
- Normally used to share files and uploads.
15
- """
16
- scalar Binary
17
-
18
6
  "The Boolean scalar type represents true or false."
19
7
  scalar Boolean
20
8
 
21
- "The Date scalar type represents a ISO 8601 string value."
22
- scalar Date
23
-
24
- "The DateTime scalar type represents a ISO 8601 string value."
25
- scalar DateTime
26
-
27
- """
28
- The Decimal scalar type represents signed fractional values with extra precision.
29
- The values are exchange as string.
30
- """
31
- scalar Decimal
32
-
33
- "The Float scalar type represents signed double‐precision fractional values."
9
+ "The Float scalar type represents signed double-precision fractional values."
34
10
  scalar Float
35
11
 
36
12
  """
@@ -39,21 +15,15 @@ way as a String but it accepts both numeric and string based values as input.
39
15
  """
40
16
  scalar ID
41
17
 
42
- "The Int scalar type represents a signed 32bit numeric nonfractional value."
18
+ "The Int scalar type represents a signed 32-bit numeric non-fractional value."
43
19
  scalar Int
44
20
 
45
21
  """
46
- The String scalar type represents textual data, represented as UTF8 character
22
+ The String scalar type represents textual data, represented as UTF-8 character
47
23
  sequences.
48
24
  """
49
25
  scalar String
50
26
 
51
- """
52
- The Time scalar type that represents a distance in time using hours,
53
- minutes, seconds, and miliseconds.
54
- """
55
- scalar Time
56
-
57
27
  "One of the films in the Star Wars Trilogy"
58
28
  enum Episode {
59
29
  "Released in 1977."
@@ -158,14 +128,14 @@ interface Character {
158
128
  "The id of the character"
159
129
  id: ID!
160
130
 
161
- "The name of the character"
162
- name: String
131
+ "Which movies they appear in"
132
+ appearsIn: [Episode]
163
133
 
164
134
  "The friends of the character, or an empty list if they have none"
165
135
  friends: [Character]
166
136
 
167
- "Which movies they appear in"
168
- appearsIn: [Episode]
137
+ "The name of the character"
138
+ name: String
169
139
 
170
140
  "All secrets about their past"
171
141
  secretBackstory: String
@@ -174,45 +144,48 @@ interface Character {
174
144
  "A mechanical creature in the Star Wars universe"
175
145
  # Assigned to MemoryTest::Droid class
176
146
  type Droid implements Character {
177
- "The id of the character"
147
+ "The id of the droid"
178
148
  id: ID!
179
149
 
180
- "The name of the character"
181
- name: String
182
-
183
- "The friends of the character, or an empty list if they have none"
184
- friends: [Character]
185
-
186
150
  "Which movies they appear in"
187
151
  appearsIn: [Episode]
188
152
 
189
- "All secrets about their past"
190
- secretBackstory: String
153
+ "The friends of the droid, or an empty list if they have none"
154
+ friends: [Character]
155
+
156
+ "The name of the droid"
157
+ name: String
191
158
 
192
159
  "The primary function of the droid"
193
160
  primaryFunction: String
161
+
162
+ "Construction date and the name of the designer"
163
+ secretBackstory: String
194
164
  }
195
165
 
196
166
  "A humanoid creature in the Star Wars universe"
197
167
  # Assigned to MemoryTest::Human class
198
168
  type Human implements Character {
199
- "The id of the character"
169
+ "The id of the human"
200
170
  id: ID!
201
171
 
202
- "The name of the character"
203
- name: String
204
-
205
- "The friends of the character, or an empty list if they have none"
206
- friends: [Character]
207
-
208
172
  "Which movies they appear in"
209
173
  appearsIn: [Episode]
210
174
 
211
- "All secrets about their past"
212
- secretBackstory: String
175
+ "The friends of the human, or an empty list if they have none"
176
+ friends: [Character]
177
+
178
+ "A greeting phrase from this person to someone"
179
+ greeting(name: String!): String
213
180
 
214
181
  "The home planet of the human, or null if unknown"
215
182
  homePlanet: String
183
+
184
+ "The name of the human"
185
+ name: String
186
+
187
+ "Where are they from and how they came to be who they are"
188
+ secretBackstory: String
216
189
  }
217
190
 
218
191
  type _Mutation {
@@ -231,6 +204,14 @@ type _Query {
231
204
 
232
205
  __type(name: String!): __Type
233
206
 
207
+ "Find a droid character"
208
+ droid(
209
+
210
+ "ID of the droid"
211
+ id: ID!
212
+
213
+ ): Droid
214
+
234
215
  "Find the hero of the whole saga"
235
216
  hero(
236
217
 
@@ -246,34 +227,28 @@ type _Query {
246
227
  id: ID!
247
228
 
248
229
  ): Human
249
-
250
- "Find a droid character"
251
- droid(
252
-
253
- "ID of the droid"
254
- id: ID!
255
-
256
- ): Droid
257
230
  }
258
231
 
259
232
  """
260
233
  Directives provide a way to describe alternate runtime execution
261
234
  and type validation behavior in a GraphQL document.
262
235
 
263
- In some cases, you need to provide options to alter GraphQLs execution
236
+ In some cases, you need to provide options to alter GraphQL's execution
264
237
  behavior in ways field arguments will not suffice, such as conditionally
265
238
  including or skipping a field. Directives provide this by describing
266
239
  additional information to the executor.
267
240
  """
268
241
  # Assigned to Rails::GraphQL::Directive class
269
242
  type __Directive {
270
- name: String!
243
+ args: [__InputValue!]!
271
244
 
272
245
  description: String
273
246
 
247
+ isRepeatable: Boolean!
248
+
274
249
  locations: [__DirectiveLocation!]!
275
250
 
276
- args: [__InputValue!]!
251
+ name: String!
277
252
  }
278
253
 
279
254
  """
@@ -282,13 +257,13 @@ of values. It's a string representation, not a numeric representation,
282
257
  of a value kept as all caps (ie. ONE_VALUE).
283
258
  """
284
259
  type __EnumValue {
285
- name: String!
260
+ deprecationReason: String
286
261
 
287
262
  description: String
288
263
 
289
264
  isDeprecated: Boolean!
290
265
 
291
- deprecationReason: String
266
+ name: String!
292
267
  }
293
268
 
294
269
  """
@@ -298,54 +273,53 @@ a value of a specific type.
298
273
  """
299
274
  # Assigned to Rails::GraphQL::Field class
300
275
  type __Field {
301
- name: String!
302
-
303
- description: String
304
-
305
276
  args: [__InputValue!]!
306
277
 
307
- type: __Type!
278
+ deprecationReason: String
279
+
280
+ description: String
308
281
 
309
282
  isDeprecated: Boolean!
310
283
 
311
- deprecationReason: String
284
+ name: String!
285
+
286
+ type: __Type!
312
287
  }
313
288
 
314
289
  """
315
- Alongside with scalars and enums, input value objects allow the user
316
- to provide values to arguments on fields and directives. Different
317
- from those, input values accepts a list of keyed values, instead of
318
- a single value.
290
+ Arguments provided to Fields or Directives and the input fields of an
291
+ InputObject are represented as Input Values which describe their type
292
+ and optionally a default value.
319
293
  """
320
294
  # Assigned to Rails::GraphQL::Field::InputField class
321
295
  type __InputValue {
322
- name: String!
296
+ defaultValue: String
323
297
 
324
298
  description: String
325
299
 
326
- type: __Type!
300
+ name: String!
327
301
 
328
- defaultValue: String
302
+ type: __Type!
329
303
  }
330
304
 
331
305
  """
332
- A GraphQL services collective type system capabilities are referred
333
- to as that services "schema". A schema is defined in terms of the
306
+ A GraphQL service's collective type system capabilities are referred
307
+ to as that service's "schema". A schema is defined in terms of the
334
308
  types and directives it supports as well as the root operation types
335
309
  for each kind of operation: query, mutation, and subscription; this
336
310
  determines the place in the type system where those operations begin.
337
311
  """
338
312
  # Assigned to Rails::GraphQL::Schema class
339
313
  type __Schema {
340
- types: [__Type!]!
341
-
342
- queryType: __Type!
314
+ directives: [__Directive!]!
343
315
 
344
316
  mutationType: __Type
345
317
 
318
+ queryType: __Type!
319
+
346
320
  subscriptionType: __Type
347
321
 
348
- directives: [__Directive!]!
322
+ types: [__Type!]!
349
323
  }
350
324
 
351
325
  """
@@ -371,33 +345,35 @@ the schema to define exactly what data is expected.
371
345
  """
372
346
  # Assigned to Rails::GraphQL::Type class
373
347
  type __Type {
374
- kind: __TypeKind!
375
-
376
- name: String
377
-
378
348
  description: String
379
349
 
350
+ "ENUM only"
351
+ enumValues(includeDeprecated: Boolean = false): [__EnumValue!]
352
+
380
353
  "OBJECT and INTERFACE only"
381
354
  fields(includeDeprecated: Boolean = false): [__Field!]
382
355
 
356
+ "INPUT_OBJECT only"
357
+ inputFields: [__InputValue!]
358
+
383
359
  "OBJECT only"
384
360
  interfaces: [__Type!]
385
361
 
386
- "INTERFACE and UNION only"
387
- possibleTypes: [__Type!]
388
-
389
- "ENUM only"
390
- enumValues(includeDeprecated: Boolean = false): [__EnumValue!]
362
+ kind: __TypeKind!
391
363
 
392
- "INPUT_OBJECT only"
393
- inputFields: [__InputValue!]
364
+ name: String
394
365
 
395
366
  "NON_NULL and LIST only"
396
367
  ofType: __Type
368
+
369
+ "INTERFACE and UNION only"
370
+ possibleTypes: [__Type!]
371
+
372
+ specifiedByURL: String
397
373
  }
398
374
 
399
375
  """
400
- Indicate deprecated portions of a GraphQL services schema, such as deprecated
376
+ Indicate deprecated portions of a GraphQL service's schema, such as deprecated
401
377
  fields on a type or deprecated enum values.
402
378
  """
403
379
  directive @deprecated(
@@ -426,3 +402,14 @@ directive @skip(
426
402
  if: Boolean!
427
403
 
428
404
  ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT
405
+
406
+ """
407
+ A built-in directive used within the type system definition language to provide
408
+ a scalar specification URL for specifying the behavior of custom scalar types.
409
+ """
410
+ directive @specifiedBy(
411
+
412
+ "Point to a human-readable specification of the data format."
413
+ url: String!
414
+
415
+ ) on SCALAR