elasticgraph-schema_definition 0.19.0.0 → 0.19.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd45e7eb43e6292b8760fb4eb36b76866ee5b6f9a3c93691648266317a7b32bf
4
- data.tar.gz: 47696d843f0fa115ec60cbc268679ed9e11686f5c4d2a4f99bc034eb58e3d3c9
3
+ metadata.gz: 2bad8ee40e50f129a96e49bb037b85629e4fd447e85aec1c3ea2dc8aac1bf39b
4
+ data.tar.gz: aafa9a925ef1f34539655cf1328d26b563042b6f510e6956a669bcffb36f687c
5
5
  SHA512:
6
- metadata.gz: 84a5ee13c253e5ef66c8c83f421ce18cbf3577aed40e71c6554532650eb4d01f00750f3672a6e8b3cb8860767d0c7e25649f88749c1570d463bc6e119f695216
7
- data.tar.gz: 2930ed88573f6b0764eaf145b60aa7a1b3404a94f79d579a17b598e96d82b2210905dc7bdc2e7d947723ecd63e4096ce6e78f84649dcf4fd12f2b8d365918744
6
+ metadata.gz: 42ab4e1236efe8d3abe27f3a362e738df0e9146f95fccb6019e74172ad03f898fb97af989cbbe01074ae16208f0ac16383afba4f465ec66defa73b622069b0d4
7
+ data.tar.gz: 389a20d94c06df1558b020e3a4c4779f82163519b58c1fa3a46c8d05dde469aa46e9a63fe797feb0a055ff1d4b37ac30cd803219ac509e284399f1359d5c5152
@@ -261,7 +261,7 @@ module ElasticGraph
261
261
  def deleted_type(name)
262
262
  @state.register_deleted_type(
263
263
  name,
264
- defined_at: caller_locations(1, 1).first, # : ::Thread::Backtrace::Location
264
+ defined_at: caller_locations(1, 1).to_a.first, # : ::Thread::Backtrace::Location
265
265
  defined_via: %(schema.deleted_type "#{name}")
266
266
  )
267
267
  nil
@@ -53,14 +53,16 @@ module ElasticGraph
53
53
 
54
54
  settings = DEFAULT_SETTINGS.merge(Support::HashUtil.flatten_and_stringify_keys(settings, prefix: "index"))
55
55
 
56
- super(name, [], settings, schema_def_state, indexed_type, [], nil)
57
-
58
- # `id` is the field Elasticsearch/OpenSearch use for routing by default:
59
- # https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html
60
- # By using it here, it will cause queries to pass a `routing` parameter when
61
- # searching with id filtering on an index that does not use custom shard routing, giving
62
- # us a nice efficiency boost.
63
- self.routing_field_path = public_field_path("id", explanation: "indexed types must have an `id` field")
56
+ super(name, [], settings, schema_def_state, indexed_type, nil, nil)
57
+
58
+ schema_def_state.after_user_definition_complete do
59
+ # `id` is the field Elasticsearch/OpenSearch use for routing by default:
60
+ # https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html
61
+ # By using it here, it will cause queries to pass a `routing` parameter when
62
+ # searching with id filtering on an index that does not use custom shard routing, giving
63
+ # us a nice efficiency boost.
64
+ self.routing_field_path = public_field_path("id", explanation: "indexed types must have an `id` field")
65
+ end
64
66
 
65
67
  yield self if block_given?
66
68
  end
@@ -120,23 +122,25 @@ module ElasticGraph
120
122
  # end
121
123
  # end
122
124
  def rollover(frequency, timestamp_field_path_name)
123
- timestamp_field_path = public_field_path(timestamp_field_path_name, explanation: "it is referenced as an index `rollover` field")
125
+ schema_def_state.after_user_definition_complete do
126
+ timestamp_field_path = public_field_path(timestamp_field_path_name, explanation: "it is referenced as an index `rollover` field")
124
127
 
