graphql 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql.rb +46 -29
  3. data/lib/graphql/call.rb +1 -1
  4. data/lib/graphql/connection.rb +12 -35
  5. data/lib/graphql/field.rb +7 -177
  6. data/lib/graphql/field_definer.rb +5 -15
  7. data/lib/graphql/introspection/{call_node.rb → call_type.rb} +1 -1
  8. data/lib/graphql/introspection/field_type.rb +10 -0
  9. data/lib/graphql/introspection/{root_call_node.rb → root_call_type.rb} +6 -2
  10. data/lib/graphql/introspection/schema_type.rb +17 -0
  11. data/lib/graphql/introspection/{type_node.rb → type_type.rb} +4 -2
  12. data/lib/graphql/node.rb +118 -42
  13. data/lib/graphql/{parser.rb → parser/parser.rb} +9 -4
  14. data/lib/graphql/{transform.rb → parser/transform.rb} +4 -2
  15. data/lib/graphql/query.rb +33 -10
  16. data/lib/graphql/root_call.rb +26 -13
  17. data/lib/graphql/root_call_argument.rb +3 -1
  18. data/lib/graphql/root_call_argument_definer.rb +3 -7
  19. data/lib/graphql/schema/all.rb +46 -0
  20. data/lib/graphql/{schema.rb → schema/schema.rb} +27 -39
  21. data/lib/graphql/schema/schema_validation.rb +32 -0
  22. data/lib/graphql/syntax/fragment.rb +7 -0
  23. data/lib/graphql/syntax/query.rb +3 -2
  24. data/lib/graphql/types/boolean_type.rb +3 -0
  25. data/lib/graphql/types/number_type.rb +3 -0
  26. data/lib/graphql/types/object_type.rb +6 -0
  27. data/lib/graphql/types/string_type.rb +3 -0
  28. data/lib/graphql/version.rb +1 -1
  29. data/readme.md +46 -5
  30. data/spec/graphql/node_spec.rb +6 -5
  31. data/spec/graphql/{parser_spec.rb → parser/parser_spec.rb} +31 -2
  32. data/spec/graphql/{transform_spec.rb → parser/transform_spec.rb} +16 -2
  33. data/spec/graphql/query_spec.rb +27 -9
  34. data/spec/graphql/root_call_spec.rb +15 -1
  35. data/spec/graphql/{schema_spec.rb → schema/schema_spec.rb} +15 -50
  36. data/spec/graphql/schema/schema_validation_spec.rb +48 -0
  37. data/spec/support/nodes.rb +31 -28
  38. metadata +47 -47
  39. data/lib/graphql/introspection/field_node.rb +0 -19
  40. data/lib/graphql/introspection/schema_node.rb +0 -17
  41. data/lib/graphql/types/boolean_field.rb +0 -3
  42. data/lib/graphql/types/connection_field.rb +0 -30
  43. data/lib/graphql/types/cursor_field.rb +0 -9
  44. data/lib/graphql/types/number_field.rb +0 -3
  45. data/lib/graphql/types/object_field.rb +0 -8
  46. data/lib/graphql/types/string_field.rb +0 -3
  47. data/lib/graphql/types/type_field.rb +0 -6
  48. data/spec/graphql/field_spec.rb +0 -63
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe GraphQL::Transform do
3
+ describe GraphQL::Parser::Transform do
4
4
  let(:transform) { GraphQL::TRANSFORM }
5
5
  let(:parser) { GraphQL::PARSER }
6
6
 
@@ -8,7 +8,7 @@ describe GraphQL::Transform do
8
8
  describe 'query' do
9
9
  it 'parses node and variables' do
10
10
  tree = parser.query.parse(%{
11
- like_page(<page_info>) { page { id, likes } }
11
+ like_page(<page_info>) { page { $fragment, likes } }
12
12
 
13
13
  <page_info>: {
14
14
  "page" : { "id": 4},
@@ -18,12 +18,17 @@ describe GraphQL::Transform do
18
18
  "page" : { "id": 4},
19
19
  "person" : {"id": 4}
20
20
  }
21
+
22
+ $fragment: {
23
+ id, name
24
+ }
21
25
  })
