rails_type_id 0.1.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 (124) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +25 -0
  3. data/.ruby-version +1 -0
  4. data/README.md +46 -0
  5. data/Rakefile +16 -0
  6. data/lib/rails_type_id/concern.rb +129 -0
  7. data/lib/rails_type_id/require.rb +6 -0
  8. data/lib/rails_type_id/test_helper.rb +16 -0
  9. data/lib/rails_type_id/version.rb +6 -0
  10. data/lib/rails_type_id.rb +9 -0
  11. data/lib/tapioca/dsl/compilers/rails_type_id_compiler.rb +49 -0
  12. data/sig/rails_type_id.rbs +4 -0
  13. data/sorbet/config +4 -0
  14. data/sorbet/rbi/annotations/.gitattributes +1 -0
  15. data/sorbet/rbi/annotations/actionmailer.rbi +10 -0
  16. data/sorbet/rbi/annotations/actionpack.rbi +430 -0
  17. data/sorbet/rbi/annotations/actionview.rbi +75 -0
  18. data/sorbet/rbi/annotations/activejob.rbi +44 -0
  19. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  20. data/sorbet/rbi/annotations/activerecord.rbi +98 -0
  21. data/sorbet/rbi/annotations/activesupport.rbi +468 -0
  22. data/sorbet/rbi/annotations/globalid.rbi +30 -0
  23. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  24. data/sorbet/rbi/annotations/railties.rbi +61 -0
  25. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  26. data/sorbet/rbi/dsl/.gitattributes +1 -0
  27. data/sorbet/rbi/dsl/active_model/validations/callbacks.rbi +21 -0
  28. data/sorbet/rbi/dsl/active_model/validations.rbi +26 -0
  29. data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
  30. data/sorbet/rbi/dsl/rails_type_id/concern.rbi +22 -0
  31. data/sorbet/rbi/gems/.gitattributes +1 -0
  32. data/sorbet/rbi/gems/actioncable@8.0.2.rbi +3133 -0
  33. data/sorbet/rbi/gems/actionmailbox@8.0.2.rbi +991 -0
  34. data/sorbet/rbi/gems/actionmailer@8.0.2.rbi +2775 -0
  35. data/sorbet/rbi/gems/actionpack@8.0.2.rbi +21167 -0
  36. data/sorbet/rbi/gems/actiontext@8.0.2.rbi +1449 -0
  37. data/sorbet/rbi/gems/actionview@8.0.2.rbi +15789 -0
  38. data/sorbet/rbi/gems/activejob@8.0.2.rbi +2864 -0
  39. data/sorbet/rbi/gems/activemodel@8.0.2.rbi +6946 -0
  40. data/sorbet/rbi/gems/activerecord@8.0.2.rbi +42458 -0
  41. data/sorbet/rbi/gems/activestorage@8.0.2.rbi +2156 -0
  42. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +21274 -0
  43. data/sorbet/rbi/gems/ast@2.4.3.rbi +586 -0
  44. data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
  45. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  46. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +275 -0
  47. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  48. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +11734 -0
  49. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  50. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  51. data/sorbet/rbi/gems/date@3.4.1.rbi +403 -0
  52. data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
  53. data/sorbet/rbi/gems/erb@5.0.2.rbi +878 -0
  54. data/sorbet/rbi/gems/erubi@1.13.1.rbi +157 -0
  55. data/sorbet/rbi/gems/globalid@1.2.1.rbi +742 -0
  56. data/sorbet/rbi/gems/i18n@1.14.7.rbi +2383 -0
  57. data/sorbet/rbi/gems/io-console@0.8.1.rbi +9 -0
  58. data/sorbet/rbi/gems/json@2.12.2.rbi +2287 -0
  59. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  60. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +323 -0
  61. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  62. data/sorbet/rbi/gems/loofah@2.24.1.rbi +1105 -0
  63. data/sorbet/rbi/gems/mail@2.8.1.rbi +8890 -0
  64. data/sorbet/rbi/gems/marcel@1.0.4.rbi +239 -0
  65. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +173 -0
  66. data/sorbet/rbi/gems/minitest@5.25.5.rbi +2231 -0
  67. data/sorbet/rbi/gems/net-imap@0.5.9.rbi +10285 -0
  68. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +927 -0
  69. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  70. data/sorbet/rbi/gems/net-smtp@0.5.1.rbi +1240 -0
  71. data/sorbet/rbi/gems/netrc@0.11.0.rbi +177 -0
  72. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +388 -0
  73. data/sorbet/rbi/gems/nokogiri@1.18.9.rbi +8548 -0
  74. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  75. data/sorbet/rbi/gems/parser@3.3.9.0.rbi +5537 -0
  76. data/sorbet/rbi/gems/pp@0.6.2.rbi +368 -0
  77. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +477 -0
  78. data/sorbet/rbi/gems/prism@1.4.0.rbi +41790 -0
  79. data/sorbet/rbi/gems/psych@5.2.6.rbi +2542 -0
  80. data/sorbet/rbi/gems/racc@1.8.1.rbi +168 -0
  81. data/sorbet/rbi/gems/rack-session@2.1.1.rbi +722 -0
  82. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +729 -0
  83. data/sorbet/rbi/gems/rack@3.2.0.rbi +5054 -0
  84. data/sorbet/rbi/gems/rackup@2.2.1.rbi +230 -0
  85. data/sorbet/rbi/gems/rails-dom-testing@2.3.0.rbi +790 -0
  86. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +645 -0
  87. data/sorbet/rbi/gems/rails@8.0.2.rbi +9 -0
  88. data/sorbet/rbi/gems/railties@8.0.2.rbi +4014 -0
  89. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  90. data/sorbet/rbi/gems/rake@13.3.0.rbi +3039 -0
  91. data/sorbet/rbi/gems/rbi@0.3.6.rbi +5162 -0
  92. data/sorbet/rbi/gems/rbs@4.0.0.dev.4.rbi +7895 -0
  93. data/sorbet/rbi/gems/rdoc@6.14.2.rbi +12944 -0
  94. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +3833 -0
  95. data/sorbet/rbi/gems/reline@0.6.2.rbi +9 -0
  96. data/sorbet/rbi/gems/require-hooks@0.2.2.rbi +110 -0
  97. data/sorbet/rbi/gems/rexml@3.4.1.rbi +5205 -0
  98. data/sorbet/rbi/gems/rubocop-ast@1.46.0.rbi +7473 -0
  99. data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +2386 -0
  100. data/sorbet/rbi/gems/rubocop@1.79.1.rbi +63674 -0
  101. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  102. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  103. data/sorbet/rbi/gems/spoom@1.7.5.rbi +5832 -0
  104. data/sorbet/rbi/gems/sqlite3@2.7.3.rbi +1989 -0
  105. data/sorbet/rbi/gems/stringio@3.1.7.rbi +9 -0
  106. data/sorbet/rbi/gems/tapioca@0.17.7.rbi +3692 -0
  107. data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
  108. data/sorbet/rbi/gems/timeout@0.4.3.rbi +157 -0
  109. data/sorbet/rbi/gems/typeid@0.2.2.rbi +239 -0
  110. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5919 -0
  111. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  112. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  113. data/sorbet/rbi/gems/uri@1.0.3.rbi +2354 -0
  114. data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
  115. data/sorbet/rbi/gems/uuid7@0.2.0.rbi +60 -0
  116. data/sorbet/rbi/gems/websocket-driver@0.8.0.rbi +1065 -0
  117. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +117 -0
  118. data/sorbet/rbi/gems/with_model@2.2.0.rbi +282 -0
  119. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +430 -0
  120. data/sorbet/rbi/gems/yard@0.9.37.rbi +18512 -0
  121. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1196 -0
  122. data/sorbet/tapioca/config.yml +13 -0
  123. data/sorbet/tapioca/require.rb +13 -0
  124. metadata +208 -0