125
- unless date_and_datetime_types.include?(timestamp_field_path.type.fully_unwrapped.name)
126
- date_or_datetime_description = date_and_datetime_types.map { |t| "`#{t}`" }.join(" or ")
127
- raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is not a #{date_or_datetime_description} field."
128
- end
128
+ unless date_and_datetime_types.include?(timestamp_field_path.type.fully_unwrapped.name)
129
+ date_or_datetime_description = date_and_datetime_types.map { |t| "`#{t}`" }.join(" or ")
130
+ raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is not a #{date_or_datetime_description} field."
131
+ end
129
132
 
130
- if timestamp_field_path.type.list?
131
- raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is a list field."
132
- end
133
+ if timestamp_field_path.type.list?
134
+ raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is a list field."
135
+ end
133
136
 
134
- timestamp_field_path.path_parts.each { |f| f.json_schema nullable: false }
137
+ timestamp_field_path.path_parts.each { |f| f.json_schema nullable: false }
135
138
 
136
- self.rollover_config = RolloverConfig.new(
137
- frequency: frequency,
138
- timestamp_field_path: timestamp_field_path
139
- )
139
+ self.rollover_config = RolloverConfig.new(
140
+ frequency: frequency,
141
+ timestamp_field_path: timestamp_field_path
142
+ )
143
+ end
140
144
  end
141
145
 
142
146
  # Configures the index to [route documents to shards](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/mapping-routing-field.html)
@@ -169,17 +173,19 @@ module ElasticGraph
169
173
  # end
170
174
  # end
171
175
  def route_with(routing_field_path_name)
172
- routing_field_path = public_field_path(routing_field_path_name, explanation: "it is referenced as an index `route_with` field")
176
+ schema_def_state.after_user_definition_complete do
177
+ routing_field_path = public_field_path(routing_field_path_name, explanation: "it is referenced as an index `route_with` field")
173
178
 
174
- unless routing_field_path.type.leaf?
175
- raise Errors::SchemaError, "shard routing field `#{routing_field_path.full_description}` cannot be used for routing since it is not a leaf field."
176
- end
179
+ unless routing_field_path.type.leaf?
180
+ raise Errors::SchemaError, "shard routing field `#{routing_field_path.full_description}` cannot be used for routing since it is not a leaf field."
181
+ end
177
182
 
178
- self.routing_field_path = routing_field_path
183
+ self.routing_field_path = routing_field_path
179
184
 
180
- routing_field_path.path_parts[0..-2].each { |f| f.json_schema nullable: false }
181
- routing_field_path.last_part.json_schema nullable: false, pattern: HAS_NON_WHITE_SPACE_REGEX
182
- indexed_type.append_to_documentation "For more performant queries on this type, please filter on `#{routing_field_path_name}` if possible."
185
+ routing_field_path.path_parts[0..-2].each { |f| f.json_schema nullable: false }
186
+ routing_field_path.last_part.json_schema nullable: false, pattern: HAS_NON_WHITE_SPACE_REGEX
187
+ indexed_type.append_to_documentation "For more performant queries on this type, please filter on `#{routing_field_path_name}` if possible."
188
+ end
183
189
  end
184
190
 
185
191
  # @see #route_with
@@ -286,7 +292,7 @@ module ElasticGraph
286
292
 
287
293
  def public_field_path(public_path_string, explanation:)
288
294
  parent_is_not_list = ->(parent_field) { !parent_field.type.list? }
289
- resolver = SchemaElements::FieldPath::Resolver.new
295
+ resolver = schema_def_state.field_path_resolver
290
296
  resolved_path = resolver.resolve_public_path(indexed_type, public_path_string, &parent_is_not_list)
291
297
  return resolved_path if resolved_path
292
298
 
@@ -11,12 +11,11 @@ module ElasticGraph
11
11
  module Indexing
12
12
  # @private