22
26
  res = transform.apply(tree)
23
27
  assert_equal 1, res.nodes.length
24
28
  assert_equal "like_page", res.nodes[0].identifier
25
29
  assert_equal ["<page_info>"], res.nodes[0].arguments
26
30
  assert_equal ["<page_info>", "<other>"], res.variables.map(&:identifier)
31
+ assert_equal ["$fragment"], res.fragments.map(&:identifier)
27
32
  end
28
33
  end
29
34
 
@@ -139,5 +144,14 @@ describe GraphQL::Transform do
139
144
  assert_equal "<page_info>", res.identifier
140
145
  end
141
146
  end
147
+
148
+ describe 'fragments' do
149
+ it 'gets fragments' do
150
+ tree = parser.fragment.parse(%{$frag: { id, name, $otherFrag }})
151
+ res = transform.apply(tree)
152
+ assert_equal "$frag", res.identifier
153
+ assert_equal ["id", "name", "$otherFrag"], res.fields.map(&:identifier)
154
+ end
155
+ end
142
156
  end
143
157
  end
@@ -48,6 +48,21 @@ describe GraphQL::Query do
48
48
  end
49
49
  end
50
50
  end
51
+
52
+ describe 'when using query fragments' do
53
+ let(:query_string) { "post(123) { id, $publishedData } $publishedData: { published_at { month, year } }"}
54
+
55
+ it 'can yield the fragment' do
56
+ fragment = query.fragments["$publishedData"]
57
+ assert_equal "$publishedData", fragment.identifier
58
+ assert_equal 1, fragment.fields.length
59
+ end
60
+
61
+ it 'returns literal fields and fragment fields' do
62
+ assert_equal(123, result["123"]['id'])
63
+ assert_equal({"month" => 1, "year" => 2010}, result["123"]["published_at"])
64
+ end
65
+ end
51
66
  describe 'when aliasing things' do
52
67
  let(:query_string) { "post(123) { title as headline, content as what_it_says }"}
53
68
 
@@ -68,6 +83,7 @@ describe GraphQL::Query do
68
83
 
69
84
  describe 'when accessing custom fields' do
70
85
  let(:query_string) { "comment(444) { letters }"}
86
+
71
87
  it 'uses the custom field' do
72
88
  assert_equal "I agree", result["444"]["letters"]
73
89
  end
@@ -108,8 +124,9 @@ describe GraphQL::Query do
108
124
  end
109
125
 
110
126
  describe 'when the root call doesnt have an argument' do
111
- let(:query_string) { "context() { person_name }"}
127
+ let(:query_string) { "context() { person_name, present }"}
112
128
  it 'calls the node with no arguments' do
129
+ assert_equal true, result["context"]["present"]
113
130
  assert_equal "Han Solo", result["context"]["person_name"]
114
131
  end
115
132
  end
@@ -138,13 +155,13 @@ describe GraphQL::Query do
138
155
  let(:query_string) { "post(123) { comments.first(1) { edges { cursor, node { content } } } }"}
139
156
 
140
157
  it 'executes those calls' do
141
- assert_equal result, {
142
- "123" => {
143
- "comments" => {
144
- "edges" => [
145
- { "cursor" => "444", "node" => { "content" => "I agree"} }
146
- ]
147
- }}}
158
+ expected_result = { "123" => {
159
+ "comments" => {
160
+ "edges" => [
161
+ { "cursor" => "444", "node" => { "content" => "I agree"} }
162
+ ]
163
+ }}}
164
+ assert_equal(expected_result, result)
148
165
  end
149
166
  end
150
167
 
@@ -194,6 +211,7 @@ describe GraphQL::Query do
194
211
 
195
212
  describe 'when requesting fields on a related object' do
