sorbet-rails 0.5.7 → 0.5.8

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sorbet-rails/gem_plugins/shrine_plugin.rb +6 -0
  3. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +17 -7
  4. data/lib/sorbet-rails/sorbet_utils.rb +7 -1
  5. data/sorbet-rails.gemspec +1 -1
  6. data/spec/bin/run_all_specs.sh +1 -1
  7. data/spec/generators/rails-template.rb +17 -1
  8. data/spec/rails_helper.rb +1 -1
  9. data/spec/rake_rails_rbi_models_spec.rb +1 -0
  10. data/spec/sorbet_utils_spec.rb +5 -5
  11. data/spec/support/v5.0/Gemfile.lock +14 -14
  12. data/spec/support/v5.0/app/models/robe.rb +4 -0
  13. data/spec/support/v5.0/app/models/wand.rb +1 -1
  14. data/spec/support/v5.0/config/environments/development.rb +1 -1
  15. data/spec/support/v5.0/config/initializers/sorbet_rails.rb +1 -1
  16. data/spec/support/v5.0/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  17. data/spec/support/v5.0/db/schema.rb +6 -1
  18. data/spec/support/v5.1/Gemfile.lock +15 -15
  19. data/spec/support/v5.1/app/models/robe.rb +4 -0
  20. data/spec/support/v5.1/app/models/wand.rb +1 -1
  21. data/spec/support/v5.1/config/environments/development.rb +1 -1
  22. data/spec/support/v5.1/config/initializers/sorbet_rails.rb +1 -1
  23. data/spec/support/v5.1/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  24. data/spec/support/v5.1/db/schema.rb +6 -1
  25. data/spec/support/v5.2/Gemfile.lock +15 -15
  26. data/spec/support/v5.2/app/models/robe.rb +4 -0
  27. data/spec/support/v5.2/app/models/wand.rb +1 -1
  28. data/spec/support/v5.2/config/environments/development.rb +1 -1
  29. data/spec/support/v5.2/config/initializers/sorbet_rails.rb +1 -1
  30. data/spec/support/v5.2/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  31. data/spec/support/v5.2/db/schema.rb +6 -1
  32. data/spec/support/v6.0/Gemfile.lock +16 -16
  33. data/spec/support/v6.0/app/models/robe.rb +4 -0
  34. data/spec/support/v6.0/app/models/wand.rb +1 -1
  35. data/spec/support/v6.0/config/environments/development.rb +1 -1
  36. data/spec/support/v6.0/config/initializers/sorbet_rails.rb +1 -1
  37. data/spec/support/v6.0/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  38. data/spec/support/v6.0/db/schema.rb +6 -1
  39. data/spec/test_data/v5.0/expected_daily_prophet_mailer.rbi +1 -1
  40. data/spec/test_data/v5.0/expected_robe.rbi +716 -0
  41. data/spec/test_data/v5.0/expected_squib.rbi +1 -1
  42. data/spec/test_data/v5.0/expected_wizard.rbi +1 -1
  43. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +1 -1
  44. data/spec/test_data/v5.1/expected_daily_prophet_mailer.rbi +1 -1
  45. data/spec/test_data/v5.1/expected_robe.rbi +728 -0
  46. data/spec/test_data/v5.1/expected_squib.rbi +1 -1
  47. data/spec/test_data/v5.1/expected_wizard.rbi +1 -1
  48. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +1 -1
  49. data/spec/test_data/v5.2/expected_blob.rbi +1 -1
  50. data/spec/test_data/v5.2/expected_daily_prophet_mailer.rbi +1 -1
  51. data/spec/test_data/v5.2/expected_robe.rbi +728 -0
  52. data/spec/test_data/v5.2/expected_squib.rbi +3 -3
  53. data/spec/test_data/v5.2/expected_wizard.rbi +3 -3
  54. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +3 -3
  55. data/spec/test_data/v6.0/expected_blob.rbi +1 -1
  56. data/spec/test_data/v6.0/expected_daily_prophet_mailer.rbi +1 -1
  57. data/spec/test_data/v6.0/expected_robe.rbi +776 -0
  58. data/spec/test_data/v6.0/expected_squib.rbi +3 -3
  59. data/spec/test_data/v6.0/expected_wizard.rbi +3 -3
  60. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +3 -3
  61. metadata +25 -1