13
13
  class RelationshipResolver
14
- def initialize(schema_def_state:, object_type:, relationship_name:, sourced_fields:, field_path_resolver:)
14
+ def initialize(schema_def_state:, object_type:, relationship_name:, sourced_fields:)
15
15
  @schema_def_state = schema_def_state
16
16
  @object_type = object_type
17
17
  @relationship_name = relationship_name
18
18
  @sourced_fields = sourced_fields
19
- @field_path_resolver = field_path_resolver
20
19
  end
21
20
 
22
21
  def resolve
@@ -51,8 +50,8 @@ module ElasticGraph
51
50
 
52
51
  private
53
52
 
54
- # @dynamic schema_def_state, object_type, relationship_name, sourced_fields, field_path_resolver
55
- attr_reader :schema_def_state, :object_type, :relationship_name, :sourced_fields, :field_path_resolver
53
+ # @dynamic schema_def_state, object_type, relationship_name, sourced_fields
54
+ attr_reader :schema_def_state, :object_type, :relationship_name, :sourced_fields
56
55
 
57
56
  # Helper method for building the prefix of relationship-related error messages.
58
57
  def relationship_error_prefix
@@ -67,7 +66,7 @@ module ElasticGraph
67
66
  end
68
67
 
69
68
  def validate_foreign_key(foreign_key_parent_type, relation_metadata)
70
- foreign_key_field = field_path_resolver.resolve_public_path(foreign_key_parent_type, relation_metadata.foreign_key) { true }
69
+ foreign_key_field = schema_def_state.field_path_resolver.resolve_public_path(foreign_key_parent_type, relation_metadata.foreign_key) { true }
71
70
  # If its an inbound foreign key, verify that the foreign key exists on the related type.
72
71
  # Note: we don't verify this for outbound foreign keys, because when we define a relationship with an outbound foreign
73
72
  # key, we automatically define an indexing only field for the foreign key (since it exists on the same type). We don't
@@ -109,6 +109,7 @@ module ElasticGraph
109
109
  def after_initialize
110
110
  # Record that we are now generating results so that caching can kick in.
111
111
  state.user_definition_complete = true
112
+ state.user_definition_complete_callbacks.each(&:call)
112
113
  end
113
114
 
114
115
  def json_schema_with_metadata_merger
@@ -179,9 +180,6 @@ module ElasticGraph
179
180
  # Builds a map, keyed by object type name, of extra `update_targets` that have been generated
180
181
  # from any fields that use `sourced_from` on other types.
181
182
  def identify_extra_update_targets_by_object_type_name
182
- # The field_path_resolver memoizes some calculations, and we want the same instance to be
183
- # used by all UpdateTargetBuilders to maximize its effectiveness.
184
- field_path_resolver = SchemaElements::FieldPath::Resolver.new
185
183
  sourced_field_errors = [] # : ::Array[::String]
186
184
  relationship_errors = [] # : ::Array[::String]
187
185
 
@@ -209,8 +207,7 @@ module ElasticGraph
209
207
  schema_def_state: state,
210
208
  object_type: object_type,
211
209
  relationship_name: relationship_name,
212
- sourced_fields: sourced_fields,
213
- field_path_resolver: field_path_resolver
210
+ sourced_fields: sourced_fields
214
211
  )
215
212
 
216
213
  resolved_relationship, relationship_error = relationship_resolver.resolve
@@ -221,7 +218,7 @@ module ElasticGraph
221
218
  object_type: object_type,
222
219
  resolved_relationship: resolved_relationship,
223
220
  sourced_fields: sourced_fields,
224
- field_path_resolver: field_path_resolver
221
+ field_path_resolver: state.field_path_resolver
225
222
  )
226
223
 
227
224
  update_target, errors = update_target_resolver.resolve
@@ -504,7 +504,8 @@ module ElasticGraph
504
504
 