196
213
  let(:query_string) { "comment(444) { post { title } }"}
214
+
197
215
  it 'finds fields on that object' do
198
216
  assert_equal "My great post", result["444"]["post"]["title"]
199
217
  end
@@ -204,7 +222,7 @@ describe GraphQL::Query do
204
222
  end
205
223
 
206
224
  it 'blows_up' do # what _should_ this do?
207
- assert_raises(RuntimeError) { result }
225
+ assert_raises(NoMethodError) { result }
208
226
  end
209
227
  end
210
228
  end
@@ -48,8 +48,22 @@ describe GraphQL::RootCall do
48
48
  end
49
49
  end
50
50
 
51
+ describe '.argument' do
52
+ it 'is reload-safe' do
53
+ assert_equal 2, Nodes::LikePostCall.arguments.length, "it starts with 1"
54
+ assert_equal "person_id", Nodes::LikePostCall.argument_at_index(1).name
55
+ assert_raises(RuntimeError, 'it raises before') { Nodes::LikePostCall.argument_at_index(2) }
56
+
57
+ Nodes::LikePostCall.argument.number("person_id")
58
+
59
+ assert_equal 2, Nodes::LikePostCall.arguments.length, "it stays at 1"
60
+ assert_equal "person_id", Nodes::LikePostCall.argument_at_index(1).name
61
+ assert_raises(RuntimeError, 'it raises after') { Nodes::LikePostCall.argument_at_index(2) }
62
+ end
63
+ end
64
+
51
65
  describe '#__type__' do
52
- it 'describes the input'
66
+ it 'describes the arguments'
53
67
  it 'describes the response'
54
68
  end
55
69
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe GraphQL::Schema do
3
+ describe GraphQL::Schema::Schema do
4
4
  let(:schema) { GraphQL::SCHEMA }
5
5
  describe 'global instance' do
6
6
  it 'exists as GraphQL::SCHEMA' do
7
- assert GraphQL::SCHEMA.is_a?(GraphQL::Schema)
7
+ assert GraphQL::SCHEMA.is_a?(GraphQL::Schema::Schema)
8
8
  end
9
9
  end
10
10
 
@@ -29,52 +29,9 @@ describe GraphQL::Schema do
29
29
  end
30
30
 
31
31
  describe 'querying schema' do
32
- let(:query_string) { "schema() {
33
- calls {
34
- count,
35
- edges {
36
- node {
37
- name,
38
- returns,
39
- arguments {
40
- edges {
41
- node {
42
- name, type
43
- }
44
- }
45
- }
46
- }
47
- }
48
- },
49
- types {
50
- count,
51
- edges {
52
- node {
53
- name,
54
- fields {
55
- count,
56
- edges {
57
- node {
58
- name,
59
- type,
60
- calls {
61
- count,
62
- edges {
63
- node {
64
- name,
65
- arguments
66
- }
67
- }
68
- }
69
- }
70
- }
71
- }
72
- }
73
- }
74
- }
75
- }"}
76
- let(:query) { GraphQL::Query.new(query_string) }
77
- let(:result) { query.as_result }
32
+ let(:query_string) { }
33
+ let(:query) { GraphQL::Query.new(query_string) }
34
+ let(:result) { GraphQL::SCHEMA.all }
78
35
 
79
36
  describe 'querying calls' do
80
37
  let(:upvote_post_call) { result["schema"]["calls"]["edges"].find {|e| e["node"]["name"] == "upvote_post"} }
@@ -102,9 +59,12 @@ describe GraphQL::Schema do
102
59
  let(:post_type) { result["schema"]["types"]["edges"].find { |e| e["node"]["name"] == "post" }["node"]}
103
60
  let(:content_field) { post_type["fields"]["edges"].find { |e| e["node"]["name"] == "content" }["node"]}
104
61
  let(:select_call) { content_field["calls"]["edges"].find { |e| e["node"]["name"] == "select"}["node"]}