@@ -0,0 +1,4 @@
1
+ # typed: strong
2
+ class Robe < ApplicationRecord
3
+ belongs_to :wizard, required: false
4
+ end
@@ -11,7 +11,7 @@ class Wand < ApplicationRecord
11
11
  basilisk_horn: 3,
12
12
  }
13
13
 
14
- belongs_to :wizard
14
+ belongs_to :wizard, required: true
15
15
 
16
16
  def wood_type
17
17
  'Type ' + super
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: false
2
2
  Rails.application.configure do
3
3
  # Settings specified here will take precedence over those in config/application.rb.
4
4
 
@@ -1,3 +1,3 @@
1
- # typed: strict
1
+ # typed: false
2
2
  require(Rails.root.join('lib/mythical_rbi_plugin'))
3
3
  SorbetRails::ModelRbiFormatter.register_plugin(MythicalRbiPlugin)
@@ -0,0 +1,8 @@
1
+ # typed: true
2
+ class AddRobeToWizard < ActiveRecord::Migration[5.2]
3
+ def change
4
+ create_table :robe do |t|
5
+ t.references :wizard
6
+ end
7
+ end
8
+ end
@@ -11,7 +11,12 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 2019_06_20_000007) do
14
+ ActiveRecord::Schema.define(version: 2019_06_20_000008) do
15
+
16
+ create_table "robe", force: :cascade do |t|
17
+ t.integer "wizard_id"
18
+ t.index ["wizard_id"], name: "index_robe_on_wizard_id"
19
+ end
15
20
 
16
21
  create_table "spell_books", force: :cascade do |t|
17
22
  t.string "name"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.5.7)
4
+ sorbet-rails (0.5.8)
5
5
  parlour (~> 0.8.0)
6
6
 
7
7
  GEM
@@ -66,15 +66,15 @@ GEM
66
66
  builder (3.2.3)
67
67
  byebug (11.0.1)
68
68
  concurrent-ruby (1.1.5)
69
- crass (1.0.4)
70
- erubi (1.8.0)
69
+ crass (1.0.5)
70
+ erubi (1.9.0)
71
71
  globalid (0.4.2)
72
72
  activesupport (>= 4.2.0)
73
- i18n (1.6.0)
73
+ i18n (1.7.0)
74
74
  concurrent-ruby (~> 1.0)
75
75
  jbuilder (2.9.1)
76
76
  activesupport (>= 4.2.0)
77
- loofah (2.2.3)
77
+ loofah (2.3.0)
78
78
  crass (~> 1.0.2)
79
79
  nokogiri (>= 1.5.9)
80
80
  mail (2.7.1)
@@ -85,8 +85,8 @@ GEM
85
85
  mimemagic (0.3.3)
86
86
  mini_mime (1.0.2)
87
87
  mini_portile2 (2.4.0)
88
- minitest (5.11.3)
89
- nio4r (2.5.1)
88
+ minitest (5.12.2)
89
+ nio4r (2.5.2)
90
90
  nokogiri (1.10.4)
91
91
  mini_portile2 (~> 2.4.0)
92
92
  parlour (0.8.1)
@@ -114,8 +114,8 @@ GEM
114
114
  rails-dom-testing (2.0.3)
115
115
  activesupport (>= 4.2.0)
116
116
  nokogiri (>= 1.6)
