graphql 1.13.23 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c06e180bfdb5a3408918d3a3f09781313a29fc56574284a7487a84b61f50405
4
- data.tar.gz: fe4a4fbaf06b60f4dc50d2ecf495229e65715e475f48d2f269f13a548e4fcf68
3
+ metadata.gz: e6d252cf12d6c3f2ccd6f20a139e0c2f3c460a6c25b8c1cb663e3cacf5e12855
4
+ data.tar.gz: 0d6eda9b7e23c0c58677b44ed1de968c6d60acd4a5f5a49883935ea6e326d691
5
5
  SHA512:
6
- metadata.gz: 5d85cf65216c3a30076d3713c54117f59b5c09d3f9a47d4f47ed4aeca64cc88614c5f3572595d7740ede2f7c8a3969cdd8a8ebbab04ec5622a591238307b6f3c
7
- data.tar.gz: 36418aed27777eb8c2acd31467c050fe57eb353311340a2e7b1e00e440eb46b5155e450c7cb0c6204a61208b00ff0197e1189f9badd71f9a0ac0812caa4a0e0e
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
- if definition_block.arity == 1
89
- instance_exec(self, &definition_block)
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.class_eval <<-RUBY, __FILE__, __LINE__
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) {
@@ -55,7 +55,7 @@ module GraphQL
55
55
  end
56
56
 
57
57
  if block_given?
58
- instance_eval(&block)
58
+ instance_exec(self, &block)
59
59
  end
60
60
  end
61
61
 
@@ -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
- method_name = argument_defn.keyword
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
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.13.23"
3
+ VERSION = "1.13.24"
4
4
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.23
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: 2024-04-05 00:00:00.000000000 Z
10
+ date: 2025-03-12 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: base64
@@ -721,7 +720,6 @@ metadata:
721
720
  source_code_uri: https://github.com/rmosolgo/graphql-ruby
722
721
  bug_tracker_uri: https://github.com/rmosolgo/graphql-ruby/issues
723
722
  mailing_list_uri: https://tinyletter.com/graphql-ruby
724
- post_install_message:
725
723
  rdoc_options: []
726
724
  require_paths:
727
725
  - lib
@@ -736,8 +734,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
736
734
  - !ruby/object:Gem::Version
737
735
  version: '0'
738
736
  requirements: []
739
- rubygems_version: 3.5.3
740
- signing_key:
737
+ rubygems_version: 3.6.3
741
738
  specification_version: 4
742
739
  summary: A GraphQL language and runtime for Ruby
743
740
  test_files: []