graphql 1.6.5 → 1.6.6
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/lib/graphql/enum_type.rb +1 -1
- data/lib/graphql/rake_task.rb +2 -0
- data/lib/graphql/rake_task/validate.rb +60 -0
- data/lib/graphql/relay/relation_connection.rb +6 -1
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +7 -1
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/enum_type_spec.rb +5 -1
- data/spec/graphql/relay/relation_connection_spec.rb +8 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0462bdcc9e6c3950083b012a0006d25f8013bb0
|
4
|
+
data.tar.gz: 0a4e0f3fa8a80fea50c06aaee8b13936d2d08215
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cba4584a349b14efdc077ffcaed1b94f041e0389f5782ff1bfd664e87cbbde4e180d554580f5920b854e27a0d024d18660077bd7ca2f6b9ea509e07b5605e7d
|
7
|
+
data.tar.gz: 4e30b92e358666030f691ab91f019001b42fc3fdf34acfaa9fa00d93a33ef4a2fb61a8358bb5ce88ce05e402efde0ac34206a219db1995b3c67c87bd666b86bd
|
data/lib/graphql/enum_type.rb
CHANGED
@@ -94,7 +94,7 @@ module GraphQL
|
|
94
94
|
# @param enum_value [EnumValue] A value to add to this type's set of values
|
95
95
|
def add_value(enum_value)
|
96
96
|
if @values_by_name.key?(enum_value.name)
|
97
|
-
raise "Enum value names must be unique. `#{enum_value.name}` already exists
|
97
|
+
raise "Enum value names must be unique. Value `#{enum_value.name}` already exists on Enum `#{name}`."
|
98
98
|
end
|
99
99
|
|
100
100
|
@values_by_name[enum_value.name] = enum_value
|
data/lib/graphql/rake_task.rb
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module GraphQL
|
4
|
+
class RakeTask
|
5
|
+
extend Rake::DSL
|
6
|
+
|
7
|
+
desc "Get the checksum of a graphql-pro version and compare it to published versions on GitHub and graphql-ruby.org"
|
8
|
+
task "graphql:pro:validate", [:gem_version] do |t, args|
|
9
|
+
version = args[:gem_version]
|
10
|
+
check = "\e[32m✓\e[0m"
|
11
|
+
ex = "\e[31m✘\e[0m"
|
12
|
+
puts "Validating graphql-pro v#{version}"
|
13
|
+
puts " - Checking for graphql-pro credentials..."
|
14
|
+
|
15
|
+
creds = `bundle config gems.graphql.pro`[/[a-z0-9]{11}:[a-z0-9]{11}/]
|
16
|
+
if creds.nil?
|
17
|
+
puts " #{ex} failed, please set with `bundle config gems.graphql.pro $MY_CREDENTIALS`"
|
18
|
+
exit(1)
|
19
|
+
else
|
20
|
+
puts " #{check} found"
|
21
|
+
end
|
22
|
+
|
23
|
+
puts " - Fetching the gem..."
|
24
|
+
fetch_result = `gem fetch graphql-pro -v #{version} --source https://#{creds}@gems.graphql.pro`
|
25
|
+
if fetch_result.empty?
|
26
|
+
puts " #{ex} failed to fetch v#{version}"
|
27
|
+
exit(1)
|
28
|
+
else
|
29
|
+
puts " #{check} fetched"
|
30
|
+
end
|
31
|
+
|
32
|
+
puts " - Validating digest..."
|
33
|
+
require "digest/sha2"
|
34
|
+
gem_digest = Digest::SHA512.new.hexdigest(File.read("graphql-pro-#{version}.gem"))
|
35
|
+
require "net/http"
|
36
|
+
github_uri = URI("https://raw.githubusercontent.com/rmosolgo/graphql-ruby/master/guides/pro/checksums/graphql-pro-#{version}.txt")
|
37
|
+
# Remove final newline from .txt file
|
38
|
+
github_digest = Net::HTTP.get(github_uri).chomp
|
39
|
+
|
40
|
+
docs_uri = URI("https://raw.githubusercontent.com/rmosolgo/graphql-ruby/master/guides/pro/checksums/graphql-pro-#{version}.txt")
|
41
|
+
docs_digest = Net::HTTP.get(docs_uri).chomp
|
42
|
+
|
43
|
+
if docs_digest == gem_digest && github_digest == gem_digest
|
44
|
+
puts " #{check} validated from GitHub"
|
45
|
+
puts " #{check} validated from graphql-ruby.org"
|
46
|
+
else
|
47
|
+
puts " #{ex} SHA mismatch:"
|
48
|
+
puts " Downloaded: #{gem_digest}"
|
49
|
+
puts " GitHub: #{github_digest}"
|
50
|
+
puts " graphql-ruby.org: #{docs_digest}"
|
51
|
+
puts ""
|
52
|
+
puts " This download of graphql-pro is invalid, please open an issue:"
|
53
|
+
puts " https://github.com/rmosolgo/graphql-ruby/issues/new?title=graphql-pro%20digest%20mismatch%20(#{version})"
|
54
|
+
exit(1)
|
55
|
+
end
|
56
|
+
|
57
|
+
puts "\e[32m✔\e[0m graphql-pro #{version} validated successfully!"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -100,7 +100,12 @@ module GraphQL
|
|
100
100
|
|
101
101
|
# If a relation contains a `.group` clause, a `.count` will return a Hash.
|
102
102
|
def relation_count(relation)
|
103
|
-
count_or_hash = relation
|
103
|
+
count_or_hash = case relation
|
104
|
+
when ActiveRecord::Relation
|
105
|
+
relation.count(:all)
|
106
|
+
else # eg, Sequel::Dataset, don't mess up others
|
107
|
+
relation.count
|
108
|
+
end
|
104
109
|
count_or_hash.is_a?(Integer) ? count_or_hash : count_or_hash.length
|
105
110
|
end
|
106
111
|
|
@@ -12,7 +12,13 @@ module GraphQL
|
|
12
12
|
}
|
13
13
|
|
14
14
|
context.visitor[GraphQL::Language::Nodes::Argument] << ->(node, parent) {
|
15
|
-
node_values =
|
15
|
+
node_values = if node.value.is_a?(Array)
|
16
|
+
node.value
|
17
|
+
else
|
18
|
+
[node.value]
|
19
|
+
end
|
20
|
+
node_values = node_values.select { |value| value.is_a? GraphQL::Language::Nodes::VariableIdentifier }
|
21
|
+
|
16
22
|
return if node_values.none?
|
17
23
|
|
18
24
|
arguments = nil
|
data/lib/graphql/version.rb
CHANGED
@@ -113,9 +113,13 @@ describe GraphQL::EnumType do
|
|
113
113
|
|
114
114
|
describe "validates enum value name uniqueness" do
|
115
115
|
it "raises an exception when adding a duplicate enum value name" do
|
116
|
-
|
116
|
+
expected_message = "Enum value names must be unique. Value `COW` already exists on Enum `DairyAnimal`."
|
117
|
+
|
118
|
+
exception = assert_raises do
|
117
119
|
enum.add_value(GraphQL::EnumType::EnumValue.define(name: "COW"))
|
118
120
|
end
|
121
|
+
|
122
|
+
assert_equal(expected_message, exception.message)
|
119
123
|
end
|
120
124
|
end
|
121
125
|
end
|
@@ -481,6 +481,14 @@ describe GraphQL::Relay::RelationConnection do
|
|
481
481
|
end
|
482
482
|
|
483
483
|
describe "for an ActiveRecord::Relation" do
|
484
|
+
describe "#has_next_page" do
|
485
|
+
it "handles joined, aliased relations" do
|
486
|
+
relation = StarWars::Base.select("id AS crazy_id")
|
487
|
+
connection = GraphQL::Relay::RelationConnection.new(relation, { first: 1 })
|
488
|
+
assert connection.has_next_page
|
489
|
+
end
|
490
|
+
end
|
491
|
+
|
484
492
|
describe "#edge_nodes" do
|
485
493
|
it "returns the nodes for the current page" do
|
486
494
|
# Offset
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -440,6 +440,7 @@ files:
|
|
440
440
|
- lib/graphql/query/variable_validation_error.rb
|
441
441
|
- lib/graphql/query/variables.rb
|
442
442
|
- lib/graphql/rake_task.rb
|
443
|
+
- lib/graphql/rake_task/validate.rb
|
443
444
|
- lib/graphql/relay.rb
|
444
445
|
- lib/graphql/relay/array_connection.rb
|
445
446
|
- lib/graphql/relay/base_connection.rb
|