activerecord-ejection_seat 0.2.0 → 0.3.0

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -8
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -0
  5. data/Gemfile +2 -2
  6. data/Gemfile.lock +42 -55
  7. data/README.md +16 -6
  8. data/Rakefile +6 -6
  9. data/activerecord-ejection_seat.gemspec +40 -0
  10. data/lib/activerecord-ejection_seat/attributes_builder.rb +42 -0
  11. data/lib/activerecord-ejection_seat/ejectable.rb +7 -10
  12. data/lib/activerecord-ejection_seat/props_builder.rb +35 -23
  13. data/lib/activerecord-ejection_seat/version.rb +2 -2
  14. data/lib/activerecord-ejection_seat.rb +6 -3
  15. data/sorbet/rbi/gems/activemodel@7.0.4.1.rbi +6022 -0
  16. data/sorbet/rbi/gems/activerecord@7.0.4.1.rbi +37791 -0
  17. data/sorbet/rbi/gems/activesupport@7.0.4.1.rbi +18127 -0
  18. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11626 -2
  19. data/sorbet/rbi/gems/minitest@5.17.0.rbi +2319 -0
  20. data/sorbet/rbi/gems/{parser@3.1.3.0.rbi → parser@3.2.0.0.rbi} +907 -821
  21. data/sorbet/rbi/gems/{prettier_print@1.1.0.rbi → prettier_print@1.2.0.rbi} +0 -0
  22. data/sorbet/rbi/gems/{rubocop-ast@1.24.0.rbi → rubocop-ast@1.24.1.rbi} +702 -458
  23. data/sorbet/rbi/gems/rubocop-minitest@0.26.1.rbi +2320 -0
  24. data/sorbet/rbi/gems/{rubocop@1.41.0.rbi → rubocop@1.43.0.rbi} +2743 -625
  25. data/sorbet/rbi/gems/{ruby-lsp@0.3.7.rbi → ruby-lsp@0.3.8.rbi} +2 -1
  26. data/sorbet/rbi/gems/{sqlite3@1.5.4.rbi → sqlite3@1.6.0.rbi} +73 -0
  27. data/sorbet/rbi/gems/{syntax_tree@4.3.0.rbi → syntax_tree@5.2.0.rbi} +0 -0
  28. data/sorbet/rbi/gems/{tapioca@0.10.4.rbi → tapioca@0.10.5.rbi} +279 -96
  29. data/sorbet/rbi/gems/{unicode-display_width@2.3.0.rbi → unicode-display_width@2.4.2.rbi} +26 -7
  30. data/sorbet/rbi/gems/{unparser@0.6.5.rbi → unparser@0.6.7.rbi} +323 -64
  31. data/sorbet/rbi/gems/{yard-sorbet@0.7.0.rbi → yard-sorbet@0.8.0.rbi} +91 -41
  32. data/sorbet/rbi/shims/location.rbi +13 -0
  33. data/sorbet/rbi/shims/post.rbi +16 -0
  34. data/sorbet/rbi/shims/user.rbi +19 -0
  35. data/sorbet/rbi/todo.rbi +0 -4
  36. data/sorbet/tapioca/require.rb +16 -2
  37. metadata +29 -27
  38. data/sorbet/rbi/gems/activemodel@7.0.4.rbi +0 -8
  39. data/sorbet/rbi/gems/activerecord@7.0.4.rbi +0 -11
  40. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +0 -93
  41. data/sorbet/rbi/gems/minitest@5.16.3.rbi +0 -8
  42. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +0 -10588
  43. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +0 -7817
  44. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +0 -4994
  45. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +0 -1477
  46. data/sorbet/rbi/gems/rspec@3.12.0.rbi +0 -10
  47. data/sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi +0 -7650
@@ -83,7 +83,7 @@ class YARDSorbet::Handlers::IncludeHandler < ::YARD::Handlers::Ruby::Base
83
83
 
84
84
  private
85
85
 
86
- # source://yard-sorbet//lib/yard-sorbet/handlers/include_handler.rb#30
86
+ # source://yard-sorbet//lib/yard-sorbet/handlers/include_handler.rb#28
87
87
  sig { returns(::YARD::CodeObjects::NamespaceObject) }
