graphql 1.13.19 → 1.13.24
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/language/nodes.rb +3 -0
- data/lib/graphql/schema/argument.rb +3 -5
- data/lib/graphql/schema/build_from_definition.rb +8 -7
- data/lib/graphql/schema/enum_value.rb +1 -1
- data/lib/graphql/schema/field.rb +1 -0
- data/lib/graphql/schema/input_object.rb +8 -6
- data/lib/graphql/schema/interface.rb +5 -1
- data/lib/graphql/schema.rb +1 -1
- data/lib/graphql/tracing/data_dog_tracing.rb +8 -21
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +1 -0
- metadata +39 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6d252cf12d6c3f2ccd6f20a139e0c2f3c460a6c25b8c1cb663e3cacf5e12855
|
4
|
+
data.tar.gz: 0d6eda9b7e23c0c58677b44ed1de968c6d60acd4a5f5a49883935ea6e326d691
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 302f1e1fe6e7a31ede6c3eb4e3f63f3a2818b47286e4b2482e5109b47c8fcd1e229815c964fdd11ceed8084db4ccac9578f8374e53b2080bbb8cc03473a50ffb
|
7
|
+
data.tar.gz: 85daddd620840df2718f2730b475f3c2f9df7b318145044c7fb1aada43c4dee1a00c503440953d8711e58265a7f6eb768f58ac8d1af60fe6e50bf7078d7c86b5
|
@@ -133,6 +133,8 @@ module GraphQL
|
|
133
133
|
end
|
134
134
|
|
135
135
|
class << self
|
136
|
+
# rubocop:disable Development/NoEvalCop This eval takes static inputs at load-time
|
137
|
+
|
136
138
|
# Add a default `#visit_method` and `#children_method_name` using the class name
|
137
139
|
def inherited(child_class)
|
138
140
|
super
|
@@ -276,6 +278,7 @@ module GraphQL
|
|
276
278
|
RUBY
|
277
279
|
end
|
278
280
|
end
|
281
|
+
# rubocop:enable Development/NoEvalCop
|
279
282
|
end
|
280
283
|
end
|
281
284
|
|
@@ -52,6 +52,7 @@ module GraphQL
|
|
52
52
|
def initialize(arg_name = nil, type_expr = nil, desc = nil, required: true, type: nil, name: nil, loads: nil, description: nil, ast_node: nil, default_value: NO_DEFAULT, as: nil, from_resolver: false, camelize: true, prepare: nil, method_access: true, owner:, validates: nil, directives: nil, deprecation_reason: nil, replace_null_with_default: false, &definition_block)
|
53
53
|
arg_name ||= name
|
54
54
|
@name = -(camelize ? Member::BuildType.camelize(arg_name.to_s) : arg_name.to_s)
|
55
|
+
NameValidator.validate!(@name)
|
55
56
|
@type_expr = type_expr || type
|
56
57
|
@description = desc || description
|
57
58
|
@null = required != true
|
@@ -85,11 +86,8 @@ module GraphQL
|
|
85
86
|
end
|
86
87
|
|
87
88
|
if definition_block
|
88
|
-
|
89
|
-
|
90
|
-
else
|
91
|
-
instance_eval(&definition_block)
|
92
|
-
end
|
89
|
+
# `self` will still be self, it will also be the first argument to the block:
|
90
|
+
instance_exec(self, &definition_block)
|
93
91
|
end
|
94
92
|
end
|
95
93
|
|
@@ -427,17 +427,18 @@ module GraphQL
|
|
427
427
|
|
428
428
|
# Don't do this for interfaces
|
429
429
|
if default_resolve
|
430
|
-
owner
|
431
|
-
# frozen_string_literal: true
|
432
|
-
def #{resolve_method_name}(**args)
|
433
|
-
field_instance = self.class.get_field("#{field_definition.name}")
|
434
|
-
context.schema.definition_default_resolve.call(self.class, field_instance, object, args, context)
|
435
|
-
end
|
436
|
-
RUBY
|
430
|
+
define_field_resolve_method(owner, resolve_method_name, field_definition.name)
|
437
431
|
end
|
438
432
|
end
|
439
433
|
end
|
440
434
|
|
435
|
+
def define_field_resolve_method(owner, method_name, field_name)
|
436
|
+
owner.define_method(method_name) { |**args|
|
437
|
+
field_instance = self.class.get_field(field_name)
|
438
|
+
context.schema.definition_default_resolve.call(self.class, field_instance, object, args, context)
|
439
|
+
}
|
440
|
+
end
|
441
|
+
|
441
442
|
def build_resolve_type(lookup_hash, directives, missing_type_handler)
|
442
443
|
resolve_type_proc = nil
|
443
444
|
resolve_type_proc = ->(ast_node) {
|
data/lib/graphql/schema/field.rb
CHANGED
@@ -232,6 +232,7 @@ module GraphQL
|
|
232
232
|
|
233
233
|
@underscored_name = -Member::BuildType.underscore(name_s)
|
234
234
|
@name = -(camelize ? Member::BuildType.camelize(name_s) : name_s)
|
235
|
+
NameValidator.validate!(@name)
|
235
236
|
@description = description
|
236
237
|
if field.is_a?(GraphQL::Schema::Field)
|
237
238
|
raise ArgumentError, "Instead of passing a field as `field:`, use `add_field(field)` to add an already-defined field."
|
@@ -138,12 +138,7 @@ module GraphQL
|
|
138
138
|
def argument(*args, **kwargs, &block)
|
139
139
|
argument_defn = super(*args, **kwargs, &block)
|
140
140
|
# Add a method access
|
141
|
-
|
142
|
-
class_eval <<-RUBY, __FILE__, __LINE__
|
143
|
-
def #{method_name}
|
144
|
-
self[#{method_name.inspect}]
|
145
|
-
end
|
146
|
-
RUBY
|
141
|
+
define_accessor_method(argument_defn.keyword)
|
147
142
|
argument_defn
|
148
143
|
end
|
149
144
|
|
@@ -253,6 +248,13 @@ module GraphQL
|
|
253
248
|
|
254
249
|
result
|
255
250
|
end
|
251
|
+
|
252
|
+
private
|
253
|
+
|
254
|
+
def define_accessor_method(method_name)
|
255
|
+
define_method(method_name) { self[method_name] }
|
256
|
+
alias_method(method_name, method_name)
|
257
|
+
end
|
256
258
|
end
|
257
259
|
|
258
260
|
private
|
@@ -81,7 +81,11 @@ module GraphQL
|
|
81
81
|
end
|
82
82
|
elsif child_class < GraphQL::Schema::Object
|
83
83
|
# This is being included into an object type, make sure it's using `implements(...)`
|
84
|
-
backtrace_line =
|
84
|
+
backtrace_line = caller_locations(0, 10).find do |location|
|
85
|
+
location.base_label == "implements" &&
|
86
|
+
location.path.end_with?("schema/member/has_interfaces.rb")
|
87
|
+
end
|
88
|
+
|
85
89
|
if !backtrace_line
|
86
90
|
raise "Attach interfaces using `implements(#{self})`, not `include(#{self})`"
|
87
91
|
end
|
data/lib/graphql/schema.rb
CHANGED
@@ -502,7 +502,7 @@ module GraphQL
|
|
502
502
|
# @param field_name [String]
|
503
503
|
# @return [GraphQL::Field, nil] The field named `field_name` on `parent_type`
|
504
504
|
# @see [GraphQL::Schema::Warden] Restricted access to members of a schema
|
505
|
-
def get_field(parent_type, field_name)
|
505
|
+
def get_field(parent_type, field_name, _context = GraphQL::Query::NullContext)
|
506
506
|
with_definition_error_check do
|
507
507
|
parent_type_name = case parent_type
|
508
508
|
when GraphQL::BaseType, Class, Module
|
@@ -15,12 +15,9 @@ module GraphQL
|
|
15
15
|
}
|
16
16
|
|
17
17
|
def platform_trace(platform_key, key, data)
|
18
|
-
tracer.trace(platform_key, service:
|
19
|
-
span.
|
20
|
-
|
21
|
-
span.set_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT, 'graphql')
|
22
|
-
span.set_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION, key)
|
23
|
-
end
|
18
|
+
tracer.trace(platform_key, service: options[:service], type: 'custom') do |span|
|
19
|
+
span.set_tag('component', 'graphql')
|
20
|
+
span.set_tag('operation', key)
|
24
21
|
|
25
22
|
if key == 'execute_multiplex'
|
26
23
|
operations = data[:multiplex].queries.map(&:selected_operation_name).join(', ')
|
@@ -33,10 +30,8 @@ module GraphQL
|
|
33
30
|
end
|
34
31
|
span.resource = resource if resource
|
35
32
|
|
36
|
-
#
|
37
|
-
if analytics_enabled?
|
38
|
-
Datadog::Contrib::Analytics.set_sample_rate(span, analytics_sample_rate)
|
39
|
-
end
|
33
|
+
# [Deprecated] will be removed in the future
|
34
|
+
span.set_metric('_dd1.sr.eausr', analytics_sample_rate) if analytics_enabled?
|
40
35
|
end
|
41
36
|
|
42
37
|
if key == 'execute_query'
|
@@ -51,10 +46,6 @@ module GraphQL
|
|
51
46
|
end
|
52
47
|
end
|
53
48
|
|
54
|
-
def service_name
|
55
|
-
options.fetch(:service, 'ruby-graphql')
|
56
|
-
end
|
57
|
-
|
58
49
|
# Implement this method in a subclass to apply custom tags to datadog spans
|
59
50
|
# @param key [String] The event being traced
|
60
51
|
# @param data [Hash] The runtime data for this event (@see GraphQL::Tracing for keys for each event)
|
@@ -65,17 +56,13 @@ module GraphQL
|
|
65
56
|
def tracer
|
66
57
|
default_tracer = defined?(Datadog::Tracing) ? Datadog::Tracing : Datadog.tracer
|
67
58
|
|
59
|
+
# [Deprecated] options[:tracer] will be removed in the future
|
68
60
|
options.fetch(:tracer, default_tracer)
|
69
61
|
end
|
70
62
|
|
71
|
-
def analytics_available?
|
72
|
-
defined?(Datadog::Contrib::Analytics) \
|
73
|
-
&& Datadog::Contrib::Analytics.respond_to?(:enabled?) \
|
74
|
-
&& Datadog::Contrib::Analytics.respond_to?(:set_sample_rate)
|
75
|
-
end
|
76
|
-
|
77
63
|
def analytics_enabled?
|
78
|
-
|
64
|
+
# [Deprecated] options[:analytics_enabled] will be removed in the future
|
65
|
+
options.fetch(:analytics_enabled, false)
|
79
66
|
end
|
80
67
|
|
81
68
|
def analytics_sample_rate
|
data/lib/graphql/version.rb
CHANGED
data/lib/graphql.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,28 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.13.
|
4
|
+
version: 1.13.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-03-12 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: base64
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '0'
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '0'
|
13
26
|
- !ruby/object:Gem::Dependency
|
14
27
|
name: benchmark-ips
|
15
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,72 +69,72 @@ dependencies:
|
|
56
69
|
name: minitest
|
57
70
|
requirement: !ruby/object:Gem::Requirement
|
58
71
|
requirements:
|
59
|
-
- - "
|
72
|
+
- - ">="
|
60
73
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
74
|
+
version: '0'
|
62
75
|
type: :development
|
63
76
|
prerelease: false
|
64
77
|
version_requirements: !ruby/object:Gem::Requirement
|
65
78
|
requirements:
|
66
|
-
- - "
|
79
|
+
- - ">="
|
67
80
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
81
|
+
version: '0'
|
69
82
|
- !ruby/object:Gem::Dependency
|
70
83
|
name: minitest-focus
|
71
84
|
requirement: !ruby/object:Gem::Requirement
|
72
85
|
requirements:
|
73
|
-
- - "
|
86
|
+
- - ">="
|
74
87
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
88
|
+
version: '0'
|
76
89
|
type: :development
|
77
90
|
prerelease: false
|
78
91
|
version_requirements: !ruby/object:Gem::Requirement
|
79
92
|
requirements:
|
80
|
-
- - "
|
93
|
+
- - ">="
|
81
94
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
95
|
+
version: '0'
|
83
96
|
- !ruby/object:Gem::Dependency
|
84
97
|
name: minitest-reporters
|
85
98
|
requirement: !ruby/object:Gem::Requirement
|
86
99
|
requirements:
|
87
|
-
- - "
|
100
|
+
- - ">="
|
88
101
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
102
|
+
version: '0'
|
90
103
|
type: :development
|
91
104
|
prerelease: false
|
92
105
|
version_requirements: !ruby/object:Gem::Requirement
|
93
106
|
requirements:
|
94
|
-
- - "
|
107
|
+
- - ">="
|
95
108
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
109
|
+
version: '0'
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
111
|
+
name: rake
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
100
113
|
requirements:
|
101
|
-
- - "
|
114
|
+
- - ">="
|
102
115
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
116
|
+
version: '0'
|
104
117
|
type: :development
|
105
118
|
prerelease: false
|
106
119
|
version_requirements: !ruby/object:Gem::Requirement
|
107
120
|
requirements:
|
108
|
-
- - "
|
121
|
+
- - ">="
|
109
122
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
123
|
+
version: '0'
|
111
124
|
- !ruby/object:Gem::Dependency
|
112
|
-
name: rake
|
125
|
+
name: rake-compiler
|
113
126
|
requirement: !ruby/object:Gem::Requirement
|
114
127
|
requirements:
|
115
|
-
- - "
|
128
|
+
- - ">="
|
116
129
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
130
|
+
version: '0'
|
118
131
|
type: :development
|
119
132
|
prerelease: false
|
120
133
|
version_requirements: !ruby/object:Gem::Requirement
|
121
134
|
requirements:
|
122
|
-
- - "
|
135
|
+
- - ">="
|
123
136
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
137
|
+
version: '0'
|
125
138
|
- !ruby/object:Gem::Dependency
|
126
139
|
name: rubocop
|
127
140
|
requirement: !ruby/object:Gem::Requirement
|
@@ -707,7 +720,6 @@ metadata:
|
|
707
720
|
source_code_uri: https://github.com/rmosolgo/graphql-ruby
|
708
721
|
bug_tracker_uri: https://github.com/rmosolgo/graphql-ruby/issues
|
709
722
|
mailing_list_uri: https://tinyletter.com/graphql-ruby
|
710
|
-
post_install_message:
|
711
723
|
rdoc_options: []
|
712
724
|
require_paths:
|
713
725
|
- lib
|
@@ -722,8 +734,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
722
734
|
- !ruby/object:Gem::Version
|
723
735
|
version: '0'
|
724
736
|
requirements: []
|
725
|
-
rubygems_version: 3.
|
726
|
-
signing_key:
|
737
|
+
rubygems_version: 3.6.3
|
727
738
|
specification_version: 4
|
728
739
|
summary: A GraphQL language and runtime for Ruby
|
729
740
|
test_files: []
|