orthoses-rails 0.9.0 → 1.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.
- checksums.yaml +4 -4
- data/README.md +20 -65
- data/lib/generators/orthoses/rails/install_generator.rb +18 -0
- data/lib/generators/orthoses/rails/templates/rails.rake +31 -0
- data/lib/orthoses/active_record/belongs_to.rb +15 -4
- data/lib/orthoses/active_record/enum.rb +5 -0
- data/lib/orthoses/active_record/generated_attribute_methods.rb +47 -55
- data/lib/orthoses/active_record/has_many.rb +15 -4
- data/lib/orthoses/active_record/has_one.rb +12 -2
- data/lib/orthoses/active_record/relation.rb +56 -0
- data/lib/orthoses/active_record/secure_token.rb +28 -0
- data/lib/orthoses/active_record.rb +37 -0
- data/lib/orthoses/active_storage/attached/model.rb +47 -0
- data/lib/orthoses/active_storage.rb +3 -0
- data/lib/orthoses/active_support/aliasing.rb +34 -0
- data/lib/orthoses/active_support/delegation.rb +17 -6
- data/lib/orthoses/active_support/time_with_zone.rb +30 -21
- data/lib/orthoses/active_support.rb +1 -0
- data/lib/orthoses/rails/application.rb +47 -0
- data/lib/orthoses/rails/version.rb +1 -1
- data/lib/orthoses/rails.rb +4 -2
- metadata +13 -45
- data/examples/rails/Gemfile +0 -16
- data/examples/rails/Gemfile.lock +0 -179
- data/examples/rails/Rakefile +0 -328
- data/examples/rails/config/database.yml +0 -8
- data/examples/rails/config/storage.yml +0 -3
- data/examples/rails/known_sig/actionpack/7.0/action_controller/metal.rbs +0 -4
- data/examples/rails/known_sig/activemodel/7.0/active_model/serialization.rbs +0 -4
- data/examples/rails/known_sig/activemodel/7.0/active_model/validations.rbs +0 -4
- data/examples/rails/known_sig/activerecord/6.0/_active_record_relation.rbs +0 -49
- data/examples/rails/known_sig/activerecord/6.0/_active_record_relation_class_methods.rbs +0 -45
- data/examples/rails/known_sig/activerecord/6.0/active_record/result.rbs +0 -5
- data/examples/rails/known_sig/activerecord/6.1/_active_record_relation.rbs +0 -49
- data/examples/rails/known_sig/activerecord/6.1/_active_record_relation_class_methods.rbs +0 -45
- data/examples/rails/known_sig/activerecord/6.1/active_record/result.rbs +0 -5
- data/examples/rails/known_sig/activerecord/7.0/_active_record_relation.rbs +0 -49
- data/examples/rails/known_sig/activerecord/7.0/_active_record_relation_class_methods.rbs +0 -45
- data/examples/rails/known_sig/activerecord/7.0/active_record/encryption/context.rbs +0 -9
- data/examples/rails/known_sig/activerecord/7.0/active_record/result.rbs +0 -5
- data/examples/rails/known_sig/activesupport/7.0/active_support/callbacks/callback_chain.rbs +0 -9
- data/examples/rails/known_sig/activesupport/7.0/active_support/duration.rbs +0 -4
- data/examples/rails/known_sig/activesupport/7.0/active_support/hash_with_indifferent_access.rbs +0 -6
- data/examples/rails/known_sig/activesupport/7.0/active_support/multibyte/chars.rbs +0 -7
- data/examples/rails/known_sig/activesupport/7.0/active_support/time_with_zone.rbs +0 -5
- data/examples/rails/known_sig/activesupport/7.0/active_support/time_zone.rbs +0 -3
- data/examples/rails/known_sig/activesupport/7.0/date.rbs +0 -6
- data/examples/rails/known_sig/activesupport/7.0/date_and_time/zones.rbs +0 -4
- data/examples/rails/known_sig/activesupport/7.0/hash_with_indifferent_access.rbs +0 -2
- data/examples/rails/known_sig/activesupport/7.0/integer.rbs +0 -9
- data/examples/rails/known_sig/activesupport/7.0/numeric.rbs +0 -15
- data/examples/rails/known_sig/activesupport/7.0/string.rbs +0 -4
- data/examples/rails/known_sig/activesupport/7.0/time.rbs +0 -46
- data/examples/rails/tasks/action_pack.rake +0 -141
- data/examples/rails/tasks/action_view.rake +0 -77
- data/examples/rails/tasks/active_job.rake +0 -99
- data/examples/rails/tasks/active_model.rake +0 -46
- data/examples/rails/tasks/active_record.rake +0 -88
- data/examples/rails/tasks/active_storage.rake +0 -94
- data/examples/rails/tasks/active_support.rake +0 -99
- data/examples/rails/tasks/railties.rake +0 -34
- data/orthoses-rails.gemspec +0 -36
data/examples/rails/Rakefile
DELETED
@@ -1,328 +0,0 @@
|
|
1
|
-
## run `$ rake`
|
2
|
-
|
3
|
-
def switch_branch(name)
|
4
|
-
cd "_src" do
|
5
|
-
sh "git switch #{name}"
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
def generate(out_dir, version)
|
10
|
-
require 'orthoses'
|
11
|
-
require 'orthoses-rails'
|
12
|
-
require 'openssl'
|
13
|
-
require 'cgi'
|
14
|
-
require 'uri'
|
15
|
-
|
16
|
-
Orthoses.logger.level = :error
|
17
|
-
|
18
|
-
loader = -> () {
|
19
|
-
require "active_support/all"
|
20
|
-
require "active_record"
|
21
|
-
require "active_job"
|
22
|
-
require "active_model"
|
23
|
-
require "active_storage/engine"
|
24
|
-
require "action_dispatch"
|
25
|
-
begin
|
26
|
-
require "action_mailbox"
|
27
|
-
require "action_text"
|
28
|
-
rescue LoadError
|
29
|
-
end
|
30
|
-
require "action_mailer"
|
31
|
-
require "action_pack"
|
32
|
-
require "action_view"
|
33
|
-
|
34
|
-
roots = [
|
35
|
-
ActiveSupport,
|
36
|
-
ActiveModel,
|
37
|
-
ActiveJob,
|
38
|
-
ActiveRecord,
|
39
|
-
ActiveStorage,
|
40
|
-
ActionDispatch,
|
41
|
-
ActionMailer,
|
42
|
-
ActionView,
|
43
|
-
]
|
44
|
-
roots << ActionMailbox if defined?(ActionMailbox)
|
45
|
-
roots << ActionText if defined?(ActionText)
|
46
|
-
|
47
|
-
roots.each do |rails_mod|
|
48
|
-
rails_mod.eager_load!
|
49
|
-
Orthoses::Utils.each_const_recursive(rails_mod, on_error: -> (e) {
|
50
|
-
Orthoses.logger.warn "skip load const by [#{e.root}][#{e.const}](#{e.error.class})#{e.error.message}"
|
51
|
-
})
|
52
|
-
v = rails_mod.respond_to?(:version) ? rails_mod.version : nil
|
53
|
-
puts "loaded #{rails_mod}: v#{v}"
|
54
|
-
end
|
55
|
-
eval(<<~RUBY)
|
56
|
-
module Dummy
|
57
|
-
class Application < Rails::Application
|
58
|
-
config.load_defaults #{version.to_s}
|
59
|
-
config.active_storage.service = :local
|
60
|
-
end
|
61
|
-
end
|
62
|
-
RUBY
|
63
|
-
ENV['RAILS_ENV'] = 'development'
|
64
|
-
Rails.application.initialize!
|
65
|
-
}
|
66
|
-
Orthoses::Builder.new do
|
67
|
-
use Orthoses::CreateFileByName,
|
68
|
-
base_dir: "#{out_dir}/#{version}",
|
69
|
-
header: "# !!! GENERATED CODE !!!\n# Please see generators/rails-generator"
|
70
|
-
use Orthoses::Filter do |name, content|
|
71
|
-
# OMG, both ERB and Erb are exist...
|
72
|
-
return false if name.start_with?("Erb")
|
73
|
-
|
74
|
-
# ArgumentError
|
75
|
-
return false if name.start_with?("I18n::Tests")
|
76
|
-
|
77
|
-
# FIXME: too hard
|
78
|
-
return false if name.include?("::Generators")
|
79
|
-
|
80
|
-
# Ignore known sig
|
81
|
-
return false if Orthoses::Utils.rbs_defined_class?(name, collection: true) && content.body.empty?
|
82
|
-
|
83
|
-
true
|
84
|
-
end
|
85
|
-
use Orthoses::Constant,
|
86
|
-
strict: false,
|
87
|
-
if: -> (current, const, _val, _rbs) {
|
88
|
-
!Orthoses::Utils.rbs_defined_const?("#{current}::#{const}", collection: true)
|
89
|
-
},
|
90
|
-
on_error: -> (e) {
|
91
|
-
Orthoses.logger.warn "[Orthoses::Constant] skip load const by #{e.root}[::#{e.const}] (#{e.error.class}) #{e.error.message}"
|
92
|
-
}
|
93
|
-
use Orthoses::ActiveSupport::ClassAttribute
|
94
|
-
use Orthoses::ActiveSupport::Delegation
|
95
|
-
use Orthoses::ActiveSupport::MattrAccessor
|
96
|
-
use Orthoses::ActiveSupport::TimeWithZone
|
97
|
-
use Orthoses::ActiveRecord::QueryMethods
|
98
|
-
use Orthoses::LoadRBS,
|
99
|
-
paths: -> { Orthoses::PathHelper.best_version_paths(::ActiveRecord::VERSION::STRING, "known_sig/activerecord") }
|
100
|
-
use Orthoses::LoadRBS,
|
101
|
-
paths: -> { Orthoses::PathHelper.best_version_paths(::ActiveModel::VERSION::STRING, "known_sig/activemodel") }
|
102
|
-
use Orthoses::LoadRBS,
|
103
|
-
paths: -> { Orthoses::PathHelper.best_version_paths(::ActiveSupport::VERSION::STRING, "known_sig/activesupport") }
|
104
|
-
# # require in method
|
105
|
-
use Orthoses::Tap do |store|
|
106
|
-
store.delete("DummyERB")
|
107
|
-
store.delete("DummyCompiler")
|
108
|
-
end
|
109
|
-
# see activerecord/lib/active_record/migration/compatibility.rb
|
110
|
-
use Orthoses::Tap do |store|
|
111
|
-
# TODO: make middleware
|
112
|
-
if defined?(ActiveRecord::Migration::Compatibility::V7_0)
|
113
|
-
store["ActiveRecord::Migration::Compatibility::V6_1"].header = nil
|
114
|
-
store["ActiveRecord::Migration::Compatibility::V7_0"].header = "class ActiveRecord::Migration::Compatibility::V7_0 < ActiveRecord::Migration::Current"
|
115
|
-
elsif defined?(ActiveRecord::Migration::Compatibility::V6_1)
|
116
|
-
store["ActiveRecord::Migration::Compatibility::V6_0"].header = nil
|
117
|
-
store["ActiveRecord::Migration::Compatibility::V6_1"].header = "class ActiveRecord::Migration::Compatibility::V6_1 < ActiveRecord::Migration::Current"
|
118
|
-
elsif defined?(ActiveRecord::Migration::Compatibility::V6_0)
|
119
|
-
store["ActiveRecord::Migration::Compatibility::V5_2"].header = nil
|
120
|
-
store["ActiveRecord::Migration::Compatibility::V6_0"].header = "class ActiveRecord::Migration::Compatibility::V6_0 < ActiveRecord::Migration::Current"
|
121
|
-
elsif defined?(ActiveRecord::Migration::Compatibility::V5_2)
|
122
|
-
store["ActiveRecord::Migration::Compatibility::V5_1"].header = nil
|
123
|
-
store["ActiveRecord::Migration::Compatibility::V5_2"].header = "class ActiveRecord::Migration::Compatibility::V5_2 < ActiveRecord::Migration::Current"
|
124
|
-
end
|
125
|
-
end
|
126
|
-
# class_eval in #each
|
127
|
-
# see activerecord/lib/active_record/migration/command_recorder.rb
|
128
|
-
use Orthoses::Tap do |store|
|
129
|
-
content = store["ActiveRecord::Migration::CommandRecorder"]
|
130
|
-
ActiveRecord::Migration::CommandRecorder::ReversibleAndIrreversibleMethods.each do |method|
|
131
|
-
content << "def #{method}: (*untyped args) ?{ () -> void } -> untyped"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
# class_eval in #each
|
135
|
-
# see activerecord/lib/active_record/migration/command_recorder.rb
|
136
|
-
use Orthoses::Tap do |store|
|
137
|
-
content = store["ActiveRecord::Migration::CommandRecorder::StraightReversions"]
|
138
|
-
{
|
139
|
-
execute_block: :execute_block,
|
140
|
-
create_table: :drop_table,
|
141
|
-
create_join_table: :drop_join_table,
|
142
|
-
add_column: :remove_column,
|
143
|
-
add_index: :remove_index,
|
144
|
-
add_timestamps: :remove_timestamps,
|
145
|
-
add_reference: :remove_reference,
|
146
|
-
add_foreign_key: :remove_foreign_key,
|
147
|
-
add_check_constraint: :remove_check_constraint,
|
148
|
-
enable_extension: :disable_extension
|
149
|
-
}.each do |cmd, inv|
|
150
|
-
[[inv, cmd], [cmd, inv]].uniq.each do |method, inverse|
|
151
|
-
content << "def invert_#{method}: (untyped args) ?{ () -> void } -> [Symbol, untyped, Proc]"
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
# singleton_class.class_eval in included
|
156
|
-
use Orthoses::Tap do |store|
|
157
|
-
store["ActiveRecord::ModelSchema"].body.tap do |body|
|
158
|
-
body.delete("alias _inheritance_column= inheritance_column=")
|
159
|
-
body.delete("alias inheritance_column= real_inheritance_column=")
|
160
|
-
end
|
161
|
-
end
|
162
|
-
# alias in included block
|
163
|
-
use Orthoses::Tap do |store|
|
164
|
-
store["ActiveRecord::ConnectionAdapters::ColumnMethods"].body.tap do |body|
|
165
|
-
body.delete("alias blob binary")
|
166
|
-
body.delete("alias numeric decimal")
|
167
|
-
end
|
168
|
-
end
|
169
|
-
# > Use async_exec instead of exec_params on pg versions before 1.1
|
170
|
-
use Orthoses::Tap do |store|
|
171
|
-
store["PG::Connection"].body.clear
|
172
|
-
end
|
173
|
-
# Entrust to auto super class
|
174
|
-
use Orthoses::Tap do |store|
|
175
|
-
store.each do |_, content|
|
176
|
-
if content.header&.include?(" < Type::")
|
177
|
-
content.header.sub!(/ < Type::(.*)/, " < ::ActiveModel::Type::\\1")
|
178
|
-
end
|
179
|
-
# delegate to auto_header
|
180
|
-
if content.header&.start_with?("class Arel")
|
181
|
-
content.header = nil
|
182
|
-
end
|
183
|
-
end
|
184
|
-
store["ActionView::Helpers::Tags::CollectionRadioButtons::RadioButtonBuilder"].header = nil
|
185
|
-
store["ActionView::Helpers::Tags::CollectionCheckBoxes::CheckBoxBuilder"].header = nil
|
186
|
-
store["ActionView::SyntaxErrorInTemplate"].header = nil
|
187
|
-
# MigrationProxy cannot resolve name since class alias.
|
188
|
-
store["ActiveRecord::NullMigration"].header = nil
|
189
|
-
end
|
190
|
-
use Orthoses::DelegateClass
|
191
|
-
use Orthoses::Attribute
|
192
|
-
use Orthoses::Railties::Mixin, callback: -> (railties_mixin) {
|
193
|
-
Orthoses::CreateFileByName.new(
|
194
|
-
->{ railties_mixin },
|
195
|
-
base_dir: "#{out_dir}/#{version}/railties_mixin",
|
196
|
-
header: "# !!! GENERATED CODE !!!\n# Please see generators/rails-generator"
|
197
|
-
).call
|
198
|
-
}
|
199
|
-
use Orthoses::Mixin,
|
200
|
-
if: -> (base_mod, how, mod) {
|
201
|
-
mod != Enumerable # TODO
|
202
|
-
}
|
203
|
-
use Orthoses::RBSPrototypeRB,
|
204
|
-
paths: Dir.glob('_src/{railties,action{cable,mailbox,mailer,pack,text,view},active{job,model,record,storage,support}}/{app,lib}/**/*.rb'),
|
205
|
-
constant_filter: -> (member) { false },
|
206
|
-
mixin_filter: -> (member) { false },
|
207
|
-
attribute_filter: -> (member) { false }
|
208
|
-
use Orthoses::Autoload
|
209
|
-
run loader
|
210
|
-
end.call
|
211
|
-
|
212
|
-
# $ cat out/7.0/**/*.rbs | wc
|
213
|
-
# 69763 339342 2606899
|
214
|
-
end
|
215
|
-
|
216
|
-
def generate_test_script(gem:, version:, export:, stdlib_dependencies:, gem_dependencies:, rails_dependencies:)
|
217
|
-
Pathname(export).join('_scripts').tap(&:mkdir).join('test').write(<<~SHELL)
|
218
|
-
#!/usr/bin/env bash
|
219
|
-
|
220
|
-
# !!! GENERATED CODE !!!
|
221
|
-
# Please see generators/rails-generator
|
222
|
-
|
223
|
-
# set -eou => Exit command with non-zero status code, Output logs of every command executed, Treat unset variables as an error when substituting.
|
224
|
-
set -eou pipefail
|
225
|
-
# Internal Field Separator - Linux shell variable
|
226
|
-
IFS=$'\n\t'
|
227
|
-
# Print shell input lines
|
228
|
-
set -v
|
229
|
-
|
230
|
-
# Set RBS_DIR variable to change directory to execute type checks using `steep check`
|
231
|
-
RBS_DIR=$(cd $(dirname $0)/..; pwd)
|
232
|
-
# Set REPO_DIR variable to validate RBS files added to the corresponding folder
|
233
|
-
REPO_DIR=$(cd $(dirname $0)/../../..; pwd)
|
234
|
-
# Validate RBS files, using the bundler environment present
|
235
|
-
bundle exec rbs --repo=$REPO_DIR #{stdlib_dependencies.map{"-r #{_1}"}.join(" ")} \\
|
236
|
-
#{gem_dependencies.map{"-r #{_1}"}.join(" ")} \\
|
237
|
-
-r #{gem} validate --silent
|
238
|
-
|
239
|
-
cd ${RBS_DIR}/_test
|
240
|
-
# Run type checks
|
241
|
-
bundle exec steep check
|
242
|
-
SHELL
|
243
|
-
|
244
|
-
sh "chmod +x #{Pathname(export).join('_scripts').join('test')}"
|
245
|
-
|
246
|
-
Pathname(export).join('_test').tap(&:mkdir).join('Steepfile').write(<<~RUBY)
|
247
|
-
# !!! GENERATED CODE !!!
|
248
|
-
# Please see generators/rails-generator
|
249
|
-
|
250
|
-
D = Steep::Diagnostic
|
251
|
-
|
252
|
-
target :test do
|
253
|
-
signature "."
|
254
|
-
check "."
|
255
|
-
|
256
|
-
repo_path "../../../"
|
257
|
-
|
258
|
-
#{stdlib_dependencies.map{" library \"#{_1}\""}.join("\n")}
|
259
|
-
#{gem_dependencies.map{" library \"#{_1}\""}.join("\n")}
|
260
|
-
|
261
|
-
library "#{gem}:#{version}"
|
262
|
-
|
263
|
-
configure_code_diagnostics(D::Ruby.all_error)
|
264
|
-
end
|
265
|
-
RUBY
|
266
|
-
end
|
267
|
-
|
268
|
-
def generate_manifest(export:, stdlib_dependencies:)
|
269
|
-
Pathname(export).join('manifest.yaml').write(<<~YAML)
|
270
|
-
dependencies:
|
271
|
-
#{stdlib_dependencies.map{"- name: #{_1}"}.join("\n ")}
|
272
|
-
YAML
|
273
|
-
end
|
274
|
-
|
275
|
-
VERSIONS = %w[
|
276
|
-
6.0
|
277
|
-
6.1
|
278
|
-
7.0
|
279
|
-
]
|
280
|
-
Object.private_constant :VERSIONS
|
281
|
-
|
282
|
-
tasks = Dir["tasks/*"]
|
283
|
-
tasks.each do |task|
|
284
|
-
load task
|
285
|
-
end
|
286
|
-
GEMS = tasks.map { File.basename(_1).sub(/\.rake/, '') }
|
287
|
-
Object.private_constant :GEMS
|
288
|
-
|
289
|
-
task :clean do
|
290
|
-
FileUtils.rm_rf("out")
|
291
|
-
end
|
292
|
-
|
293
|
-
VERSIONS.each do |version|
|
294
|
-
namespace version do
|
295
|
-
desc "run all version=#{version}"
|
296
|
-
task :all => [
|
297
|
-
:generate,
|
298
|
-
:export,
|
299
|
-
:validate,
|
300
|
-
# :install,
|
301
|
-
]
|
302
|
-
|
303
|
-
desc "run export version=#{version}"
|
304
|
-
task :export => GEMS.map{"#{version}:#{_1}:export"}
|
305
|
-
|
306
|
-
desc "run validate version=#{version}"
|
307
|
-
task :validate => GEMS.map{"#{version}:#{_1}:validate"}
|
308
|
-
|
309
|
-
desc "run install version=#{version}"
|
310
|
-
task :install => GEMS.map{"#{version}:#{_1}:install"}
|
311
|
-
|
312
|
-
desc "generate version=#{version}"
|
313
|
-
task :generate do |t|
|
314
|
-
switch_branch("#{version.tr('.', '-')}-stable")
|
315
|
-
sh "bundle install"
|
316
|
-
sh "bundle exec rake #{t.name}_exec"
|
317
|
-
end
|
318
|
-
|
319
|
-
task :generate_exec do
|
320
|
-
generate("out", version)
|
321
|
-
end
|
322
|
-
end
|
323
|
-
end
|
324
|
-
|
325
|
-
task default: [
|
326
|
-
:clean,
|
327
|
-
*(VERSIONS.map {"#{_1}:all"})
|
328
|
-
]
|
@@ -1,49 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation[Model, PrimaryKey]
|
2
|
-
def all: () -> self
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> self
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> self
|
8
|
-
def not: (*untyped) -> self
|
9
|
-
def exists?: (*untyped) -> bool
|
10
|
-
def order: (*untyped) -> self
|
11
|
-
def group: (*Symbol | String) -> untyped
|
12
|
-
def distinct: () -> self
|
13
|
-
def or: (self) -> self
|
14
|
-
def merge: (self) -> self
|
15
|
-
def joins: (*String | Symbol) -> self
|
16
|
-
| (Hash[untyped, untyped]) -> self
|
17
|
-
def left_joins: (*String | Symbol) -> self
|
18
|
-
| (Hash[untyped, untyped]) -> self
|
19
|
-
def left_outer_joins: (*String | Symbol) -> self
|
20
|
-
| (Hash[untyped, untyped]) -> self
|
21
|
-
def includes: (*String | Symbol) -> self
|
22
|
-
| (Hash[untyped, untyped]) -> self
|
23
|
-
def eager_load: (*String | Symbol) -> self
|
24
|
-
| (Hash[untyped, untyped]) -> self
|
25
|
-
def preload: (*String | Symbol) -> self
|
26
|
-
| (Hash[untyped, untyped]) -> self
|
27
|
-
def find_by: (*untyped) -> Model?
|
28
|
-
def find_by!: (*untyped) -> Model
|
29
|
-
def find: (PrimaryKey id) -> Model
|
30
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
31
|
-
| (*PrimaryKey) -> Array[Model]
|
32
|
-
| () { (Model) -> boolish } -> Model?
|
33
|
-
def first: () -> Model?
|
34
|
-
| (Integer count) -> Array[Model]
|
35
|
-
def first!: () -> Model
|
36
|
-
def last: () -> Model?
|
37
|
-
| (Integer count) -> Array[Model]
|
38
|
-
def last!: () -> Model
|
39
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
40
|
-
def limit!: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
41
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
42
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
43
|
-
def destroy_all: () -> untyped
|
44
|
-
def delete_all: () -> untyped
|
45
|
-
def update_all: (*untyped) -> untyped
|
46
|
-
def each: () { (Model) -> void } -> self
|
47
|
-
def select: (*Symbol | String) -> self
|
48
|
-
| () { (Model) -> boolish } -> Array[Model]
|
49
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation_ClassMethods[Model, Relation, PrimaryKey]
|
2
|
-
def all: () -> Relation
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> Relation
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> Relation
|
8
|
-
def exists?: (*untyped) -> bool
|
9
|
-
def order: (*untyped) -> Relation
|
10
|
-
def group: (*Symbol | String) -> untyped
|
11
|
-
def distinct: () -> self
|
12
|
-
def or: (Relation) -> Relation
|
13
|
-
def merge: (Relation) -> Relation
|
14
|
-
def joins: (*String | Symbol) -> self
|
15
|
-
| (Hash[untyped, untyped]) -> self
|
16
|
-
def left_joins: (*String | Symbol) -> self
|
17
|
-
| (Hash[untyped, untyped]) -> self
|
18
|
-
def left_outer_joins: (*String | Symbol) -> self
|
19
|
-
| (Hash[untyped, untyped]) -> self
|
20
|
-
def includes: (*String | Symbol) -> self
|
21
|
-
| (Hash[untyped, untyped]) -> self
|
22
|
-
def eager_load: (*String | Symbol) -> self
|
23
|
-
| (Hash[untyped, untyped]) -> self
|
24
|
-
def preload: (*String | Symbol) -> self
|
25
|
-
| (Hash[untyped, untyped]) -> self
|
26
|
-
def find_by: (*untyped) -> Model?
|
27
|
-
def find_by!: (*untyped) -> Model
|
28
|
-
def find: (PrimaryKey id) -> Model
|
29
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
30
|
-
| (*PrimaryKey) -> Array[Model]
|
31
|
-
def first: () -> Model?
|
32
|
-
| (Integer count) -> Array[Model]
|
33
|
-
def first!: () -> Model
|
34
|
-
def last: () -> Model?
|
35
|
-
| (Integer count) -> Array[Model]
|
36
|
-
def last!: () -> Model
|
37
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> Relation
|
38
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
39
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
40
|
-
def destroy_all: () -> untyped
|
41
|
-
def delete_all: () -> untyped
|
42
|
-
def update_all: (*untyped) -> untyped
|
43
|
-
def select: (*Symbol | String) -> Relation
|
44
|
-
| () { (Model) -> boolish } -> Array[Model]
|
45
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation[Model, PrimaryKey]
|
2
|
-
def all: () -> self
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> self
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> self
|
8
|
-
def not: (*untyped) -> self
|
9
|
-
def exists?: (*untyped) -> bool
|
10
|
-
def order: (*untyped) -> self
|
11
|
-
def group: (*Symbol | String) -> untyped
|
12
|
-
def distinct: () -> self
|
13
|
-
def or: (self) -> self
|
14
|
-
def merge: (self) -> self
|
15
|
-
def joins: (*String | Symbol) -> self
|
16
|
-
| (Hash[untyped, untyped]) -> self
|
17
|
-
def left_joins: (*String | Symbol) -> self
|
18
|
-
| (Hash[untyped, untyped]) -> self
|
19
|
-
def left_outer_joins: (*String | Symbol) -> self
|
20
|
-
| (Hash[untyped, untyped]) -> self
|
21
|
-
def includes: (*String | Symbol) -> self
|
22
|
-
| (Hash[untyped, untyped]) -> self
|
23
|
-
def eager_load: (*String | Symbol) -> self
|
24
|
-
| (Hash[untyped, untyped]) -> self
|
25
|
-
def preload: (*String | Symbol) -> self
|
26
|
-
| (Hash[untyped, untyped]) -> self
|
27
|
-
def find_by: (*untyped) -> Model?
|
28
|
-
def find_by!: (*untyped) -> Model
|
29
|
-
def find: (PrimaryKey id) -> Model
|
30
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
31
|
-
| (*PrimaryKey) -> Array[Model]
|
32
|
-
| () { (Model) -> boolish } -> Model?
|
33
|
-
def first: () -> Model?
|
34
|
-
| (Integer count) -> Array[Model]
|
35
|
-
def first!: () -> Model
|
36
|
-
def last: () -> Model?
|
37
|
-
| (Integer count) -> Array[Model]
|
38
|
-
def last!: () -> Model
|
39
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
40
|
-
def limit!: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
41
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
42
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
43
|
-
def destroy_all: () -> untyped
|
44
|
-
def delete_all: () -> untyped
|
45
|
-
def update_all: (*untyped) -> untyped
|
46
|
-
def each: () { (Model) -> void } -> self
|
47
|
-
def select: (*Symbol | String) -> self
|
48
|
-
| () { (Model) -> boolish } -> Array[Model]
|
49
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation_ClassMethods[Model, Relation, PrimaryKey]
|
2
|
-
def all: () -> Relation
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> Relation
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> Relation
|
8
|
-
def exists?: (*untyped) -> bool
|
9
|
-
def order: (*untyped) -> Relation
|
10
|
-
def group: (*Symbol | String) -> untyped
|
11
|
-
def distinct: () -> self
|
12
|
-
def or: (Relation) -> Relation
|
13
|
-
def merge: (Relation) -> Relation
|
14
|
-
def joins: (*String | Symbol) -> self
|
15
|
-
| (Hash[untyped, untyped]) -> self
|
16
|
-
def left_joins: (*String | Symbol) -> self
|
17
|
-
| (Hash[untyped, untyped]) -> self
|
18
|
-
def left_outer_joins: (*String | Symbol) -> self
|
19
|
-
| (Hash[untyped, untyped]) -> self
|
20
|
-
def includes: (*String | Symbol) -> self
|
21
|
-
| (Hash[untyped, untyped]) -> self
|
22
|
-
def eager_load: (*String | Symbol) -> self
|
23
|
-
| (Hash[untyped, untyped]) -> self
|
24
|
-
def preload: (*String | Symbol) -> self
|
25
|
-
| (Hash[untyped, untyped]) -> self
|
26
|
-
def find_by: (*untyped) -> Model?
|
27
|
-
def find_by!: (*untyped) -> Model
|
28
|
-
def find: (PrimaryKey id) -> Model
|
29
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
30
|
-
| (*PrimaryKey) -> Array[Model]
|
31
|
-
def first: () -> Model?
|
32
|
-
| (Integer count) -> Array[Model]
|
33
|
-
def first!: () -> Model
|
34
|
-
def last: () -> Model?
|
35
|
-
| (Integer count) -> Array[Model]
|
36
|
-
def last!: () -> Model
|
37
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> Relation
|
38
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
39
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
40
|
-
def destroy_all: () -> untyped
|
41
|
-
def delete_all: () -> untyped
|
42
|
-
def update_all: (*untyped) -> untyped
|
43
|
-
def select: (*Symbol | String) -> Relation
|
44
|
-
| () { (Model) -> boolish } -> Array[Model]
|
45
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation[Model, PrimaryKey]
|
2
|
-
def all: () -> self
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> self
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> self
|
8
|
-
def not: (*untyped) -> self
|
9
|
-
def exists?: (*untyped) -> bool
|
10
|
-
def order: (*untyped) -> self
|
11
|
-
def group: (*Symbol | String) -> untyped
|
12
|
-
def distinct: () -> self
|
13
|
-
def or: (self) -> self
|
14
|
-
def merge: (self) -> self
|
15
|
-
def joins: (*String | Symbol) -> self
|
16
|
-
| (Hash[untyped, untyped]) -> self
|
17
|
-
def left_joins: (*String | Symbol) -> self
|
18
|
-
| (Hash[untyped, untyped]) -> self
|
19
|
-
def left_outer_joins: (*String | Symbol) -> self
|
20
|
-
| (Hash[untyped, untyped]) -> self
|
21
|
-
def includes: (*String | Symbol) -> self
|
22
|
-
| (Hash[untyped, untyped]) -> self
|
23
|
-
def eager_load: (*String | Symbol) -> self
|
24
|
-
| (Hash[untyped, untyped]) -> self
|
25
|
-
def preload: (*String | Symbol) -> self
|
26
|
-
| (Hash[untyped, untyped]) -> self
|
27
|
-
def find_by: (*untyped) -> Model?
|
28
|
-
def find_by!: (*untyped) -> Model
|
29
|
-
def find: (PrimaryKey id) -> Model
|
30
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
31
|
-
| (*PrimaryKey) -> Array[Model]
|
32
|
-
| () { (Model) -> boolish } -> Model?
|
33
|
-
def first: () -> Model?
|
34
|
-
| (Integer count) -> Array[Model]
|
35
|
-
def first!: () -> Model
|
36
|
-
def last: () -> Model?
|
37
|
-
| (Integer count) -> Array[Model]
|
38
|
-
def last!: () -> Model
|
39
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
40
|
-
def limit!: (Integer | Arel::Nodes::SqlLiteral | nil) -> self
|
41
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
42
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
43
|
-
def destroy_all: () -> untyped
|
44
|
-
def delete_all: () -> untyped
|
45
|
-
def update_all: (*untyped) -> untyped
|
46
|
-
def each: () { (Model) -> void } -> self
|
47
|
-
def select: (*Symbol | String) -> self
|
48
|
-
| () { (Model) -> boolish } -> Array[Model]
|
49
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
interface _ActiveRecord_Relation_ClassMethods[Model, Relation, PrimaryKey]
|
2
|
-
def all: () -> Relation
|
3
|
-
def ids: () -> Array[PrimaryKey]
|
4
|
-
def none: () -> Relation
|
5
|
-
def pluck: (Symbol | String column) -> Array[untyped]
|
6
|
-
| (*Symbol | String columns) -> Array[Array[untyped]]
|
7
|
-
def where: (*untyped) -> Relation
|
8
|
-
def exists?: (*untyped) -> bool
|
9
|
-
def order: (*untyped) -> Relation
|
10
|
-
def group: (*Symbol | String) -> untyped
|
11
|
-
def distinct: () -> self
|
12
|
-
def or: (Relation) -> Relation
|
13
|
-
def merge: (Relation) -> Relation
|
14
|
-
def joins: (*String | Symbol) -> self
|
15
|
-
| (Hash[untyped, untyped]) -> self
|
16
|
-
def left_joins: (*String | Symbol) -> self
|
17
|
-
| (Hash[untyped, untyped]) -> self
|
18
|
-
def left_outer_joins: (*String | Symbol) -> self
|
19
|
-
| (Hash[untyped, untyped]) -> self
|
20
|
-
def includes: (*String | Symbol) -> self
|
21
|
-
| (Hash[untyped, untyped]) -> self
|
22
|
-
def eager_load: (*String | Symbol) -> self
|
23
|
-
| (Hash[untyped, untyped]) -> self
|
24
|
-
def preload: (*String | Symbol) -> self
|
25
|
-
| (Hash[untyped, untyped]) -> self
|
26
|
-
def find_by: (*untyped) -> Model?
|
27
|
-
def find_by!: (*untyped) -> Model
|
28
|
-
def find: (PrimaryKey id) -> Model
|
29
|
-
| (Array[PrimaryKey]) -> Array[Model]
|
30
|
-
| (*PrimaryKey) -> Array[Model]
|
31
|
-
def first: () -> Model?
|
32
|
-
| (Integer count) -> Array[Model]
|
33
|
-
def first!: () -> Model
|
34
|
-
def last: () -> Model?
|
35
|
-
| (Integer count) -> Array[Model]
|
36
|
-
def last!: () -> Model
|
37
|
-
def limit: (Integer | Arel::Nodes::SqlLiteral | nil) -> Relation
|
38
|
-
def find_each: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (Model) -> void } -> nil
|
39
|
-
def find_in_batches: (?batch_size: Integer, ?start: Integer, ?finish: Integer, ?error_on_ignore: bool) { (self) -> void } -> nil
|
40
|
-
def destroy_all: () -> untyped
|
41
|
-
def delete_all: () -> untyped
|
42
|
-
def update_all: (*untyped) -> untyped
|
43
|
-
def select: (*Symbol | String) -> Relation
|
44
|
-
| () { (Model) -> boolish } -> Array[Model]
|
45
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
# attr_accessor in #each
|
2
|
-
class ActiveRecord::Encryption::Context
|
3
|
-
attr_accessor key_provider: untyped
|
4
|
-
attr_accessor key_generator: untyped
|
5
|
-
attr_accessor cipher: untyped
|
6
|
-
attr_accessor message_serializer: untyped
|
7
|
-
attr_accessor encryptor: untyped
|
8
|
-
attr_accessor frozen_encryption: untyped
|
9
|
-
end
|