88
88
  def included_in; end
89
89
  end
@@ -100,7 +100,7 @@ class YARDSorbet::Handlers::MixesInClassMethodsHandler < ::YARD::Handlers::Ruby:
100
100
 
101
101
  class << self
102
102
  # source://yard-sorbet//lib/yard-sorbet/handlers/mixes_in_class_methods_handler.rb#18
103
- sig { params(code_obj: ::String).returns(T.nilable(::String)) }
103
+ sig { params(code_obj: ::String).returns(T.nilable(T::Array[::String])) }
104
104
  def mixed_in_class_methods(code_obj); end
105
105
  end
106
106
  end
@@ -112,35 +112,59 @@ class YARDSorbet::Handlers::SigHandler < ::YARD::Handlers::Ruby::Base
112
112
  # Swap the method definition docstring and the sig docstring.
113
113
  # Parse relevant parts of the `sig` and include them as well.
114
114
  #
115
- # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#20
115
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#24
116
116
  sig { void }
117
117
  def process; end
118
118
 
119
119
  private
120
120
 
121
- # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#52
121
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#73
122
+ sig { params(method_objects: T::Array[::YARD::CodeObjects::MethodObject]).void }
123
+ def document_attr_methods(method_objects); end
124
+
125
+ # An attr* sig can be merged into a previous attr* docstring if it is the only parameter passed to the attr*
126
+ # declaration. This is to avoid needing to rewrite the source code to separate merged and unmerged attr*
127
+ # declarations.
128
+ #
129
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#60
130
+ sig { params(attr_node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Boolean) }
131
+ def merged_into_attr?(attr_node); end
132
+
133
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#78
122
134
  sig do
123
135
  params(
124
- method_node: ::YARD::Parser::Ruby::AstNode,
125
- node: ::YARD::Parser::Ruby::AstNode,
126
- docstring: ::YARD::Docstring
136
+ attach_to: T.any(::YARD::CodeObjects::MethodObject, ::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode),
137
+ docstring: T.nilable(::String),
138
+ include_params: T::Boolean
127
139
  ).void
128
140
  end