62
+ let(:type_names) { result["schema"]["types"]["edges"].map {|t| t["node"]["name"] }}
105
63
 
106
64
  it 'returns all types' do
107
- assert_equal 13, result["schema"]["types"]["count"]
65
+ types_count = 19
66
+ assert_equal types_count, result["schema"]["types"]["count"]
67
+ assert_equal types_count, type_names.length
108
68
  end
109
69
 
110
70
  it 'doesnt return types that dont expose anything' do
@@ -117,8 +77,13 @@ describe GraphQL::Schema do
117
77
  assert_equal 8, post_type["fields"]["count"]
118
78
  end
119
79
 
80
+ it 'has custom types' do
81
+ assert type_names.include?("letter_selection")
82
+ assert_equal "letter_selection", content_field["type"]
83
+ end
84
+
120
85
  it 'shows field type & calls' do
121
- assert_equal "string", content_field["type"]
86
+ assert_equal "letter_selection", content_field["type"]
122
87
  assert_equal 3, content_field["calls"]["count"]
123
88
  assert_equal "select", select_call["name"]
124
89
  assert_equal "from_chars (req), for_chars (req)", select_call["arguments"]
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe GraphQL::Schema::SchemaValidation do
4
+ let(:schema) { GraphQL::SCHEMA }
5
+
6
+ it 'runs' do
7
+ schema.validate
8
+ end
9
+
10
+ describe "when the exposes_class doesnt exist" do
11
+ before do
12
+ Nodes::PostNode.exposes("BogusPost")
13
+ end
14
+ after do
15
+ Nodes::PostNode.exposes("Post")
16
+ end
17
+
18
+ it 'raises an error' do
19
+ assert_raises(GraphQL::ExposesClassMissingError) { schema.validate }
20
+ end
21
+ end
22
+
23
+ describe "when there's a bad field type" do
24
+ before do
25
+ Nodes::PostNode.field.bogus_kind(:bogus_title)
26
+ end
27
+ after do
28
+ Nodes::PostNode.remove_field(:bogus_title)
29
+ end
30
+
31
+ it 'raises an error' do
32
+ assert_raises(GraphQL::NodeNotDefinedError) { schema.validate }
33
+ end
34
+ end
35
+
36
+ describe "when a field cant find a corresponding method" do
37
+ before do
38
+ Nodes::PostNode.field.string(:bogus_title)
39
+ end
40
+ after do
41
+ Nodes::PostNode.remove_field(:bogus_title)
42
+ end
43
+
44
+ it 'raises an error' do
45
+ assert_raises(GraphQL::FieldNotDefinedError) { schema.validate }
46
+ end
47
+ end
48
+ end
@@ -14,21 +14,26 @@ module Nodes
14
14
  end
15
15
  end
16
16
 
17
+
17
18
  class ApplicationConnection < GraphQL::Connection
18
- default_connection!
19
+ type :connection
20
+ call :first, -> (prev_items, first) { prev_items.first(first.to_i) }
21
+ call :after, -> (prev_items, after) { prev_items.select {|i| i.id > after.to_i } }
22
+
19
23
  field.number(:count)
20
24
  field.boolean(:any)
21
25
 
22
26
  def count
23
- items.count
27
+ target.count
24
28
  end
25
29
 
26
30
  def any
27
- items.any?
31
+ target.any?
28
32
  end
29
33
  end
30
34
 
31
35
  class CommentsConnection < ApplicationConnection
36
+ type :comments
32
37
  field.number :viewer_name_length
33
38
  field.number :average_rating
34
39
 
@@ -38,33 +43,15 @@ module Nodes
38
43
  end
39
44
 
40
45
  def average_rating