505
505
  schema_def_api.factory.new_aggregated_values_type_for_index_leaf_type "NonNumeric" do |t|
506
506
  t.documentation "A return type used from aggregations to provided aggregated values over non-numeric fields."
507
- end.tap { |t| schema_def_api.state.register_object_interface_or_union_type(t) }
507
+ schema_def_api.state.register_object_interface_or_union_type(t)
508
+ end
508
509
 
509
510
  register_framework_object_type "AggregationCountDetail" do |t|
510
511
  t.documentation "Provides detail about an aggregation `#{names.count}`."
@@ -475,7 +475,7 @@ module ElasticGraph
475
475
  parent_type.name,
476
476
  from: old_name,
477
477
  to: name,
478
- defined_at: caller_locations(1, 1).first, # : ::Thread::Backtrace::Location
478
+ defined_at: caller_locations(1, 1).to_a.first, # : ::Thread::Backtrace::Location
479
479
  defined_via: %(field.renamed_from "#{old_name}")
480
480
  )
481
481
  end
@@ -51,13 +51,17 @@ module ElasticGraph
51
51
 
52
52
  # Responsible for resolving a particular field path (given as a string) into a `FieldPath` object.
53
53
  #
54
- # Important: this class optimizes performance by memoizing some things based on the current state
55
- # of the ElasticGraph schema. It's intended to be used AFTER the schema is fully defined (e.g.
56
- # as part of dumping schema artifacts). Using it before the schema has fully been defined requires
57
- # that you discard the instance after using it, as it won't be aware of additions to the schema
58
- # and may yield inaccurate results.
54
+ # Cannot be instantiated until the user has finished defining the schema.
55
+ # If we allowed it to be used before then, it creates a situation where the order of definition matters.
56
+ # In addition, this class optimizes performance by memoizing some things based on the current state, and
57
+ # if the state is updated after an instance is created, inaccurate results could be produced.
59
58
  class Resolver
60
- def initialize
59
+ def initialize(state)
60
+ unless state.user_definition_complete
61
+ raise Errors::SchemaError,
62
+ "A `FieldPath::Resolver` cannot be created before the user definition of the schema is complete."
63
+ end
64
+
61
65
  @indexing_fields_by_public_name_by_type = ::Hash.new do |hash, type|
62
66
  hash[type] = type
63
67
  .indexing_fields_by_name_in_index
@@ -140,7 +140,8 @@ module ElasticGraph
140
140
  def routing_value_source_for_index(index)
141
141
  return nil unless index.uses_custom_routing?
142
142
 
143
- @equivalent_field_paths_by_local_path.fetch(index.routing_field_path.path) do |local_need|
143
+ index_routing_field_path = index.routing_field_path # : FieldPath
144
+ @equivalent_field_paths_by_local_path.fetch(index_routing_field_path.path) do |local_need|
144
145
  yield local_need
145
146
  end
146
147
  end
@@ -191,11 +192,15 @@ module ElasticGraph
191
192
 
192
193
  # @private
193
194
  def runtime_metadata
194
- field_path_resolver = SchemaElements::FieldPath::Resolver.new
195
195
  resolved_related_type = (_ = related_type.unwrap_list.as_object_type) # : indexableType
196
- foreign_key_nested_paths = field_path_resolver.determine_nested_paths(resolved_related_type, @foreign_key)
196
+ foreign_key_nested_paths = schema_def_state.field_path_resolver.determine_nested_paths(resolved_related_type, @foreign_key)
197
197
  foreign_key_nested_paths ||= [] # : ::Array[::String]
198
- SchemaArtifacts::RuntimeMetadata::Relation.new(foreign_key: @foreign_key, direction: @direction, additional_filter: @additional_filter, foreign_key_nested_paths: foreign_key_nested_paths)
198
+ SchemaArtifacts::RuntimeMetadata::Relation.new(
199
+ foreign_key: @foreign_key,
200
+ direction: @direction,
201
+ additional_filter: @additional_filter,
202
+ foreign_key_nested_paths: foreign_key_nested_paths
203
+ )
199
204
  end