129
- def parse_params(method_node, node, docstring); end
141
+ def parse_node(attach_to, docstring, include_params: T.unsafe(nil)); end
142
+
143
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#99
144
+ sig { params(node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
145
+ def parse_params(node, docstring); end
130
146
 
131
- # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#64
147
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#109
132
148
  sig { params(node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
133
149
  def parse_return(node, docstring); end
134
150
 
135
- # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#32
136
- sig { params(method_node: ::YARD::Parser::Ruby::AstNode, docstring: ::YARD::Docstring).void }
137
- def parse_sig(method_node, docstring); end
151
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#87
152
+ sig { params(docstring: ::YARD::Docstring, include_params: T::Boolean).void }
153
+ def parse_sig(docstring, include_params: T.unsafe(nil)); end
154
+
155
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#50
156
+ sig { params(attr_node: ::YARD::Parser::Ruby::MethodCallNode).void }
157
+ def process_attr(attr_node); end
158
+
159
+ # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#36
160
+ sig { params(def_node: ::YARD::Parser::Ruby::MethodDefinitionNode).void }
161
+ def process_def(def_node); end
138
162
  end
139
163
 
140
- # These node types attached to sigs represent attr_* declarations
164
+ # YARD types that can have docstrings attached to them
141
165
  #
142
166
  # source://yard-sorbet//lib/yard-sorbet/handlers/sig_handler.rb#14
143
- YARDSorbet::Handlers::SigHandler::ATTR_NODE_TYPES = T.let(T.unsafe(nil), Array)
167
+ YARDSorbet::Handlers::SigHandler::Documentable = T.type_alias { T.any(::YARD::CodeObjects::MethodObject, ::YARD::Parser::Ruby::MethodCallNode, ::YARD::Parser::Ruby::MethodDefinitionNode) }
144
168
 
145
169
  # Class-level handler that folds all `const` and `prop` declarations into the constructor documentation
146
170
  # this needs to be injected as a module otherwise the default Class handler will overwrite documentation
@@ -194,26 +218,31 @@ class YARDSorbet::Handlers::StructPropHandler < ::YARD::Handlers::Ruby::Base
194
218
  sig { params(object: ::YARD::CodeObjects::MethodObject, prop: ::YARDSorbet::TStructProp).void }
195
219
  def decorate_object(object, prop); end
196
220
 
197
- # Get the default prop value
198
- #
199
- # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#39
200
- sig { returns(T.nilable(::String)) }
201
- def default_value; end
221
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#38
222
+ sig { returns(T::Boolean) }
223
+ def immutable?; end
202
224
 
203
225
  # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#44
226
+ sig { params(kwd: ::String).returns(T.nilable(::String)) }
227
+ def kw_arg(kwd); end
228
+
229
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#49
204
230
  sig { params(name: ::String).returns(::YARDSorbet::TStructProp) }
205
231
  def make_prop(name); end
206
232
 
233
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#60
234
+ sig { returns(T::Array[T.untyped]) }
235
+ def params; end
236
+
207
237
  # Register the field explicitly as an attribute.
208
- # While `const` attributes are immutable, `prop` attributes may be reassigned.
209
238
  #
210
- # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#57
239
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#66
211
240
  sig { params(object: ::YARD::CodeObjects::MethodObject, name: ::String).void }
212
241
  def register_attrs(object, name); end
213
242
 
214
243
  # Store the prop for use in the constructor definition
215
244
  #
216
- # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#65
245
+ # source://yard-sorbet//lib/yard-sorbet/handlers/struct_prop_handler.rb#74
217
246
  sig { params(prop: ::YARDSorbet::TStructProp).void }
218
247
  def update_state(prop); end
219
248
  end
@@ -228,7 +257,7 @@ module YARDSorbet::NodeUtils
228
257
  # @note This will skip over some node types.
229
258
  # @yield [YARD::Parser::Ruby::AstNode]
230
259
  #
231
- # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#22
260
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#21
232
261
  sig do
233
262
  params(
234
263
  node: ::YARD::Parser::Ruby::AstNode,
@@ -237,9 +266,13 @@ module YARDSorbet::NodeUtils
237
266
  end
238
267
  def bfs_traverse(node, &_blk); end
239
268
 
269
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#32
270
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).void }
271
+ def delete_node(node); end
272
+
240
273
  # Gets the node that a sorbet `sig` can be attached do, bypassing visisbility modifiers and the like
241
274
  #
242
- # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#34
275
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#38
243
276
  sig do
244
277
  params(
245
278
  node: ::YARD::Parser::Ruby::AstNode
@@ -251,9 +284,19 @@ module YARDSorbet::NodeUtils
251
284
  #
252
285
  # @raise [IndexError] if the node does not have an adjacent sibling (ascending)
253
286
  #
254
- # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#48
287
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#45
255
288
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::YARD::Parser::Ruby::AstNode) }
256
289
  def sibling_node(node); end
290
+
291
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#52
292
+ sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Boolean) }
293
+ def sigable_node?(node); end
294
+
295
+ # @see https://github.com/lsegal/yard/blob/main/lib/yard/handlers/ruby/attribute_handler.rb YARD::Handlers::Ruby::AttributeHandler.validated_attribute_names
296
+ #
297
+ # source://yard-sorbet//lib/yard-sorbet/node_utils.rb#63
298
+ sig { params(attr_node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
299
+ def validated_attribute_names(attr_node); end
257
300
  end
258
301
  end
259
302
 
@@ -279,53 +322,53 @@ module YARDSorbet::SigToYARD
279
322
  class << self
280
323
  # @see https://yardoc.org/types.html
281
324
  #
282
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#21
325
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#22
283
326
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
284
327
  def convert(node); end
285
328
 
286
329
  private
287
330
 
288
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#54
331
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#55
289
332
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(::String) }
290
333
  def build_generic_type(node); end
291
334
 
292
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#63
335
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#64
293
336
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
294
337
  def convert_aref(node); end
295
338
 
296
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#75
339
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#76
297
340
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
298
341
  def convert_array(node); end
299
342
 
300
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#83
343
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#84
301
344
  sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
302
345
  def convert_call(node); end
303
346
 
304
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#88
347
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#89
305
348
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
306
349
  def convert_collection(node); end
307
350
 
308
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#95
351
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#96
309
352
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns([::String]) }
310
353
  def convert_hash(node); end
