graphql-libgraphqlparser 0.0.1 → 0.1.2
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.
- checksums.yaml +4 -4
- data/.travis.yml +4 -5
- data/README.md +3 -9
- data/Rakefile +1 -1
- data/graphql-libgraphqlparser.gemspec +2 -1
- data/lib/graphql/libgraphqlparser/monkey_patches/abstract_node.rb +1 -92
- data/lib/graphql/libgraphqlparser/version.rb +1 -1
- data/lib/graphql/libgraphqlparser.rb +1 -1
- data/test/graphql/libgraphqlparser_test.rb +4 -2
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66cc33f8789ca13aa84da1d2931732841943a607
|
4
|
+
data.tar.gz: c23e932dca62dba848d109d704cc5fdc355e69cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e426fed71b59bd245b0044f2b69e6d32826a0c5ceca1058c5128d8dda90a87ff8957cbbf8401e0b61d52eecaf026003d84b554cc5636b84e04df49d68875f448
|
7
|
+
data.tar.gz: d2bbeff1006b1adc1146517e0779d96df4890cbb0ba6185382849de2f75b0201a58d74db2739958ffea0084eaaf09bcdff4f0b8ada22ccfa93931a98509c33bd
|
data/.travis.yml
CHANGED
@@ -2,7 +2,6 @@ language: ruby
|
|
2
2
|
cache: bundler
|
3
3
|
sudo: required
|
4
4
|
rvm:
|
5
|
-
- 2.1
|
6
5
|
- 2.2
|
7
6
|
addons:
|
8
7
|
apt:
|
@@ -16,10 +15,10 @@ before_install:
|
|
16
15
|
- sudo unlink /usr/bin/g++ && sudo ln -s /usr/bin/g++-5 /usr/bin/g++
|
17
16
|
- g++ --version
|
18
17
|
- sudo apt-get install bison
|
19
|
-
- wget https://github.com/graphql/libgraphqlparser/archive/v0.4.
|
20
|
-
- tar -xzvf v0.4.
|
21
|
-
- cd libgraphqlparser-0.4.
|
18
|
+
- wget https://github.com/graphql/libgraphqlparser/archive/v0.4.1.tar.gz
|
19
|
+
- tar -xzvf v0.4.1.tar.gz
|
20
|
+
- cd libgraphqlparser-0.4.1/ && sudo cmake . && sudo make && sudo make install
|
22
21
|
- gem update --system
|
23
22
|
- gem install bundler
|
24
23
|
script:
|
25
|
-
- bundle exec rake
|
24
|
+
- bundle exec rake --trace
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# graphql-libgraphqlparser [](https://travis-ci.org/rmosolgo/graphql-libgraphqlparser-ruby)
|
1
|
+
# graphql-libgraphqlparser [](https://travis-ci.org/rmosolgo/graphql-libgraphqlparser-ruby) [](https://badge.fury.io/rb/graphql-libgraphqlparser)
|
2
2
|
|
3
3
|
Make [`graphql`](https://github.com/rmosolgo/graphql-ruby) faster with [`libgraphqlparser`](https://github.com/graphql/libgraphqlparser). Ruby bindings to a C-level GraphQL parser.
|
4
4
|
|
@@ -23,8 +23,8 @@ C 0.010000 0.000000 0.010000 ( 0.008584)
|
|
23
23
|
|
24
24
|
This gem depends on [libgraphqlparser](https://github.com/graphql/libgraphqlparser). You can install it a few ways:
|
25
25
|
|
26
|
-
-
|
27
|
-
-
|
26
|
+
- Homebrew: `brew install libgraphqlparser`
|
27
|
+
- From Source:
|
28
28
|
|
29
29
|
```
|
30
30
|
wget https://github.com/graphql/libgraphqlparser/archive/v0.4.0.tar.gz
|
@@ -43,9 +43,3 @@ When you `require` this gem, it overrides `GraphQL.parse`:
|
|
43
43
|
```ruby
|
44
44
|
require "graphql/libgraphqlparser"
|
45
45
|
```
|
46
|
-
|
47
|
-
## Todo
|
48
|
-
|
49
|
-
- Get directives from OperationDefinitions
|
50
|
-
- AbstractNode overrides are full of tension. Resolve that tension with GraphQL main.
|
51
|
-
- Node `#type` is sometimes a String, sometimes a Node. That should always be the same.
|
data/Rakefile
CHANGED
@@ -11,12 +11,13 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "Use Libgraphqlparser to parse queries for the GraphQL gem"
|
12
12
|
spec.license = "minitest"
|
13
13
|
|
14
|
+
spec.extensions = ['ext/libgraphqlparser/extconf.rb']
|
14
15
|
spec.files = `git ls-files -z`.split("\x0")
|
15
16
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
18
|
spec.require_paths = ['lib']
|
18
19
|
|
19
|
-
spec.add_runtime_dependency 'graphql', '~> 0.
|
20
|
+
spec.add_runtime_dependency 'graphql', '~> 0.11.0'
|
20
21
|
|
21
22
|
spec.add_development_dependency 'bundler', '~> 1.0'
|
22
23
|
spec.add_development_dependency "guard", "~> 2.12"
|
@@ -1,40 +1,6 @@
|
|
1
1
|
module GraphQL
|
2
2
|
module Language
|
3
3
|
module Nodes
|
4
|
-
class AbstractNode
|
5
|
-
alias :old_initialize :initialize
|
6
|
-
# Allow initialize with no args
|
7
|
-
def initialize(*args)
|
8
|
-
if args.any?
|
9
|
-
old_initialize(*args)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def position
|
14
|
-
[line, col]
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Document = AbstractNode.create(:parts)
|
19
|
-
class Document
|
20
|
-
def definitions
|
21
|
-
@parts ||= []
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
# OperationDefinition = AbstractNode.create(:operation_type, :name, :variables, :directives, :selections)
|
26
|
-
class OperationDefinition
|
27
|
-
def variables
|
28
|
-
@variables ||= []
|
29
|
-
end
|
30
|
-
|
31
|
-
def selections
|
32
|
-
@selections ||= []
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# Variable = AbstractNode.create(:name, :type, :default_value)
|
37
|
-
VariableDefinition = Variable
|
38
4
|
class VariableDefinition
|
39
5
|
# Make it behave like an Argument
|
40
6
|
def value=(new_value)
|
@@ -42,57 +8,6 @@ module GraphQL
|
|
42
8
|
end
|
43
9
|
end
|
44
10
|
|
45
|
-
# VariableIdentifier = AbstractNode.create(:name)
|
46
|
-
|
47
|
-
# FragmentDefinition = AbstractNode.create(:name, :type, :directives, :selections)
|
48
|
-
class FragmentDefinition
|
49
|
-
def selections
|
50
|
-
@selections ||= []
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# Field = AbstractNode.create(:name, :alias, :arguments, :directives, :selections)
|
55
|
-
class Field
|
56
|
-
def selections
|
57
|
-
@selections ||= []
|
58
|
-
end
|
59
|
-
|
60
|
-
def directives
|
61
|
-
@directives ||= []
|
62
|
-
end
|
63
|
-
|
64
|
-
def arguments
|
65
|
-
@arguments ||= []
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# Directive = AbstractNode.create(:name, :arguments)
|
70
|
-
class Directive
|
71
|
-
def arguments
|
72
|
-
@arguments ||= []
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# FragmentSpread = AbstractNode.create(:name, :directives)
|
77
|
-
class FragmentSpread
|
78
|
-
def directives
|
79
|
-
@directives ||= []
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
# InlineFragment = AbstractNode.create(:type, :directives, :selections)
|
84
|
-
class InlineFragment
|
85
|
-
def directives
|
86
|
-
@directives ||= []
|
87
|
-
end
|
88
|
-
def selections
|
89
|
-
@selections ||= []
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# ListType = AbstractNode.create(:of_type)
|
94
|
-
# NonNullType = AbstractNode.create(:of_type)
|
95
|
-
# TypeName = AbstractNode.create(:name)
|
96
11
|
class ListType
|
97
12
|
def type=(inner_type)
|
98
13
|
self.of_type = inner_type
|
@@ -106,13 +21,7 @@ module GraphQL
|
|
106
21
|
def type; self.of_type; end
|
107
22
|
end
|
108
23
|
|
109
|
-
|
110
|
-
# Enum = AbstractNode.create(:name)
|
111
|
-
class InputObject
|
112
|
-
def arguments
|
113
|
-
@pairs ||= []
|
114
|
-
end
|
115
|
-
end
|
24
|
+
|
116
25
|
|
117
26
|
class ArrayLiteral < AbstractNode
|
118
27
|
attr_reader :values
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'graphql'
|
2
2
|
require 'graphql/libgraphqlparser/builder'
|
3
|
-
require 'graphql/libgraphqlparser/libgraphqlparser'
|
4
3
|
require 'graphql/libgraphqlparser/monkey_patches/abstract_node'
|
5
4
|
require 'graphql/libgraphqlparser/version'
|
5
|
+
require_relative '../libgraphqlparser'
|
6
6
|
|
7
7
|
module GraphQL
|
8
8
|
module Libgraphqlparser
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
describe GraphQL::Libgraphqlparser do
|
4
4
|
let(:document) { GraphQL::Libgraphqlparser.parse(query_string) }
|
5
5
|
let(:query_string) {%|
|
6
|
-
query getStuff($someVar: Int = 1, $anotherVar: [String!] ) {
|
6
|
+
query getStuff($someVar: Int = 1, $anotherVar: [String!] ) @skip(if: false) {
|
7
7
|
myField: someField(someArg: $someVar, ok: 1.4) @skip(if: $anotherVar) @thing(or: "Whatever")
|
8
8
|
|
9
9
|
anotherField(someArg: [1,2,3]) {
|
@@ -18,7 +18,7 @@ describe GraphQL::Libgraphqlparser do
|
|
18
18
|
|
19
19
|
}
|
20
20
|
|
21
|
-
fragment moreNestedFields on NestedType {
|
21
|
+
fragment moreNestedFields on NestedType @or(something: "ok") {
|
22
22
|
anotherNestedField
|
23
23
|
}
|
24
24
|
|}
|
@@ -43,6 +43,7 @@ describe GraphQL::Libgraphqlparser do
|
|
43
43
|
assert_equal "query", query.operation_type
|
44
44
|
assert_equal 2, query.variables.length
|
45
45
|
assert_equal 3, query.selections.length
|
46
|
+
assert_equal 1, query.directives.length
|
46
47
|
assert_equal [2, 5], [query.line, query.col]
|
47
48
|
end
|
48
49
|
|
@@ -51,6 +52,7 @@ describe GraphQL::Libgraphqlparser do
|
|
51
52
|
assert_equal "moreNestedFields", fragment_def.name
|
52
53
|
assert_equal 1, fragment_def.selections.length
|
53
54
|
assert_equal "NestedType", fragment_def.type
|
55
|
+
assert_equal 1, fragment_def.directives.length
|
54
56
|
assert_equal [17, 5], fragment_def.position
|
55
57
|
end
|
56
58
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-libgraphqlparser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.11.0
|
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
|
-
version: 0.
|
26
|
+
version: 0.11.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,7 +154,8 @@ description:
|
|
154
154
|
email:
|
155
155
|
- rdmosolgo@gmail.com
|
156
156
|
executables: []
|
157
|
-
extensions:
|
157
|
+
extensions:
|
158
|
+
- ext/libgraphqlparser/extconf.rb
|
158
159
|
extra_rdoc_files: []
|
159
160
|
files:
|
160
161
|
- ".gitignore"
|