200
205
 
201
206
  private
@@ -239,7 +239,7 @@ module ElasticGraph
239
239
  schema_def_state.register_deleted_field(
240
240
  name,
241
241
  field_name,
242
- defined_at: caller_locations(2, 1).first, # : ::Thread::Backtrace::Location
242
+ defined_at: caller_locations(2, 1).to_a.first, # : ::Thread::Backtrace::Location
243
243
  defined_via: %(type.deleted_field "#{field_name}")
244
244
  )
245
245
  end
@@ -263,7 +263,7 @@ module ElasticGraph
263
263
  schema_def_state.register_renamed_type(
264
264
  name,
265
265
  from: old_name,
266
- defined_at: caller_locations(2, 1).first, # : ::Thread::Backtrace::Location
266
+ defined_at: caller_locations(2, 1).to_a.first, # : ::Thread::Backtrace::Location
267
267
  defined_via: %(type.renamed_from "#{old_name}")
268
268
  )
269
269
  end
@@ -11,6 +11,7 @@ require "elastic_graph/errors"
11
11
  require "elastic_graph/schema_definition/factory"
12
12
  require "elastic_graph/schema_definition/mixins/has_readable_to_s_and_inspect"
13
13
  require "elastic_graph/schema_definition/schema_elements/enum_value_namer"
14
+ require "elastic_graph/schema_definition/schema_elements/field_path"
14
15
  require "elastic_graph/schema_definition/schema_elements/type_namer"
15
16
  require "elastic_graph/schema_definition/schema_elements/sub_aggregation_path"
16
17
 
@@ -44,6 +45,7 @@ module ElasticGraph
44
45
  :initially_registered_built_in_types,
45
46
  :built_in_types_customization_blocks,
46
47
  :user_definition_complete,
48
+ :user_definition_complete_callbacks,
47
49
  :sub_aggregation_paths_by_type,
48
50
  :type_refs_by_name,
49
51
  :output,
@@ -86,6 +88,7 @@ module ElasticGraph
86
88
  initially_registered_built_in_types: ::Set.new,
87
89
  built_in_types_customization_blocks: [],
88
90
  user_definition_complete: false,
91
+ user_definition_complete_callbacks: [],
89
92
  sub_aggregation_paths_by_type: {},
90
93
  type_refs_by_name: {},