311
354
 
312
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#103
355
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#104
313
356
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
314
357
  def convert_list(node); end
315
358
 
316
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#27
359
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#28
317
360
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
318
361
  def convert_node(node); end
319
362
 
320
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#36
363
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#37
321
364
  sig { params(node: ::YARD::Parser::Ruby::AstNode).returns(T::Array[::String]) }
322
365
  def convert_node_type(node); end
323
366
 
324
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#108
367
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#109
325
368
  sig { params(node_source: ::String).returns([::String]) }
326
369
  def convert_ref(node_source); end
327
370
 
328
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#113
371
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#114
329
372
  sig { params(node: ::YARD::Parser::Ruby::MethodCallNode).returns(T::Array[::String]) }
330
373
  def convert_t_method(node); end
331
374
 
@@ -335,7 +378,9 @@ module YARDSorbet::SigToYARD
335
378
  end
336
379
  end
337
380
 
338
- # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#9
381
+ # Map of common types to YARD conventions (in order to reduce allocations)
382
+ #
383
+ # source://yard-sorbet//lib/yard-sorbet/sig_to_yard.rb#10
339
384
  YARDSorbet::SigToYARD::REF_TYPES = T.let(T.unsafe(nil), Hash)
340
385
 
341
386
  # Used to store the details of a `T::Struct` `prop` definition
@@ -349,7 +394,7 @@ class YARDSorbet::TStructProp < ::T::Struct
349
394
  const :types, T::Array[::String]
350
395
 
351
396
  class << self
352
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
397
+ # source://sorbet-runtime/0.5.10626/lib/types/struct.rb#13
353
398
  def inherited(s); end
354
399
  end
355
400
  end
@@ -359,7 +404,7 @@ end
359
404
  # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#6
360
405
  module YARDSorbet::TagUtils
361
406
  class << self
362
- # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#13
407
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#16
363
408
  sig do