@@ -0,0 +1,117 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `websocket-extensions` gem.
5
+ # Please instead update this file by running `bin/tapioca gem websocket-extensions`.
6
+
7
+
8
+ # source://websocket-extensions//lib/websocket/extensions.rb#1
9
+ module WebSocket; end
10
+
11
+ # source://websocket-extensions//lib/websocket/extensions.rb#2
12
+ class WebSocket::Extensions
13
+ # @return [Extensions] a new instance of Extensions
14
+ #
15
+ # source://websocket-extensions//lib/websocket/extensions.rb#10
16
+ def initialize; end
17
+
18
+ # source://websocket-extensions//lib/websocket/extensions.rb#75
19
+ def activate(header); end
20
+
21
+ # source://websocket-extensions//lib/websocket/extensions.rb#19
22
+ def add(ext); end
23
+
24
+ # source://websocket-extensions//lib/websocket/extensions.rb#157
25
+ def close; end
26
+
27
+ # source://websocket-extensions//lib/websocket/extensions.rb#48
28
+ def generate_offer; end
29
+
30
+ # source://websocket-extensions//lib/websocket/extensions.rb#100
31
+ def generate_response(header); end
32
+
33
+ # source://websocket-extensions//lib/websocket/extensions.rb#137
34
+ def process_incoming_message(message); end
35
+
36
+ # source://websocket-extensions//lib/websocket/extensions.rb#147
37
+ def process_outgoing_message(message); end
38
+
39
+ # source://websocket-extensions//lib/websocket/extensions.rb#120
40
+ def valid_frame_rsv(frame); end
41
+
42
+ # source://websocket-extensions//lib/websocket/extensions.rb#135
43
+ def valid_frame_rsv?(frame); end
44
+
45
+ private
46
+
47
+ # source://websocket-extensions//lib/websocket/extensions.rb#167
48
+ def reserve(ext); end
49
+
50
+ # @return [Boolean]
51
+ #
52
+ # source://websocket-extensions//lib/websocket/extensions.rb#173
53
+ def reserved?(ext); end
54
+ end
55
+
56
+ # source://websocket-extensions//lib/websocket/extensions.rb#6
57
+ class WebSocket::Extensions::ExtensionError < ::ArgumentError; end
58
+
59
+ # source://websocket-extensions//lib/websocket/extensions.rb#8
60
+ WebSocket::Extensions::MESSAGE_OPCODES = T.let(T.unsafe(nil), Array)
61
+
62
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#83
63
+ class WebSocket::Extensions::Offers
64
+ # @return [Offers] a new instance of Offers
65
+ #
66
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#84
67
+ def initialize; end
68
+
69
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#101
70
+ def by_name(name); end
71
+
72
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#95
73
+ def each_offer(&block); end
74
+
75
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#89
76
+ def push(name, params); end
77
+
78
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#105
79
+ def to_a; end
80
+ end
81
+
82
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#6
83
+ class WebSocket::Extensions::Parser
84
+ class << self
85
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#17
86
+ def parse_header(header); end
87
+
88
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#60
89
+ def serialize_params(name, params); end
90
+ end
91
+ end
92
+
93
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#11
94
+ WebSocket::Extensions::Parser::EXT = T.let(T.unsafe(nil), Regexp)
95
+
96
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#12
97
+ WebSocket::Extensions::Parser::EXT_LIST = T.let(T.unsafe(nil), Regexp)
98
+
99
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#8
100
+ WebSocket::Extensions::Parser::NOTOKEN = T.let(T.unsafe(nil), Regexp)
101
+
102
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#13
103
+ WebSocket::Extensions::Parser::NUMBER = T.let(T.unsafe(nil), Regexp)
104
+
105
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#10
106
+ WebSocket::Extensions::Parser::PARAM = T.let(T.unsafe(nil), Regexp)
107
+
108
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#15
109
+ class WebSocket::Extensions::Parser::ParseError < ::ArgumentError; end
110
+
111
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#9
112
+ WebSocket::Extensions::Parser::QUOTED = T.let(T.unsafe(nil), Regexp)
113
+
114
+ # source://websocket-extensions//lib/websocket/extensions/parser.rb#7
115
+ WebSocket::Extensions::Parser::TOKEN = T.let(T.unsafe(nil), Regexp)
116
+
117
+ module WebSocket::Mask; end
@@ -0,0 +1,282 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `with_model` gem.
5
+ # Please instead update this file by running `bin/tapioca gem with_model`.
6
+
7
+
8
+ # source://with_model//lib/with_model/descendants_tracker.rb#77
9
+ class ActiveRecord::Base
10
+ include ::ActiveModel::ForbiddenAttributesProtection
11
+ include ::ActiveModel::AttributeAssignment
12
+ include ::ActiveModel::Access
13
+ include ::ActiveModel::Serialization
14
+ extend ::WithModel::DescendantsTracker::DestroyedClassesFiltering
15
+ end
16
+
17
+ # source://with_model//lib/with_model/descendants_tracker.rb#81
18
+ module ActiveSupport; end
19
+
20
+ # source://with_model//lib/with_model/descendants_tracker.rb#82
21
+ module ActiveSupport::DescendantsTracker
22
+ class << self
23
+ # Returns the value of attribute clear_disabled.
24
+ #
25
+ # source://with_model//lib/with_model/descendants_tracker.rb#84
26
+ def clear_disabled; end
27
+ end
28
+ end
29
+
30
+ # source://with_model//lib/with_model/constant_stubber.rb#3
31
+ module WithModel
32
+ # @param name [Symbol] The constant name to assign the model class to.
33
+ # @param scope Passed to `before`/`after` in the test context. RSpec only.
34
+ # @param options Passed to {WithModel::Model#initialize}.
35
+ # @param block Yielded an instance of {WithModel::Model::DSL}.
36
+ #
37
+ # source://with_model//lib/with_model.rb#39
38
+ def with_model(name, scope: T.unsafe(nil), **options, &block); end
39
+
40
+ # @param name [Symbol] The table name to create.
41
+ # @param scope Passed to `before`/`after` in the test context. Rspec only.
42
+ # @param options Passed to {WithModel::Table#initialize}.
43
+ # @param block Passed to {WithModel::Table#initialize} (like {WithModel::Model::DSL#table}).
44
+ #
45
+ # source://with_model//lib/with_model.rb#52
46
+ def with_table(name, scope: T.unsafe(nil), **options, &block); end
47
+
48
+ private
49
+
50
+ # @param object [Object] The new model object instance to create
51
+ # @param scope Passed to `before`/`after` in the test context. Rspec only.
52
+ # @param runner [Symbol] The test running, either :rspec or :minitest, defaults to :rspec
53
+ #
54
+ # source://with_model//lib/with_model.rb#64
55
+ def setup_object(object, scope: T.unsafe(nil), runner: T.unsafe(nil)); end
56
+
57
+ class << self
58
+ # source://with_model//lib/with_model.rb#31
59
+ def runner; end
60
+
61
+ # Sets the attribute runner
62
+ #
63
+ # @param value the value to set the attribute runner to.
64
+ #
65
+ # source://with_model//lib/with_model.rb#28
66
+ def runner=(_arg0); end
67
+ end
68
+ end
69
+
70
+ # source://with_model//lib/with_model/constant_stubber.rb#4
71
+ class WithModel::ConstantStubber
72
+ # @return [ConstantStubber] a new instance of ConstantStubber
73
+ #
74
+ # source://with_model//lib/with_model/constant_stubber.rb#5
75
+ def initialize(const_name); end
76
+
77
+ # source://with_model//lib/with_model/constant_stubber.rb#11
78
+ def stub_const(value); end
79
+
80
+ # source://with_model//lib/with_model/constant_stubber.rb#21
81
+ def unstub_const; end
82
+
83
+ private
84
+
85
+ # source://with_model//lib/with_model/constant_stubber.rb#43
86
+ def basename; end
87
+
88
+ # source://with_model//lib/with_model/constant_stubber.rb#39
89
+ def lookup_list; end
90
+
91
+ # source://with_model//lib/with_model/constant_stubber.rb#32
92
+ def namespace; end
93
+ end
94
+
95
+ # Based on https://github.com/rails/rails/blob/491afff27e2dd3d5f301b478b9a43d3c31709af8/activesupport/lib/active_support/descendants_tracker.rb
96
+ #
97
+ # source://with_model//lib/with_model/descendants_tracker.rb#5
98
+ module WithModel::DescendantsTracker
99
+ class << self
100
+ # source://with_model//lib/with_model/descendants_tracker.rb#48
101
+ def clear(classes); end
102
+
103
+ # source://with_model//lib/with_model/descendants_tracker.rb#57
104
+ def reject!(classes); end
105
+ end
106
+ end
107
+
108
+ # source://with_model//lib/with_model/descendants_tracker.rb#65
109
+ module WithModel::DescendantsTracker::DestroyedClassesFiltering
110
+ # source://with_model//lib/with_model/descendants_tracker.rb#70
111
+ def descendants; end
112
+
113
+ # source://with_model//lib/with_model/descendants_tracker.rb#66
114
+ def subclasses; end
115
+ end
116
+
117
+ # On TruffleRuby `ObjectSpace::WeakMap` keys are strong references.
118
+ # So we use `object_id` as a key and the actual object as a value.
119
+ #
120
+ # JRuby for now doesn't have Class#descendant, but when it will, it will likely
121
+ # have the same WeakMap semantic than Truffle so we future proof this as much as possible.
122
+ #
123
+ # source://with_model//lib/with_model/descendants_tracker.rb#9
124
+ class WithModel::DescendantsTracker::WeakSet < ::ObjectSpace::WeakMap
125
+ # source://with_model//lib/with_model/descendants_tracker.rb#12
126
+ def <<(object); end
127
+
128
+ # source://with_model//lib/with_model/descendants_tracker.rb#10
129
+ def to_a; end
130
+ end
131
+
132
+ # Extended into all ActiveRecord models created by with_model.
133
+ #
134
+ # source://with_model//lib/with_model/methods.rb#5
135
+ module WithModel::Methods
136
+ # Since model classes not created by with_model won't have this
137
+ # method, one should instead test `respond_to?(:with_model?)`.
138
+ #
139
+ # @return [Boolean]
140
+ #
141
+ # source://with_model//lib/with_model/methods.rb#8
142
+ def with_model?; end
143
+ end
144
+
145
+ # source://with_model//lib/with_model.rb#9
146
+ class WithModel::MiniTestLifeCycle < ::Module
147
+ # @return [MiniTestLifeCycle] a new instance of MiniTestLifeCycle
148
+ #
149
+ # source://with_model//lib/with_model.rb#10
150
+ def initialize(object); end
151
+
152
+ class << self
153
+ # source://with_model//lib/with_model.rb#22
154
+ def call(object); end
155
+ end
156
+ end
157
+
158
+ # In general, direct use of this class should be avoided. Instead use
159
+ # either the {WithModel high-level API} or {WithModel::Model::DSL low-level API}.
160
+ #
161
+ # source://with_model//lib/with_model/model.rb#15
162
+ class WithModel::Model
163
+ # @param name [Symbol] The constant name to assign the model class to.
164
+ # @param superclass [Class] The superclass for the created class. Should
165
+ # have `ActiveRecord::Base` as an ancestor.
166
+ # @return [Model] a new instance of Model
167
+ #
168
+ # source://with_model//lib/with_model/model.rb#21
169
+ def initialize(name, superclass: T.unsafe(nil)); end
170
+
171
+ # source://with_model//lib/with_model/model.rb#29
172
+ def create; end
173
+
174
+ # source://with_model//lib/with_model/model.rb#38
175
+ def destroy; end
176
+
177
+ # Sets the attribute model_block
178
+ #
179
+ # @param value the value to set the attribute model_block to.
180
+ #
181
+ # source://with_model//lib/with_model/model.rb#16
182
+ def model_block=(_arg0); end
183
+
184
+ # Sets the attribute table_block
185
+ #
186
+ # @param value the value to set the attribute table_block to.
187
+ #
188
+ # source://with_model//lib/with_model/model.rb#16
189
+ def table_block=(_arg0); end
190
+
191
+ # Sets the attribute table_options
192
+ #
193
+ # @param value the value to set the attribute table_options to.
194
+ #
195
+ # source://with_model//lib/with_model/model.rb#16
196
+ def table_options=(_arg0); end
197
+
198
+ private
199
+
200
+ # source://with_model//lib/with_model/model.rb#59
201
+ def cleanup_descendants_tracking; end
202
+
203
+ # source://with_model//lib/with_model/model.rb#49
204
+ def const_name; end
205
+
206
+ # source://with_model//lib/with_model/model.rb#64
207
+ def reset_dependencies_cache; end
208
+
209
+ # source://with_model//lib/with_model/model.rb#53
210
+ def setup_model; end
211
+
212
+ # source://with_model//lib/with_model/model.rb#70
213
+ def stubber; end
214
+
215
+ # source://with_model//lib/with_model/model.rb#74
216
+ def table; end
217
+
218
+ # source://with_model//lib/with_model/model.rb#78
219
+ def table_name; end
220
+ end
221
+
222
+ # source://with_model//lib/with_model/model/dsl.rb#5
223
+ class WithModel::Model::DSL
224
+ # @param model [WithModel::Model] The Model to mutate via this DSL.
225
+ # @return [DSL] a new instance of DSL
226
+ #
227
+ # source://with_model//lib/with_model/model/dsl.rb#7
228
+ def initialize(model); end
229
+
230
+ # Provide a class body for the ActiveRecord model.
231
+ #
232
+ # source://with_model//lib/with_model/model/dsl.rb#21
233
+ def model(&block); end
234
+
235
+ # Provide a schema definition for the table, passed to ActiveRecord's `create_table`.
236
+ # The table name will be auto-generated.
237
+ #
238
+ # @see https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table
239
+ #
240
+ # source://with_model//lib/with_model/model/dsl.rb#15
241
+ def table(options = T.unsafe(nil), &block); end
242
+ end
243
+
244
+ # In general, direct use of this class should be avoided. Instead use
245
+ # either the {WithModel high-level API} or {WithModel::Model::DSL low-level API}.
246
+ #
247
+ # source://with_model//lib/with_model/table.rb#8
248
+ class WithModel::Table
249
+ # @param name [Symbol] The name of the table to create.
250
+ # @param options Passed to ActiveRecord `create_table`.
251
+ # @param connection The connection to use for creating the table.
252
+ # @param block Passed to ActiveRecord `create_table`.
253
+ # @return [Table] a new instance of Table
254
+ # @see https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-create_table
255
+ #
256
+ # source://with_model//lib/with_model/table.rb#14
257
+ def initialize(name, options = T.unsafe(nil), connection: T.unsafe(nil), &block); end
258
+
259
+ # Creates the table with the initialized options. Drops the table if
260
+ # it already exists.
261
+ #
262
+ # source://with_model//lib/with_model/table.rb#23
263
+ def create; end
264
+
265
+ # source://with_model//lib/with_model/table.rb#28
266
+ def destroy; end
267
+
268
+ private
269
+
270
+ # Returns the value of attribute connection.
271
+ #
272
+ # source://with_model//lib/with_model/table.rb#34
273
+ def connection; end
274
+
275
+ # @return [Boolean]
276
+ #
277
+ # source://with_model//lib/with_model/table.rb#36
278
+ def exists?; end
279
+ end
280
+
281
+ # source://with_model//lib/with_model/version.rb#4
282
+ WithModel::VERSION = T.let(T.unsafe(nil), String)