117
- rails-html-sanitizer (1.2.0)
118
- loofah (~> 2.2, >= 2.2.2)
117
+ rails-html-sanitizer (1.3.0)
118
+ loofah (~> 2.3)
119
119
  railties (6.0.0)
120
120
  actionpack (= 6.0.0)
121
121
  activesupport (= 6.0.0)
@@ -123,12 +123,12 @@ GEM
123
123
  rake (>= 0.8.7)
124
124
  thor (>= 0.20.3, < 2.0)
125
125
  rainbow (3.0.0)
126
- rake (12.3.3)
127
- sorbet (0.4.4775)
128
- sorbet-static (= 0.4.4775)
129
- sorbet-runtime (0.4.4775)
130
- sorbet-static (0.4.4775-universal-darwin-14)
131
- sprockets (3.7.2)
126
+ rake (13.0.0)
127
+ sorbet (0.4.4878)
128
+ sorbet-static (= 0.4.4878)
129
+ sorbet-runtime (0.4.4878)
130
+ sorbet-static (0.4.4878-universal-darwin-14)
131
+ sprockets (4.0.0)
132
132
  concurrent-ruby (~> 1.0)
133
133
  rack (> 1, < 3)
134
134
  sprockets-rails (3.2.1)
@@ -148,7 +148,7 @@ GEM
148
148
  websocket-driver (0.7.1)
149
149
  websocket-extensions (>= 0.1.0)
150
150
  websocket-extensions (0.1.4)
151
- zeitwerk (2.1.10)
151
+ zeitwerk (2.2.0)
152
152
 
153
153
  PLATFORMS
154
154
  ruby
@@ -0,0 +1,4 @@
1
+ # typed: strong
2
+ class Robe < ApplicationRecord
3
+ belongs_to :wizard, required: false
4
+ end
@@ -11,7 +11,7 @@ class Wand < ApplicationRecord
11
11
  basilisk_horn: 3,
12
12
  }
13
13
 
14
- belongs_to :wizard
14
+ belongs_to :wizard, required: true
15
15
 
16
16
  def wood_type
17
17
  'Type ' + super
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: false
2
2
  Rails.application.configure do
3
3
  # Settings specified here will take precedence over those in config/application.rb.
4
4
 
@@ -1,3 +1,3 @@
1
- # typed: strict
1
+ # typed: false
2
2
  require(Rails.root.join('lib/mythical_rbi_plugin'))
3
3
  SorbetRails::ModelRbiFormatter.register_plugin(MythicalRbiPlugin)
@@ -0,0 +1,8 @@
1
+ # typed: true
2
+ class AddRobeToWizard < ActiveRecord::Migration[6.0]
3
+ def change
4
+ create_table :robe do |t|
5
+ t.references :wizard
6
+ end
7
+ end
8
+ end
@@ -11,7 +11,12 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 2019_06_20_000007) do
14
+ ActiveRecord::Schema.define(version: 2019_06_20_000008) do
15
+
16
+ create_table "robe", force: :cascade do |t|
17
+ t.integer "wizard_id"
18
+ t.index ["wizard_id"], name: "index_robe_on_wizard_id"
19
+ end
15
20
 
16
21
  create_table "spell_books", force: :cascade do |t|
17
22
  t.string "name"
@@ -3,5 +3,5 @@
3
3
  # Please rerun rake rails_rbi:mailers to regenerate.
4
4
  class DailyProphetMailer
5
5
  sig { params(wizards: T::Array[Wizard], hotnews_only: T::Boolean).returns(ActionMailer::MessageDelivery) }
6
- def self.notify_subscribers(wizards, hotnews_only); end
6
+ def self.notify_subscribers(wizards:, hotnews_only:); end
7
7
  end