364
409
  params(
365
410
  docstring: ::YARD::Docstring,
@@ -371,7 +416,7 @@ module YARDSorbet::TagUtils
371
416
 
372
417
  # Create or update a `YARD` tag with type information
373
418
  #
374
- # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#27
419
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#30
375
420
  sig do
376
421
  params(
377
422
  docstring: ::YARD::Docstring,
@@ -385,6 +430,11 @@ module YARDSorbet::TagUtils
385
430
  end
386
431
  end
387
432
 
433
+ # The `void` return type, as a constant to reduce array allocations
434
+ #
435
+ # source://yard-sorbet//lib/yard-sorbet/tag_utils.rb#10
436
+ YARDSorbet::TagUtils::VOID_RETURN_TYPE = T.let(T.unsafe(nil), Array)
437
+
388
438
  # {https://rubygems.org/gems/yard-sorbet Version history}
389
439
  #
390
440
  # source://yard-sorbet//lib/yard-sorbet/version.rb#7
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class Location < ActiveRecord::Base
5
+ sig { params(struct: T::Struct).returns(Location) }
6
+ def self.buckle(struct); end
7
+
8
+ sig { params(struct: T::Struct).returns(Location) }
9
+ def self.from_struct(struct); end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ def name; end
13
+ end
@@ -0,0 +1,16 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class Post < ActiveRecord::Base
5
+ sig { params(struct: T::Struct).returns(Post) }
6
+ def self.buckle(struct); end
7
+
8
+ sig { params(struct: T::Struct).returns(Post) }
9
+ def self.from_struct(struct); end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ def title; end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ def status; end
16
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ class User < ActiveRecord::Base
5
+ sig { params(struct: T::Struct).returns(User) }
6
+ def self.buckle(struct); end
7
+
8
+ sig { params(struct: T::Struct).returns(User) }
9
+ def self.from_struct(struct); end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ def name; end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ def age; end
16
+
17
+ sig { returns(T.nilable(Location)) }
18
+ def location; end
19
+ end
data/sorbet/rbi/todo.rbi CHANGED
@@ -3,7 +3,3 @@
3
3
  # Please instead update this file by running `bin/tapioca todo`.
4
4
 
5
5
  # typed: false
6
-
7
- module ActiveRecord::ConnectionAdapters::DatabaseStatements; end
8
- module ActiveRecord::ConnectionAdapters::SchemaStatements; end
9
- module ActiveRecord::DatabaseConfigurations::HashConfig; end
@@ -1,4 +1,18 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
- # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list)
4
+ require "active_support/lazy_load_hooks"
5
+ require "active_support/dependencies/autoload"
6
+ require "activerecord-ejection_seat/ejectable"
7
+ require "active_record/base"
8
+ require "active_model"
9
+ require "bundler"
10
+ require "debug"
11
+ require "minitest"
12
+ require "minitest/test_task"
13
+ require "minitest/autorun"
14
+ require "pathname"
15
+ require "sorbet-runtime"
16
+ require "sorbet-struct-comparable"
17
+ require "rubocop/rake_task"
18
+ require "concurrent"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-ejection_seat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max VelDink
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-22 00:00:00.000000000 Z
11
+ date: 2023-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.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: '5.2'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sorbet-runtime
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -51,6 +51,8 @@ extra_rdoc_files: []
51
51
  files:
52
52
  - ".rspec"
53
53
  - ".rubocop.yml"
54
+ - ".ruby-version"
55
+ - ".tool-versions"
54
56
  - CHANGELOG.md
55
57
  - CODE_OF_CONDUCT.md
56
58
  - Gemfile
@@ -58,7 +60,9 @@ files:
58
60
  - LICENSE.txt
59
61
  - README.md
60
62
  - Rakefile
63
+ - activerecord-ejection_seat.gemspec
61
64
  - lib/activerecord-ejection_seat.rb
65
+ - lib/activerecord-ejection_seat/attributes_builder.rb
62
66
  - lib/activerecord-ejection_seat/ejectable.rb
63
67
  - lib/activerecord-ejection_seat/props_builder.rb
64
68
  - lib/activerecord-ejection_seat/version.rb
@@ -66,9 +70,9 @@ files:
66
70
  - sorbet/rbi/annotations/activerecord.rbi
67
71
  - sorbet/rbi/annotations/activesupport.rbi
68
72
  - sorbet/rbi/annotations/rainbow.rbi
69
- - sorbet/rbi/gems/activemodel@7.0.4.rbi
70
- - sorbet/rbi/gems/activerecord@7.0.4.rbi
71
- - sorbet/rbi/gems/activesupport@7.0.4.rbi
73
+ - sorbet/rbi/gems/activemodel@7.0.4.1.rbi
74
+ - sorbet/rbi/gems/activerecord@7.0.4.1.rbi
75
+ - sorbet/rbi/gems/activesupport@7.0.4.1.rbi
72
76
  - sorbet/rbi/gems/ast@2.4.2.rbi
73
77
  - sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi
74
78
  - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
@@ -77,41 +81,39 @@ files:
77
81
  - sorbet/rbi/gems/irb@1.6.2.rbi
78
82
  - sorbet/rbi/gems/json@2.6.3.rbi
79
83
  - sorbet/rbi/gems/language_server-protocol@3.17.0.2.rbi
80
- - sorbet/rbi/gems/minitest@5.16.3.rbi
84
+ - sorbet/rbi/gems/minitest@5.17.0.rbi
81
85
  - sorbet/rbi/gems/netrc@0.11.0.rbi
82
86
  - sorbet/rbi/gems/parallel@1.22.1.rbi
83
- - sorbet/rbi/gems/parser@3.1.3.0.rbi
84
- - sorbet/rbi/gems/prettier_print@1.1.0.rbi
87
+ - sorbet/rbi/gems/parser@3.2.0.0.rbi
88
+ - sorbet/rbi/gems/prettier_print@1.2.0.rbi
85
89
  - sorbet/rbi/gems/rainbow@3.1.1.rbi
86
90
  - sorbet/rbi/gems/rake@13.0.6.rbi
87
91
  - sorbet/rbi/gems/rbi@0.0.16.rbi
88
92
  - sorbet/rbi/gems/regexp_parser@2.6.1.rbi
89
93
  - sorbet/rbi/gems/reline@0.3.2.rbi
90
94
  - sorbet/rbi/gems/rexml@3.2.5.rbi
91
- - sorbet/rbi/gems/rspec-core@3.12.0.rbi
92
- - sorbet/rbi/gems/rspec-expectations@3.12.1.rbi
93
- - sorbet/rbi/gems/rspec-mocks@3.12.1.rbi
94
- - sorbet/rbi/gems/rspec-support@3.12.0.rbi
95
- - sorbet/rbi/gems/rspec@3.12.0.rbi
96
- - sorbet/rbi/gems/rubocop-ast@1.24.0.rbi
95
+ - sorbet/rbi/gems/rubocop-ast@1.24.1.rbi
96
+ - sorbet/rbi/gems/rubocop-minitest@0.26.1.rbi
97
97
  - sorbet/rbi/gems/rubocop-rake@0.6.0.rbi
98
- - sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi
99
98
  - sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi
100
- - sorbet/rbi/gems/rubocop@1.41.0.rbi
101
- - sorbet/rbi/gems/ruby-lsp@0.3.7.rbi
99
+ - sorbet/rbi/gems/rubocop@1.43.0.rbi
100
+ - sorbet/rbi/gems/ruby-lsp@0.3.8.rbi
102
101
  - sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi
103
102
  - sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi
104
103
  - sorbet/rbi/gems/spoom@1.1.15.rbi
105
- - sorbet/rbi/gems/sqlite3@1.5.4.rbi
106
- - sorbet/rbi/gems/syntax_tree@4.3.0.rbi
107
- - sorbet/rbi/gems/tapioca@0.10.4.rbi
104
+ - sorbet/rbi/gems/sqlite3@1.6.0.rbi
105
+ - sorbet/rbi/gems/syntax_tree@5.2.0.rbi
106
+ - sorbet/rbi/gems/tapioca@0.10.5.rbi
108
107
  - sorbet/rbi/gems/thor@1.2.1.rbi
109
108
  - sorbet/rbi/gems/tzinfo@2.0.5.rbi
110
- - sorbet/rbi/gems/unicode-display_width@2.3.0.rbi
111
- - sorbet/rbi/gems/unparser@0.6.5.rbi
109
+ - sorbet/rbi/gems/unicode-display_width@2.4.2.rbi
110
+ - sorbet/rbi/gems/unparser@0.6.7.rbi
112
111
  - sorbet/rbi/gems/webrick@1.7.0.rbi
113
- - sorbet/rbi/gems/yard-sorbet@0.7.0.rbi
112
+ - sorbet/rbi/gems/yard-sorbet@0.8.0.rbi
114
113
  - sorbet/rbi/gems/yard@0.9.28.rbi
114
+ - sorbet/rbi/shims/location.rbi
115
+ - sorbet/rbi/shims/post.rbi
116
+ - sorbet/rbi/shims/user.rbi
115
117
  - sorbet/rbi/todo.rbi
116
118
  - sorbet/tapioca/config.yml
117
119
  - sorbet/tapioca/require.rb
@@ -132,14 +134,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
134
  requirements:
133
135
  - - ">="
134
136
  - !ruby/object:Gem::Version
135
- version: 2.7.0
137
+ version: 3.0.0
136
138
  required_rubygems_version: !ruby/object:Gem::Requirement
137
139
  requirements:
138
140
  - - ">="
139
141
  - !ruby/object:Gem::Version
140
142
  version: '0'
141
143
  requirements: []
142
- rubygems_version: 3.3.26
144
+ rubygems_version: 3.4.4
143
145
  signing_key:
144
146
  specification_version: 4
145
147
  summary: Eject from an ActiveRecord model to a Sorbet T::Struct, or buckle back in.
@@ -1,8 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `activemodel` gem.
5
- # Please instead update this file by running `bin/tapioca gem activemodel`.
6
-
7
- # THIS IS AN EMPTY RBI FILE.
8
- # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `activerecord` gem.
5
- # Please instead update this file by running `bin/tapioca gem activerecord`.
6
-
7
- module ActiveRecord; end
8
- module ActiveRecord::EjectionSeat; end
9
-
10
- # source://activerecord-ejection_seat/0.1.0/lib/activerecord-ejection_seat/version.rb#5
11
- ActiveRecord::EjectionSeat::VERSION = T.let(T.unsafe(nil), String)
@@ -1,93 +0,0 @@
1
- # typed: false
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `activesupport` gem.
5
- # Please instead update this file by running `bin/tapioca gem activesupport`.
6
-
7
- module ActiveSupport
8
- extend ::ActiveSupport::LazyLoadHooks
9
- end
10
-
11
- # LazyLoadHooks allows Rails to lazily load a lot of components and thus
12
- # making the app boot faster. Because of this feature now there is no need to
13
- # require <tt>ActiveRecord::Base</tt> at boot time purely to apply
14
- # configuration. Instead a hook is registered that applies configuration once
15
- # <tt>ActiveRecord::Base</tt> is loaded. Here <tt>ActiveRecord::Base</tt> is
16
- # used as example but this feature can be applied elsewhere too.
17
- #
18
- # Here is an example where on_load method is called to register a hook.
19
- #
20
- # initializer 'active_record.initialize_timezone' do
21
- # ActiveSupport.on_load(:active_record) do
22
- # self.time_zone_aware_attributes = true
23
- # self.default_timezone = :utc
24
- # end
25
- # end
26
- #
27
- # When the entirety of +ActiveRecord::Base+ has been
28
- # evaluated then run_load_hooks is invoked. The very last line of
29
- # +ActiveRecord::Base+ is:
30
- #
31
- # ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
32
- #
33
- # run_load_hooks will then execute all the hooks that were registered
34
- # with the on_load method. In the case of the above example, it will
35
- # execute the block of code that is in the +initializer+.
36
- #
37
- # Registering a hook that has already run results in that hook executing
38
- # immediately. This allows hooks to be nested for code that relies on
39
- # multiple lazily loaded components:
40
- #
41
- # initializer "action_text.renderer" do
42
- # ActiveSupport.on_load(:action_controller_base) do
43
- # ActiveSupport.on_load(:action_text_content) do
44
- # self.default_renderer = Class.new(ActionController::Base).renderer
45
- # end
46
- # end
47
- # end
48
- module ActiveSupport::LazyLoadHooks
49
- # Declares a block that will be executed when a Rails component is fully
50
- # loaded. If the component has already loaded, the block is executed
51
- # immediately.
52
- #
53
- # Options:
54
- #
55
- # * <tt>:yield</tt> - Yields the object that run_load_hooks to +block+.
56
- # * <tt>:run_once</tt> - Given +block+ will run only once.
57
- #
58
- # source://activesupport//lib/active_support/lazy_load_hooks.rb#58
59
- def on_load(name, options = T.unsafe(nil), &block); end
60
-
61
- # Executes all blocks registered to +name+ via on_load, using +base+ as the
62
- # evaluation context.
63
- #
64
- # ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
65
- #
66
- # In the case of the above example, it will execute all hooks registered
67
- # for +:active_record+ within the class +ActiveRecord::Base+.
68
- #
69
- # source://activesupport//lib/active_support/lazy_load_hooks.rb#73
70
- def run_load_hooks(name, base = T.unsafe(nil)); end
71
-
72
- private
73
-
74
- # source://activesupport//lib/active_support/lazy_load_hooks.rb#89
75
- def execute_hook(name, base, options, block); end
76
-
77
- # source://activesupport//lib/active_support/lazy_load_hooks.rb#81
78
- def with_execution_control(name, block, once); end
79
-
80
- class << self
81
- # source://activesupport//lib/active_support/lazy_load_hooks.rb#42
82
- def extended(base); end
83
- end
84
- end
85
-
86
- class LoadError < ::ScriptError
87
- include ::DidYouMean::Correctable
88
- end
89
-
90
- class NameError < ::StandardError
91
- include ::ErrorHighlight::CoreExt
92
- include ::DidYouMean::Correctable
93
- end
@@ -1,8 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `minitest` gem.
5
- # Please instead update this file by running `bin/tapioca gem minitest`.
6
-
7
- # THIS IS AN EMPTY RBI FILE.
8
- # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem