graphql 0.0.3 → 0.0.4

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 (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