91
94
  type_namer: SchemaElements::TypeNamer.new(
@@ -191,6 +194,14 @@ module ElasticGraph
191
194
  end
192
195
  end
193
196
 
197
+ def after_user_definition_complete(&block)
198
+ user_definition_complete_callbacks << block
199
+ end
200
+
201
+ def field_path_resolver
202
+ @field_path_resolver ||= SchemaElements::FieldPath::Resolver.new(self)
203
+ end
204
+
194
205
  private
195
206
 
196
207
  RESERVED_TYPE_NAMES = [EVENT_ENVELOPE_JSON_SCHEMA_NAME].to_set
metadata CHANGED
@@ -1,309 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticgraph-schema_definition
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0.0
4
+ version: 0.19.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myron Marston
8
8
  - Ben VandenBos
9
9
  - Block Engineering
10
10
  autorequire:
11
- bindir: exe
11
+ bindir: bin
12
12
  cert_chain: []
13
- date: 2024-12-10 00:00:00.000000000 Z
13
+ date: 2025-02-06 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rubocop-factory_bot
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '2.26'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '2.26'
29
- - !ruby/object:Gem::Dependency
30
- name: rubocop-rake
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '0.6'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '0.6'
43
- - !ruby/object:Gem::Dependency
44
- name: rubocop-rspec
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '3.1'
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '3.1'
57
- - !ruby/object:Gem::Dependency
58
- name: standard
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: 1.41.0
64
- type: :development
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: 1.41.0
71
- - !ruby/object:Gem::Dependency
72
- name: steep
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: 1.9.0
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: 1.9.0
85
- - !ruby/object:Gem::Dependency
86
- name: coderay
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '1.1'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '1.1'
99
- - !ruby/object:Gem::Dependency
100
- name: flatware-rspec
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: '2.3'
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: 2.3.3
109
- type: :development
110
- prerelease: false
111
- version_requirements: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - "~>"
114
- - !ruby/object:Gem::Version
115
- version: '2.3'
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 2.3.3
119
- - !ruby/object:Gem::Dependency
120
- name: rspec
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '3.13'
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '3.13'
133
- - !ruby/object:Gem::Dependency
134
- name: super_diff
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '0.13'
140
- type: :development
141
- prerelease: false
142
- version_requirements: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: '0.13'
147
- - !ruby/object:Gem::Dependency
148
- name: simplecov
149
- requirement: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '0.22'
154
- type: :development
155
- prerelease: false
156
- version_requirements: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: '0.22'
161
- - !ruby/object:Gem::Dependency
162
- name: simplecov-console
163
- requirement: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '0.9'
168
- type: :development
169
- prerelease: false
170
- version_requirements: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: '0.9'
175
- - !ruby/object:Gem::Dependency
176
- name: httpx
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '1.3'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '1.3'
189
- - !ruby/object:Gem::Dependency
190
- name: method_source
191
- requirement: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '1.1'
196
- type: :development
197
- prerelease: false
198
- version_requirements: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '1.1'
203
- - !ruby/object:Gem::Dependency
204
- name: rspec-retry
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '0.6'
210
- type: :development
211
- prerelease: false
212
- version_requirements: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: '0.6'
217
- - !ruby/object:Gem::Dependency
218
- name: vcr
219
- requirement: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - "~>"
222
- - !ruby/object:Gem::Version
223
- version: '6.3'
224
- - - ">="
225
- - !ruby/object:Gem::Version
226
- version: 6.3.1
227
- type: :development
228
- prerelease: false
229
- version_requirements: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - "~>"
232
- - !ruby/object:Gem::Version
233
- version: '6.3'
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: 6.3.1
237
15
  - !ruby/object:Gem::Dependency
238
16
  name: elasticgraph-graphql
239
17
  requirement: !ruby/object:Gem::Requirement
240
18
  requirements:
241
19
  - - '='
242
20
  - !ruby/object:Gem::Version
243
- version: 0.19.0.0
21
+ version: 0.19.1.0
244
22
  type: :runtime
245
23
  prerelease: false
246
24
  version_requirements: !ruby/object:Gem::Requirement
247
25
  requirements:
248
26
  - - '='
249
27
  - !ruby/object:Gem::Version
250
- version: 0.19.0.0
28
+ version: 0.19.1.0
251
29
  - !ruby/object:Gem::Dependency
252
30
  name: elasticgraph-indexer
253
31
  requirement: !ruby/object:Gem::Requirement
254
32
  requirements:
255
33
  - - '='
256
34
  - !ruby/object:Gem::Version
257
- version: 0.19.0.0
35
+ version: 0.19.1.0
258
36
  type: :runtime
259
37
  prerelease: false
260
38
  version_requirements: !ruby/object:Gem::Requirement
261
39
  requirements:
262
40
  - - '='
263
41
  - !ruby/object:Gem::Version
264
- version: 0.19.0.0
42
+ version: 0.19.1.0
265
43
  - !ruby/object:Gem::Dependency
266
44
  name: elasticgraph-json_schema
267
45
  requirement: !ruby/object:Gem::Requirement
268
46
  requirements:
269
47
  - - '='
270
48
  - !ruby/object:Gem::Version
271
- version: 0.19.0.0
49
+ version: 0.19.1.0
272
50
  type: :runtime
273
51
  prerelease: false
274
52
  version_requirements: !ruby/object:Gem::Requirement
275
53
  requirements:
276
54
  - - '='
277
55
  - !ruby/object:Gem::Version
278
- version: 0.19.0.0
56
+ version: 0.19.1.0
279
57
  - !ruby/object:Gem::Dependency
280
58
  name: elasticgraph-schema_artifacts
281
59
  requirement: !ruby/object:Gem::Requirement
282
60
  requirements:
283
61
  - - '='
284
62
  - !ruby/object:Gem::Version
285
- version: 0.19.0.0
63
+ version: 0.19.1.0
286
64
  type: :runtime
287
65
  prerelease: false
288
66
  version_requirements: !ruby/object:Gem::Requirement
289
67
  requirements:
290
68
  - - '='
291
69
  - !ruby/object:Gem::Version
292
- version: 0.19.0.0
70
+ version: 0.19.1.0
293
71
  - !ruby/object:Gem::Dependency
294
72
  name: elasticgraph-support
295
73
  requirement: !ruby/object:Gem::Requirement
296
74
  requirements:
297
75
  - - '='
298
76
  - !ruby/object:Gem::Version
299
- version: 0.19.0.0
77
+ version: 0.19.1.0
300
78
  type: :runtime
301
79
  prerelease: false
302
80
  version_requirements: !ruby/object:Gem::Requirement
303
81
  requirements:
304
82
  - - '='
305
83
  - !ruby/object:Gem::Version
306
- version: 0.19.0.0
84
+ version: 0.19.1.0
307
85
  - !ruby/object:Gem::Dependency
308
86
  name: graphql
309
87
  requirement: !ruby/object:Gem::Requirement
@@ -338,56 +116,56 @@ dependencies:
338
116
  requirements:
339
117
  - - '='
340
118
  - !ruby/object:Gem::Version
341
- version: 0.19.0.0
119
+ version: 0.19.1.0
342
120
  type: :development
343
121
  prerelease: false
344
122
  version_requirements: !ruby/object:Gem::Requirement
345
123
  requirements:
346
124
  - - '='
347
125
  - !ruby/object:Gem::Version
348
- version: 0.19.0.0
126
+ version: 0.19.1.0
349
127
  - !ruby/object:Gem::Dependency
350
128
  name: elasticgraph-datastore_core
351
129
  requirement: !ruby/object:Gem::Requirement
352
130
  requirements:
353
131
  - - '='
354
132
  - !ruby/object:Gem::Version
355
- version: 0.19.0.0
133
+ version: 0.19.1.0
356
134
  type: :development
357
135
  prerelease: false
358
136
  version_requirements: !ruby/object:Gem::Requirement
359
137
  requirements:
360
138
  - - '='
361
139
  - !ruby/object:Gem::Version
362
- version: 0.19.0.0
140
+ version: 0.19.1.0
363
141
  - !ruby/object:Gem::Dependency
364
142
  name: elasticgraph-elasticsearch
365
143
  requirement: !ruby/object:Gem::Requirement
366
144
  requirements:
367
145
  - - '='
368
146
  - !ruby/object:Gem::Version
369
- version: 0.19.0.0
147
+ version: 0.19.1.0
370
148
  type: :development
371
149
  prerelease: false
372
150
  version_requirements: !ruby/object:Gem::Requirement
373
151
  requirements:
374
152
  - - '='
375
153
  - !ruby/object:Gem::Version
376
- version: 0.19.0.0
154
+ version: 0.19.1.0
377
155
  - !ruby/object:Gem::Dependency
378
156
  name: elasticgraph-opensearch
379
157
  requirement: !ruby/object:Gem::Requirement
380
158
  requirements:
381
159
  - - '='
382
160
  - !ruby/object:Gem::Version
383
- version: 0.19.0.0
161
+ version: 0.19.1.0
384
162
  type: :development
385
163
  prerelease: false
386
164
  version_requirements: !ruby/object:Gem::Requirement
387
165
  requirements:
388
166
  - - '='
389
167
  - !ruby/object:Gem::Version
390
- version: 0.19.0.0
168
+ version: 0.19.1.0
391
169
  description:
392
170
  email:
393
171
  - myron@squareup.com
@@ -397,7 +175,6 @@ extra_rdoc_files: []
397
175
  files:
398
176
  - LICENSE.txt
399
177
  - README.md
400
- - elasticgraph-schema_definition.gemspec
401
178
  - lib/elastic_graph/schema_definition/api.rb
402
179
  - lib/elastic_graph/schema_definition/factory.rb
403
180
  - lib/elastic_graph/schema_definition/indexing/derived_fields/append_only_set.rb
@@ -474,10 +251,10 @@ licenses:
474
251
  - MIT
475
252
  metadata:
476
253
  bug_tracker_uri: https://github.com/block/elasticgraph/issues
477
- changelog_uri: https://github.com/block/elasticgraph/releases/tag/v0.19.0.0
254
+ changelog_uri: https://github.com/block/elasticgraph/releases/tag/v0.19.1.0
478
255
  documentation_uri: https://block.github.io/elasticgraph/docs/main/
479
256
  homepage_uri: https://block.github.io/elasticgraph/
480
- source_code_uri: https://github.com/block/elasticgraph/tree/v0.19.0.0/elasticgraph-schema_definition
257
+ source_code_uri: https://github.com/block/elasticgraph/tree/v0.19.1.0/elasticgraph-schema_definition
481
258
  gem_category: local
482
259
  post_install_message:
483
260
  rdoc_options: []
@@ -485,9 +262,12 @@ require_paths:
485
262
  - lib
486
263
  required_ruby_version: !ruby/object:Gem::Requirement
487
264
  requirements:
488
- - - "~>"
265
+ - - ">="
489
266
  - !ruby/object:Gem::Version
490
267
  version: '3.2'
268
+ - - "<"
269
+ - !ruby/object:Gem::Version
270
+ version: '3.5'
491
271
  required_rubygems_version: !ruby/object:Gem::Requirement
492
272
  requirements:
493
273
  - - ">="
@@ -1,26 +0,0 @@
1
- # Copyright 2024 Block, Inc.
2
- #
3
- # Use of this source code is governed by an MIT-style
4
- # license that can be found in the LICENSE file or at
5
- # https://opensource.org/licenses/MIT.
6
- #
7
- # frozen_string_literal: true
8
-
9
- require_relative "../gemspec_helper"
10
-
11
- ElasticGraphGemspecHelper.define_elasticgraph_gem(gemspec_file: __FILE__, category: :local) do |spec, eg_version|
12
- spec.summary = "ElasticGraph gem that provides the schema definition API and generates schema artifacts."
13
-
14
- spec.add_dependency "elasticgraph-graphql", eg_version # needed since we validate that scalar `coerce_with` options are valid (which loads scalar coercion adapters)
15
- spec.add_dependency "elasticgraph-indexer", eg_version # needed since we validate that scalar `prepare_for_indexing_with` options are valid (which loads indexing preparer adapters)
16
- spec.add_dependency "elasticgraph-json_schema", eg_version
17
- spec.add_dependency "elasticgraph-schema_artifacts", eg_version
18
- spec.add_dependency "elasticgraph-support", eg_version
19
- spec.add_dependency "graphql", "~> 2.4.8"
20
- spec.add_dependency "rake", "~> 13.2"
21
-
22
- spec.add_development_dependency "elasticgraph-admin", eg_version
23
- spec.add_development_dependency "elasticgraph-datastore_core", eg_version
24
- spec.add_development_dependency "elasticgraph-elasticsearch", eg_version
25
- spec.add_development_dependency "elasticgraph-opensearch", eg_version
26
- end