@@ -0,0 +1,716 @@
1
+ # This is an autogenerated file for dynamic methods in Robe
2
+ # Please rerun rake rails_rbi:models[Robe] to regenerate.
3
+
4
+ # typed: strong
5
+ module Robe::ActiveRelation_WhereNot
6
+ sig { params(opts: T.untyped, rest: T.untyped).returns(T.self_type) }
7
+ def not(opts, *rest); end
8
+ end
9
+
10
+ module Robe::GeneratedAssociationMethods
11
+ extend T::Sig
12
+
13
+ sig { returns(T.nilable(::Wizard)) }
14
+ def wizard; end
15
+
16
+ sig { params(value: T.nilable(::Wizard)).void }
17
+ def wizard=(value); end
18
+ end
19
+
20
+ module Robe::CustomFinderMethods
21
+ sig { params(limit: Integer).returns(T::Array[Robe]) }
22
+ def first_n(limit); end
23
+
24
+ sig { params(limit: Integer).returns(T::Array[Robe]) }
25
+ def last_n(limit); end
26
+
27
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Robe]) }
28
+ def find_n(*args); end
29
+
30
+ sig { params(id: Integer).returns(T.nilable(Robe)) }
31
+ def find_by_id(id); end
32
+
33
+ sig { params(id: Integer).returns(Robe) }
34
+ def find_by_id!(id); end
35
+ end
36
+
37
+ class Robe < ApplicationRecord
38
+ include Robe::GeneratedAssociationMethods
39
+ extend Robe::CustomFinderMethods
40
+ extend T::Sig
41
+ extend T::Generic
42
+
43
+ sig { returns(Robe::ActiveRecord_Relation) }
44
+ def self.all; end
45
+
46
+ sig { params(block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_Relation) }
47
+ def self.unscoped(&block); end
48
+
49
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
50
+ def self.select(*args); end
51
+
52
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
53
+ def self.order(*args); end
54
+
55
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
56
+ def self.reorder(*args); end
57
+
58
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
59
+ def self.group(*args); end
60
+
61
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
62
+ def self.limit(*args); end
63
+
64
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
65
+ def self.offset(*args); end
66
+
67
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
68
+ def self.joins(*args); end
69
+
70
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
71
+ def self.left_joins(*args); end
72
+
73
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
74
+ def self.left_outer_joins(*args); end
75
+
76
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
77
+ def self.where(*args); end
78
+
79
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
80
+ def self.rewhere(*args); end
81
+
82
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
83
+ def self.preload(*args); end
84
+
85
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
86
+ def self.eager_load(*args); end
87
+
88
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
89
+ def self.includes(*args); end
90
+
91
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
92
+ def self.from(*args); end
93
+
94
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
95
+ def self.lock(*args); end
96
+
97
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
98
+ def self.readonly(*args); end
99
+
100
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
101
+ def self.or(*args); end
102
+
103
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
104
+ def self.having(*args); end
105
+
106
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
107
+ def self.create_with(*args); end
108
+
109
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
110
+ def self.distinct(*args); end
111
+
112
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
113
+ def self.references(*args); end
114
+
115
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
116
+ def self.none(*args); end
117
+
118
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
119
+ def self.unscope(*args); end
120
+
121
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
122
+ def self.except(*args); end
123
+
124
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_Relation) }
125
+ def self.extending(*args, &block); end
126
+
127
+ sig { params(args: T.untyped).returns(Robe) }
128
+ def self.find(*args); end
129
+
130
+ sig { params(args: T.untyped).returns(T.nilable(Robe)) }
131
+ def self.find_by(*args); end
132
+
133
+ sig { params(args: T.untyped).returns(Robe) }
134
+ def self.find_by!(*args); end
135
+
136
+ sig { returns(T.nilable(Robe)) }
137
+ def self.first; end
138
+
139
+ sig { returns(Robe) }
140
+ def self.first!; end
141
+
142
+ sig { returns(T.nilable(Robe)) }
143
+ def self.second; end
144
+
145
+ sig { returns(Robe) }
146
+ def self.second!; end
147
+
148
+ sig { returns(T.nilable(Robe)) }
149
+ def self.third; end
150
+
151
+ sig { returns(Robe) }
152
+ def self.third!; end
153
+
154
+ sig { returns(T.nilable(Robe)) }
155
+ def self.third_to_last; end
156
+
157
+ sig { returns(Robe) }
158
+ def self.third_to_last!; end
159
+
160
+ sig { returns(T.nilable(Robe)) }
161
+ def self.second_to_last; end
162
+
163
+ sig { returns(Robe) }
164
+ def self.second_to_last!; end
165
+
166
+ sig { returns(T.nilable(Robe)) }
167
+ def self.last; end
168
+
169
+ sig { returns(Robe) }
170
+ def self.last!; end
171
+
172
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
173
+ def self.exists?(conditions = nil); end
174
+
175
+ sig { params(args: T.untyped).returns(T::Boolean) }
176
+ def self.any?(*args); end
177
+
178
+ sig { params(args: T.untyped).returns(T::Boolean) }
179
+ def self.many?(*args); end
180
+
181
+ sig { params(args: T.untyped).returns(T::Boolean) }
182
+ def self.none?(*args); end
183
+
184
+ sig { params(args: T.untyped).returns(T::Boolean) }
185
+ def self.one?(*args); end
186
+
187
+ sig { params(attributes: T.untyped, block: T.untyped).returns(Robe) }
188
+ def self.create(attributes = nil, &block); end
189
+
190
+ sig { params(attributes: T.untyped, block: T.untyped).returns(Robe) }
191
+ def self.create!(attributes = nil, &block); end
192
+
193
+ sig { params(attributes: T.untyped, block: T.untyped).returns(Robe) }
194
+ def self.new(attributes = nil, &block); end
195
+ end
196
+
197
+ class Robe::ActiveRecord_Relation < ActiveRecord::Relation
198
+ include Robe::ActiveRelation_WhereNot
199
+ include Robe::CustomFinderMethods
200
+ include Enumerable
201
+ extend T::Sig
202
+ extend T::Generic
203
+ Elem = type_member(fixed: Robe)
204
+
205
+ sig { returns(Robe::ActiveRecord_Relation) }
206
+ def all; end
207
+
208
+ sig { params(block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_Relation) }
209
+ def unscoped(&block); end
210
+
211
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
212
+ def select(*args); end
213
+
214
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
215
+ def order(*args); end
216
+
217
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
218
+ def reorder(*args); end
219
+
220
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
221
+ def group(*args); end
222
+
223
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
224
+ def limit(*args); end
225
+
226
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
227
+ def offset(*args); end
228
+
229
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
230
+ def joins(*args); end
231
+
232
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
233
+ def left_joins(*args); end
234
+
235
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
236
+ def left_outer_joins(*args); end
237
+
238
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
239
+ def where(*args); end
240
+
241
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
242
+ def rewhere(*args); end
243
+
244
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
245
+ def preload(*args); end
246
+
247
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
248
+ def eager_load(*args); end
249
+
250
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
251
+ def includes(*args); end
252
+
253
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
254
+ def from(*args); end
255
+
256
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
257
+ def lock(*args); end
258
+
259
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
260
+ def readonly(*args); end
261
+
262
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
263
+ def or(*args); end
264
+
265
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
266
+ def having(*args); end
267
+
268
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
269
+ def create_with(*args); end
270
+
271
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
272
+ def distinct(*args); end
273
+
274
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
275
+ def references(*args); end
276
+
277
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
278
+ def none(*args); end
279
+
280
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
281
+ def unscope(*args); end
282
+
283
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_Relation) }
284
+ def except(*args); end
285
+
286
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_Relation) }
287
+ def extending(*args, &block); end
288
+
289
+ sig { params(args: T.untyped).returns(Robe) }
290
+ def find(*args); end
291
+
292
+ sig { params(args: T.untyped).returns(T.nilable(Robe)) }
293
+ def find_by(*args); end
294
+
295
+ sig { params(args: T.untyped).returns(Robe) }
296
+ def find_by!(*args); end
297
+
298
+ sig { returns(T.nilable(Robe)) }
299
+ def first; end
300
+
301
+ sig { returns(Robe) }
302
+ def first!; end
303
+
304
+ sig { returns(T.nilable(Robe)) }
305
+ def second; end
306
+
307
+ sig { returns(Robe) }
308
+ def second!; end
309
+
310
+ sig { returns(T.nilable(Robe)) }
311
+ def third; end
312
+
313
+ sig { returns(Robe) }
314
+ def third!; end
315
+
316
+ sig { returns(T.nilable(Robe)) }
317
+ def third_to_last; end
318
+
319
+ sig { returns(Robe) }
320
+ def third_to_last!; end
321
+
322
+ sig { returns(T.nilable(Robe)) }
323
+ def second_to_last; end
324
+
325
+ sig { returns(Robe) }
326
+ def second_to_last!; end
327
+
328
+ sig { returns(T.nilable(Robe)) }
329
+ def last; end
330
+
331
+ sig { returns(Robe) }
332
+ def last!; end
333
+
334
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
335
+ def exists?(conditions = nil); end
336
+
337
+ sig { params(args: T.untyped).returns(T::Boolean) }
338
+ def any?(*args); end
339
+
340
+ sig { params(args: T.untyped).returns(T::Boolean) }
341
+ def many?(*args); end
342
+
343
+ sig { params(args: T.untyped).returns(T::Boolean) }
344
+ def none?(*args); end
345
+
346
+ sig { params(args: T.untyped).returns(T::Boolean) }
347
+ def one?(*args); end
348
+
349
+ sig { override.params(block: T.proc.params(e: Robe).void).returns(T::Array[Robe]) }
350
+ def each(&block); end
351
+
352
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Robe]) }
353
+ def flatten(level); end
354
+
355
+ sig { returns(T::Array[Robe]) }
356
+ def to_a; end
357
+
358
+ sig do
359
+ type_parameters(:U).params(
360
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
361
+ )
362
+ .returns(T::Array[T.type_parameter(:U)])
363
+ end
364
+ def map(&blk); end
365
+ end
366
+
367
+ class Robe::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
368
+ include Robe::ActiveRelation_WhereNot
369
+ include Robe::CustomFinderMethods
370
+ include Enumerable
371
+ extend T::Sig
372
+ extend T::Generic
373
+ Elem = type_member(fixed: Robe)
374
+
375
+ sig { returns(Robe::ActiveRecord_AssociationRelation) }
376
+ def all; end
377
+
378
+ sig { params(block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_AssociationRelation) }
379
+ def unscoped(&block); end
380
+
381
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
382
+ def select(*args); end
383
+
384
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
385
+ def order(*args); end
386
+
387
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
388
+ def reorder(*args); end
389
+
390
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
391
+ def group(*args); end
392
+
393
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
394
+ def limit(*args); end
395
+
396
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
397
+ def offset(*args); end
398
+
399
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
400
+ def joins(*args); end
401
+
402
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
403
+ def left_joins(*args); end
404
+
405
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
406
+ def left_outer_joins(*args); end
407
+
408
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
409
+ def where(*args); end
410
+
411
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
412
+ def rewhere(*args); end
413
+
414
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
415
+ def preload(*args); end
416
+
417
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
418
+ def eager_load(*args); end
419
+
420
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
421
+ def includes(*args); end
422
+
423
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
424
+ def from(*args); end
425
+
426
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
427
+ def lock(*args); end
428
+
429
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
430
+ def readonly(*args); end
431
+
432
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
433
+ def or(*args); end
434
+
435
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
436
+ def having(*args); end
437
+
438
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
439
+ def create_with(*args); end
440
+
441
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
442
+ def distinct(*args); end
443
+
444
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
445
+ def references(*args); end
446
+
447
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
448
+ def none(*args); end
449
+
450
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
451
+ def unscope(*args); end
452
+
453
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
454
+ def except(*args); end
455
+
456
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_AssociationRelation) }
457
+ def extending(*args, &block); end
458
+
459
+ sig { params(args: T.untyped).returns(Robe) }
460
+ def find(*args); end
461
+
462
+ sig { params(args: T.untyped).returns(T.nilable(Robe)) }
463
+ def find_by(*args); end
464
+
465
+ sig { params(args: T.untyped).returns(Robe) }
466
+ def find_by!(*args); end
467
+
468
+ sig { returns(T.nilable(Robe)) }
469
+ def first; end
470
+
471
+ sig { returns(Robe) }
472
+ def first!; end
473
+
474
+ sig { returns(T.nilable(Robe)) }
475
+ def second; end
476
+
477
+ sig { returns(Robe) }
478
+ def second!; end
479
+
480
+ sig { returns(T.nilable(Robe)) }
481
+ def third; end
482
+
483
+ sig { returns(Robe) }
484
+ def third!; end
485
+
486
+ sig { returns(T.nilable(Robe)) }
487
+ def third_to_last; end
488
+
489
+ sig { returns(Robe) }
490
+ def third_to_last!; end
491
+
492
+ sig { returns(T.nilable(Robe)) }
493
+ def second_to_last; end
494
+
495
+ sig { returns(Robe) }
496
+ def second_to_last!; end
497
+
498
+ sig { returns(T.nilable(Robe)) }
499
+ def last; end
500
+
501
+ sig { returns(Robe) }
502
+ def last!; end
503
+
504
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
505
+ def exists?(conditions = nil); end
506
+
507
+ sig { params(args: T.untyped).returns(T::Boolean) }
508
+ def any?(*args); end
509
+
510
+ sig { params(args: T.untyped).returns(T::Boolean) }
511
+ def many?(*args); end
512
+
513
+ sig { params(args: T.untyped).returns(T::Boolean) }
514
+ def none?(*args); end
515
+
516
+ sig { params(args: T.untyped).returns(T::Boolean) }
517
+ def one?(*args); end
518
+
519
+ sig { override.params(block: T.proc.params(e: Robe).void).returns(T::Array[Robe]) }
520
+ def each(&block); end
521
+
522
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Robe]) }
523
+ def flatten(level); end
524
+
525
+ sig { returns(T::Array[Robe]) }
526
+ def to_a; end
527
+
528
+ sig do
529
+ type_parameters(:U).params(
530
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
531
+ )
532
+ .returns(T::Array[T.type_parameter(:U)])
533
+ end
534
+ def map(&blk); end
535
+ end
536
+
537
+ class Robe::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
538
+ include Robe::CustomFinderMethods
539
+ include Enumerable
540
+ extend T::Sig
541
+ extend T::Generic
542
+ Elem = type_member(fixed: Robe)
543
+
544
+ sig { returns(Robe::ActiveRecord_AssociationRelation) }
545
+ def all; end
546
+
547
+ sig { params(block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_AssociationRelation) }
548
+ def unscoped(&block); end
549
+
550
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
551
+ def select(*args); end
552
+
553
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
554
+ def order(*args); end
555
+
556
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
557
+ def reorder(*args); end
558
+
559
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
560
+ def group(*args); end
561
+
562
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
563
+ def limit(*args); end
564
+
565
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
566
+ def offset(*args); end
567
+
568
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
569
+ def joins(*args); end
570
+
571
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
572
+ def left_joins(*args); end
573
+
574
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
575
+ def left_outer_joins(*args); end
576
+
577
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
578
+ def where(*args); end
579
+
580
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
581
+ def rewhere(*args); end
582
+
583
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
584
+ def preload(*args); end
585
+
586
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
587
+ def eager_load(*args); end
588
+
589
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
590
+ def includes(*args); end
591
+
592
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
593
+ def from(*args); end
594
+
595
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
596
+ def lock(*args); end
597
+
598
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
599
+ def readonly(*args); end
600
+
601
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
602
+ def or(*args); end
603
+
604
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
605
+ def having(*args); end
606
+
607
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
608
+ def create_with(*args); end
609
+
610
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
611
+ def distinct(*args); end
612
+
613
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
614
+ def references(*args); end
615
+
616
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
617
+ def none(*args); end
618
+
619
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
620
+ def unscope(*args); end
621
+
622
+ sig { params(args: T.untyped).returns(Robe::ActiveRecord_AssociationRelation) }
623
+ def except(*args); end
624
+
625
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Robe::ActiveRecord_AssociationRelation) }
626
+ def extending(*args, &block); end
627
+
628
+ sig { params(args: T.untyped).returns(Robe) }
629
+ def find(*args); end
630
+
631
+ sig { params(args: T.untyped).returns(T.nilable(Robe)) }
632
+ def find_by(*args); end
633
+
634
+ sig { params(args: T.untyped).returns(Robe) }
635
+ def find_by!(*args); end
636
+
637
+ sig { returns(T.nilable(Robe)) }
638
+ def first; end
639
+
640
+ sig { returns(Robe) }
641
+ def first!; end
642
+
643
+ sig { returns(T.nilable(Robe)) }
644
+ def second; end
645
+
646
+ sig { returns(Robe) }
647
+ def second!; end
648
+
649
+ sig { returns(T.nilable(Robe)) }
650
+ def third; end
651
+
652
+ sig { returns(Robe) }
653
+ def third!; end
654
+
655
+ sig { returns(T.nilable(Robe)) }
656
+ def third_to_last; end
657
+
658
+ sig { returns(Robe) }
659
+ def third_to_last!; end
660
+
661
+ sig { returns(T.nilable(Robe)) }
662
+ def second_to_last; end
663
+
664
+ sig { returns(Robe) }
665
+ def second_to_last!; end
666
+
667
+ sig { returns(T.nilable(Robe)) }
668
+ def last; end
669
+
670
+ sig { returns(Robe) }
671
+ def last!; end
672
+
673
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
674
+ def exists?(conditions = nil); end
675
+
676
+ sig { params(args: T.untyped).returns(T::Boolean) }
677
+ def any?(*args); end
678
+
679
+ sig { params(args: T.untyped).returns(T::Boolean) }
680
+ def many?(*args); end
681
+
682
+ sig { params(args: T.untyped).returns(T::Boolean) }
683
+ def none?(*args); end
684
+
685
+ sig { params(args: T.untyped).returns(T::Boolean) }
686
+ def one?(*args); end
687
+
688
+ sig { override.params(block: T.proc.params(e: Robe).void).returns(T::Array[Robe]) }
689
+ def each(&block); end
690
+
691
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Robe]) }
692
+ def flatten(level); end
693
+
694
+ sig { returns(T::Array[Robe]) }
695
+ def to_a; end
696
+
697
+ sig do
698
+ type_parameters(:U).params(
699
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
700
+ )
701
+ .returns(T::Array[T.type_parameter(:U)])
702
+ end
703
+ def map(&blk); end
704
+
705
+ sig { params(records: T.any(Robe, T::Array[Robe])).returns(T.self_type) }
706
+ def <<(*records); end
707
+
708
+ sig { params(records: T.any(Robe, T::Array[Robe])).returns(T.self_type) }
709
+ def append(*records); end
710
+
711
+ sig { params(records: T.any(Robe, T::Array[Robe])).returns(T.self_type) }
712
+ def push(*records); end
713
+
714
+ sig { params(records: T.any(Robe, T::Array[Robe])).returns(T.self_type) }
715
+ def concat(*records); end
716
+ end