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.
- checksums.yaml +4 -4
- data/.rubocop.yml +11 -8
- data/.ruby-version +1 -0
- data/.tool-versions +1 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +42 -55
- data/README.md +16 -6
- data/Rakefile +6 -6
- data/activerecord-ejection_seat.gemspec +40 -0
- data/lib/activerecord-ejection_seat/attributes_builder.rb +42 -0
- data/lib/activerecord-ejection_seat/ejectable.rb +7 -10
- data/lib/activerecord-ejection_seat/props_builder.rb +35 -23
- data/lib/activerecord-ejection_seat/version.rb +2 -2
- data/lib/activerecord-ejection_seat.rb +6 -3
- data/sorbet/rbi/gems/activemodel@7.0.4.1.rbi +6022 -0
- data/sorbet/rbi/gems/activerecord@7.0.4.1.rbi +37791 -0
- data/sorbet/rbi/gems/activesupport@7.0.4.1.rbi +18127 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11626 -2
- data/sorbet/rbi/gems/minitest@5.17.0.rbi +2319 -0
- data/sorbet/rbi/gems/{parser@3.1.3.0.rbi → parser@3.2.0.0.rbi} +907 -821
- data/sorbet/rbi/gems/{prettier_print@1.1.0.rbi → prettier_print@1.2.0.rbi} +0 -0
- data/sorbet/rbi/gems/{rubocop-ast@1.24.0.rbi → rubocop-ast@1.24.1.rbi} +702 -458
- data/sorbet/rbi/gems/rubocop-minitest@0.26.1.rbi +2320 -0
- data/sorbet/rbi/gems/{rubocop@1.41.0.rbi → rubocop@1.43.0.rbi} +2743 -625
- data/sorbet/rbi/gems/{ruby-lsp@0.3.7.rbi → ruby-lsp@0.3.8.rbi} +2 -1
- data/sorbet/rbi/gems/{sqlite3@1.5.4.rbi → sqlite3@1.6.0.rbi} +73 -0
- data/sorbet/rbi/gems/{syntax_tree@4.3.0.rbi → syntax_tree@5.2.0.rbi} +0 -0
- data/sorbet/rbi/gems/{tapioca@0.10.4.rbi → tapioca@0.10.5.rbi} +279 -96
- data/sorbet/rbi/gems/{unicode-display_width@2.3.0.rbi → unicode-display_width@2.4.2.rbi} +26 -7
- data/sorbet/rbi/gems/{unparser@0.6.5.rbi → unparser@0.6.7.rbi} +323 -64
- data/sorbet/rbi/gems/{yard-sorbet@0.7.0.rbi → yard-sorbet@0.8.0.rbi} +91 -41
- data/sorbet/rbi/shims/location.rbi +13 -0
- data/sorbet/rbi/shims/post.rbi +16 -0
- data/sorbet/rbi/shims/user.rbi +19 -0
- data/sorbet/rbi/todo.rbi +0 -4
- data/sorbet/tapioca/require.rb +16 -2
- metadata +29 -27
- data/sorbet/rbi/gems/activemodel@7.0.4.rbi +0 -8
- data/sorbet/rbi/gems/activerecord@7.0.4.rbi +0 -11
- data/sorbet/rbi/gems/activesupport@7.0.4.rbi +0 -93
- data/sorbet/rbi/gems/minitest@5.16.3.rbi +0 -8
- data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +0 -10588
- data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +0 -7817
- data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +0 -4994
- data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +0 -1477
- data/sorbet/rbi/gems/rspec@3.12.0.rbi +0 -10
- 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#
|
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#
|
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#
|
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
|
-
|
125
|
-
|
126
|
-
|
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
|
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#
|
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#
|
136
|
-
sig { params(
|
137
|
-
def parse_sig(
|
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
|
-
#
|
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::
|
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
|
-
#
|
198
|
-
|
199
|
-
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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#
|
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
|
-
#
|
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.
|
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#
|
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#
|
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
|
data/sorbet/tapioca/require.rb
CHANGED
@@ -1,4 +1,18 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
84
|
-
- sorbet/rbi/gems/prettier_print@1.
|
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/
|
92
|
-
- sorbet/rbi/gems/
|
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.
|
101
|
-
- sorbet/rbi/gems/ruby-lsp@0.3.
|
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.
|
106
|
-
- sorbet/rbi/gems/syntax_tree@
|
107
|
-
- sorbet/rbi/gems/tapioca@0.10.
|
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.
|
111
|
-
- sorbet/rbi/gems/unparser@0.6.
|
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.
|
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:
|
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.
|
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
|