41
- total_rating = items.map(&:rating).inject(&:+).to_f
42
- total_rating / items.size
43
- end
44
- end
45
-
46
- class LetterSelectionField < GraphQL::Types::StringField
47
- call :from, -> (prev_value, chars) { prev_value[(chars.to_i)..-1] }
48
- call :for, -> (prev_value, chars) { prev_value[0, (chars.to_i)] }
49
- call :select, -> (prev_value, from_chars, for_chars) { prev_value[from_chars.to_i, for_chars.to_i] }
50
- def raw_value
51
- owner.content
46
+ total_rating = target.map(&:rating).inject(&:+).to_f
47
+ total_rating / target.size
52
48
  end
53
49
  end
54
50
 
55
- class ApplicationConnectionField < GraphQL::Types::ConnectionField
56
- type :connection
57
- call :first, -> (prev_items, first) { prev_items.first(first.to_i) }
58
- call :after, -> (prev_items, after) { prev_items.select {|i| i.id > after.to_i } }
59
- end
60
-
61
- class DateField < GraphQL::Types::ObjectField
51
+ class DateType < GraphQL::Node
52
+ exposes "Date"
62
53
  type :date
63
54
  call :minus_days, -> (prev_value, minus_days) { prev_value - minus_days.to_i }
64
- end
65
-
66
- class DateNode < GraphQL::Node
67
- exposes "Date"
68
55
  field.number(:year)
69
56
  field.number(:month)
70
57
  end
@@ -77,7 +64,7 @@ module Nodes
77
64
  field.string(:title)
78
65
  field.letter_selection(:content)
79
66
  field.number(:length)
80
- field.connection(:comments)
67
+ field.comments(:comments)
81
68
  field.date(:published_at)
82
69
  field.connection(:likes)
83
70
 
@@ -89,9 +76,11 @@ module Nodes
89
76
  class CommentNode < ApplicationNode
90
77
  node_for Comment
91
78
  exposes "Comment"
92
- field.string :content
79
+ field.string(:content)
93
80
  field.letter_selection(:letters)
94
- field.object(:post)
81
+ field.post(:post)
82
+
83
+ def letters; content; end
95
84
  end
96
85
 
97
86
  # wraps a Like, for testing explicit name
@@ -108,12 +97,26 @@ module Nodes
108
97
  class ContextNode < GraphQL::Node
109
98
  exposes "Context"
110
99
  field.string(:person_name)
100
+ field.boolean(:present)
111
101
 
112
102
  def cursor
113
103
  "context"
114
104
  end
105
+
106
+ def present
107
+ true
108
+ end
115
109
  end
116
110
 
111
+ class LetterSelectionType < GraphQL::Node
112
+ type :letter_selection
113
+ call :from, -> (prev_value, chars) { prev_value[(chars.to_i)..-1] }
114
+ call :for, -> (prev_value, chars) { prev_value[0, (chars.to_i)] }
115
+ call :select, -> (prev_value, from_chars, for_chars) { prev_value[from_chars.to_i, for_chars.to_i] }
116
+ def as_result
117
+ apply_calls(target)
118
+ end
119
+ end
117
120
 
118
121
  class FindCall < GraphQL::RootCall
119
122
  abstract!
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-30 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4'
27
27
  - !ruby/object:Gem::Dependency
@@ -56,112 +56,112 @@ dependencies:
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.10'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.11'
75
+ version: '2.12'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.11'
82
+ version: '2.12'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: guard-bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '2.1'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '2.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: guard-minitest
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.1'
103
+ version: '2.4'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.1'
110
+ version: '2.4'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: minitest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '5.5'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '5.5'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: minitest-focus
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '1.1'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.1'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: minitest-reporters
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: '1.0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '1.0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: '10.4'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '10.4'
167
167
  description: A GraphQL adapter for Ruby
@@ -177,44 +177,44 @@ files:
177
177
  - lib/graphql/connection.rb
178
178
  - lib/graphql/field.rb
179
179
  - lib/graphql/field_definer.rb
180
- - lib/graphql/introspection/call_node.rb
180
+ - lib/graphql/introspection/call_type.rb
181
181
  - lib/graphql/introspection/connection.rb
182
- - lib/graphql/introspection/field_node.rb
182
+ - lib/graphql/introspection/field_type.rb
183
183
  - lib/graphql/introspection/root_call_argument_node.rb
184
- - lib/graphql/introspection/root_call_node.rb
184
+ - lib/graphql/introspection/root_call_type.rb
185
185
  - lib/graphql/introspection/schema_call.rb
186
- - lib/graphql/introspection/schema_node.rb
186
+ - lib/graphql/introspection/schema_type.rb
187
187
  - lib/graphql/introspection/type_call.rb
188
- - lib/graphql/introspection/type_node.rb
188
+ - lib/graphql/introspection/type_type.rb
189
189
  - lib/graphql/node.rb
190
- - lib/graphql/parser.rb
190
+ - lib/graphql/parser/parser.rb
191
+ - lib/graphql/parser/transform.rb
191
192
  - lib/graphql/query.rb
192
193
  - lib/graphql/root_call.rb
193
194
  - lib/graphql/root_call_argument.rb
194
195
  - lib/graphql/root_call_argument_definer.rb
195
- - lib/graphql/schema.rb
196
+ - lib/graphql/schema/all.rb
197
+ - lib/graphql/schema/schema.rb
198
+ - lib/graphql/schema/schema_validation.rb
196
199
  - lib/graphql/syntax/call.rb
197
200
  - lib/graphql/syntax/field.rb
201
+ - lib/graphql/syntax/fragment.rb
198
202
  - lib/graphql/syntax/node.rb
199
203
  - lib/graphql/syntax/query.rb
200
204
  - lib/graphql/syntax/variable.rb
201
- - lib/graphql/transform.rb
202
- - lib/graphql/types/boolean_field.rb
203
- - lib/graphql/types/connection_field.rb
204
- - lib/graphql/types/cursor_field.rb
205
- - lib/graphql/types/number_field.rb
206
- - lib/graphql/types/object_field.rb
207
- - lib/graphql/types/string_field.rb
208
- - lib/graphql/types/type_field.rb
205
+ - lib/graphql/types/boolean_type.rb
206
+ - lib/graphql/types/number_type.rb
207
+ - lib/graphql/types/object_type.rb
208
+ - lib/graphql/types/string_type.rb
209
209
  - lib/graphql/version.rb
210
210
  - readme.md
211
- - spec/graphql/field_spec.rb
212
211
  - spec/graphql/node_spec.rb
213
- - spec/graphql/parser_spec.rb
212
+ - spec/graphql/parser/parser_spec.rb
213
+ - spec/graphql/parser/transform_spec.rb
214
214
  - spec/graphql/query_spec.rb
215
215
  - spec/graphql/root_call_spec.rb
216
- - spec/graphql/schema_spec.rb
217
- - spec/graphql/transform_spec.rb
216
+ - spec/graphql/schema/schema_spec.rb
217
+ - spec/graphql/schema/schema_validation_spec.rb
218
218
  - spec/spec_helper.rb
219
219
  - spec/support/dummy_app.rb
220
220
  - spec/support/nodes.rb
@@ -243,13 +243,13 @@ signing_key:
243
243
  specification_version: 4
244
244
  summary: GraphQL
245
245
  test_files:
246
- - spec/graphql/field_spec.rb
247
246
  - spec/graphql/node_spec.rb
248
- - spec/graphql/parser_spec.rb
247
+ - spec/graphql/parser/parser_spec.rb
248
+ - spec/graphql/parser/transform_spec.rb
249
249
  - spec/graphql/query_spec.rb
250
250
  - spec/graphql/root_call_spec.rb
251
- - spec/graphql/schema_spec.rb
252
- - spec/graphql/transform_spec.rb
251
+ - spec/graphql/schema/schema_spec.rb
252
+ - spec/graphql/schema/schema_validation_spec.rb
253
253
  - spec/spec_helper.rb
254
254
  - spec/support/dummy_app.rb
255
255
  - spec/support/nodes.rb