rbs_activemodel 1.3.1 → 1.4.1
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/.claude/hooks/claude-code-web-session-start.sh +14 -0
- data/.claude/hooks/pre-commit-check.sh +73 -0
- data/.claude/hooks/protect-sig-files.sh +45 -0
- data/.claude/hooks/rbs-inline.sh +95 -0
- data/.claude/hooks/self-review.sh +93 -0
- data/.claude/settings.json +58 -0
- data/.rubocop.yml +64 -3
- data/.vscode/settings.json +20 -1
- data/README.md +1 -1
- data/Rakefile +36 -1
- data/lib/generators/rbs_activemodel/install_generator.rb +1 -1
- data/lib/rbs_activemodel/active_model.rb +34 -18
- data/lib/rbs_activemodel/rake_task.rb +8 -5
- data/lib/rbs_activemodel/version.rb +1 -1
- data/rbs_collection.lock.yaml +128 -48
- data/sig/generators/rbs_activemodel/install_generator.rbs +7 -0
- data/sig/rbs_activemodel/active_model.rbs +24 -3
- data/sig/rbs_activemodel/rake_task.rbs +8 -0
- data/sig/rbs_activemodel/version.rbs +5 -0
- data/sig/rbs_activemodel.rbs +4 -2
- metadata +15 -23
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require "active_model"
|
|
4
3
|
require "active_record"
|
|
4
|
+
require "active_support/core_ext/integer" # Load integer extensions to avoid AM's error
|
|
5
5
|
require "bigdecimal"
|
|
6
6
|
require "date"
|
|
7
7
|
require "rbs"
|
|
8
8
|
|
|
9
9
|
module RbsActivemodel
|
|
10
10
|
module ActiveModel
|
|
11
|
-
def self.all
|
|
11
|
+
def self.all #: Array[Class]
|
|
12
12
|
ObjectSpace.each_object.select do |obj|
|
|
13
13
|
obj.is_a?(Class) && obj.ancestors.include?(::ActiveModel::Validations)
|
|
14
14
|
rescue StandardError
|
|
@@ -16,13 +16,14 @@ module RbsActivemodel
|
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
# @rbs klass: Class
|
|
20
|
+
def self.class_to_rbs(klass) #: String?
|
|
20
21
|
Generator.new(klass).generate
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
class Generator
|
|
24
25
|
MIXINS = [::ActiveModel::Model, ::ActiveModel::Attributes,
|
|
25
|
-
::ActiveModel::SecurePassword, ::ActiveModel::Validations].freeze
|
|
26
|
+
::ActiveModel::SecurePassword, ::ActiveModel::Validations].freeze #: Array[Module]
|
|
26
27
|
TYPES = {
|
|
27
28
|
big_integer: Integer,
|
|
28
29
|
binary: String,
|
|
@@ -35,14 +36,19 @@ module RbsActivemodel
|
|
|
35
36
|
integer: Integer,
|
|
36
37
|
string: String,
|
|
37
38
|
time: Time
|
|
38
|
-
}.freeze
|
|
39
|
+
}.freeze #: Hash[Symbol, Class | String | Symbol]
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
# @rbs @secure_password: String
|
|
42
|
+
# @rbs @mixins: String
|
|
43
|
+
# @rbs @attributes: String
|
|
44
|
+
|
|
45
|
+
# @rbs klass: Class
|
|
46
|
+
def initialize(klass) #: void
|
|
41
47
|
@klass = klass
|
|
42
48
|
@klass_name = klass.name || ""
|
|
43
49
|
end
|
|
44
50
|
|
|
45
|
-
def generate
|
|
51
|
+
def generate #: String?
|
|
46
52
|
return if mixins.empty? && secure_password.empty? && attributes.empty?
|
|
47
53
|
|
|
48
54
|
format <<~RBS
|
|
@@ -58,16 +64,18 @@ module RbsActivemodel
|
|
|
58
64
|
|
|
59
65
|
private
|
|
60
66
|
|
|
61
|
-
attr_reader :klass
|
|
67
|
+
attr_reader :klass #: Class
|
|
68
|
+
attr_reader :klass_name #: String
|
|
62
69
|
|
|
63
|
-
|
|
70
|
+
# @rbs rbs: String
|
|
71
|
+
def format(rbs) #: String
|
|
64
72
|
parsed = RBS::Parser.parse_signature(rbs)
|
|
65
73
|
StringIO.new.tap do |out|
|
|
66
|
-
RBS::Writer.new(out:
|
|
74
|
+
RBS::Writer.new(out:).write(parsed[1] + parsed[2])
|
|
67
75
|
end.string
|
|
68
76
|
end
|
|
69
77
|
|
|
70
|
-
def header
|
|
78
|
+
def header #: String
|
|
71
79
|
namespace = +""
|
|
72
80
|
klass_name.split("::").map do |mod_name|
|
|
73
81
|
namespace += "::#{mod_name}"
|
|
@@ -88,13 +96,13 @@ module RbsActivemodel
|
|
|
88
96
|
end.join("\n")
|
|
89
97
|
end
|
|
90
98
|
|
|
91
|
-
def secure_password
|
|
99
|
+
def secure_password #: String
|
|
92
100
|
return "" if klass.ancestors.none?(::ActiveModel::SecurePassword::InstanceMethodsOnActivation)
|
|
93
101
|
|
|
94
102
|
methods = klass.instance_methods.grep(/^authenticate_/)
|
|
95
103
|
@secure_password ||= methods.filter_map do |method_name|
|
|
96
104
|
attribute = method_name.to_s.split("_").last
|
|
97
|
-
next unless klass.
|
|
105
|
+
next unless klass.method_defined?(:"#{attribute}_confirmation")
|
|
98
106
|
|
|
99
107
|
<<~RBS
|
|
100
108
|
attr_reader #{attribute}: String?
|
|
@@ -110,7 +118,7 @@ module RbsActivemodel
|
|
|
110
118
|
end.join("\n")
|
|
111
119
|
end
|
|
112
120
|
|
|
113
|
-
def mixins
|
|
121
|
+
def mixins #: String
|
|
114
122
|
return "" if klass < ActiveRecord::Base
|
|
115
123
|
|
|
116
124
|
@mixins ||= MIXINS.each_with_object([]) do |mod, mixins|
|
|
@@ -121,7 +129,7 @@ module RbsActivemodel
|
|
|
121
129
|
end.join("\n")
|
|
122
130
|
end
|
|
123
131
|
|
|
124
|
-
def attributes
|
|
132
|
+
def attributes #: String
|
|
125
133
|
return "" unless klass < ::ActiveModel::Attributes
|
|
126
134
|
|
|
127
135
|
# @type var model: untyped
|
|
@@ -136,7 +144,7 @@ module RbsActivemodel
|
|
|
136
144
|
else
|
|
137
145
|
type.to_s
|
|
138
146
|
end
|
|
139
|
-
suffix = "?" unless required_attribute?(name)
|
|
147
|
+
suffix = "?" unless having_default?(name) || required_attribute?(name)
|
|
140
148
|
<<~RBS
|
|
141
149
|
%a{pure}
|
|
142
150
|
def #{name}: () -> #{type_name}#{suffix}
|
|
@@ -145,7 +153,15 @@ module RbsActivemodel
|
|
|
145
153
|
end.join("\n")
|
|
146
154
|
end
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
# @rbs name: String
|
|
157
|
+
def having_default?(name) #: bool
|
|
158
|
+
# @type var model: untyped
|
|
159
|
+
model = klass
|
|
160
|
+
model._default_attributes[name].is_a?(::ActiveModel::Attribute::UserProvidedDefault)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# @rbs name: String
|
|
164
|
+
def required_attribute?(name) #: bool
|
|
149
165
|
return false unless klass < ::ActiveModel::Validations
|
|
150
166
|
|
|
151
167
|
klass.validators.any? do |v| # steep:ignore NoMethod
|
|
@@ -153,7 +169,7 @@ module RbsActivemodel
|
|
|
153
169
|
end
|
|
154
170
|
end
|
|
155
171
|
|
|
156
|
-
def footer
|
|
172
|
+
def footer #: String
|
|
157
173
|
"end\n" * klass.module_parents.size # steep:ignore
|
|
158
174
|
end
|
|
159
175
|
end
|
|
@@ -5,9 +5,12 @@ require "rake/tasklib"
|
|
|
5
5
|
|
|
6
6
|
module RbsActivemodel
|
|
7
7
|
class RakeTask < Rake::TaskLib
|
|
8
|
-
attr_accessor :name
|
|
8
|
+
attr_accessor :name #: Symbol
|
|
9
|
+
attr_accessor :signature_root_dir #: Pathname
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
# @rbs name: Symbol
|
|
12
|
+
# @rbs &block: ?(self) -> void
|
|
13
|
+
def initialize(name = :"rbs:activemodel", &block) #: void
|
|
11
14
|
super()
|
|
12
15
|
|
|
13
16
|
@name = name
|
|
@@ -20,14 +23,14 @@ module RbsActivemodel
|
|
|
20
23
|
define_setup_task
|
|
21
24
|
end
|
|
22
25
|
|
|
23
|
-
def define_setup_task
|
|
26
|
+
def define_setup_task #: void
|
|
24
27
|
desc "Run all tasks of rbs_activemodel"
|
|
25
28
|
|
|
26
29
|
deps = [:"#{name}:clean", :"#{name}:generate"]
|
|
27
30
|
task("#{name}:setup" => deps)
|
|
28
31
|
end
|
|
29
32
|
|
|
30
|
-
def define_generate_task
|
|
33
|
+
def define_generate_task #: void
|
|
31
34
|
desc "Generate RBS files for activemodel gem"
|
|
32
35
|
task("#{name}:generate": :environment) do
|
|
33
36
|
require "rbs_activemodel" # load RbsActivemodel lazily
|
|
@@ -45,7 +48,7 @@ module RbsActivemodel
|
|
|
45
48
|
end
|
|
46
49
|
end
|
|
47
50
|
|
|
48
|
-
def define_clean_task
|
|
51
|
+
def define_clean_task #: void
|
|
49
52
|
desc "Clean RBS files for config gem"
|
|
50
53
|
task("#{name}:clean": :environment) do
|
|
51
54
|
signature_root_dir.rmtree if signature_root_dir.exist?
|
data/rbs_collection.lock.yaml
CHANGED
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
path: ".gem_rbs_collection"
|
|
3
3
|
gems:
|
|
4
4
|
- name: actionpack
|
|
5
|
-
version: '
|
|
5
|
+
version: '8.1'
|
|
6
6
|
source:
|
|
7
7
|
type: git
|
|
8
8
|
name: ruby/gem_rbs_collection
|
|
9
|
-
revision:
|
|
9
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
11
11
|
repo_dir: gems
|
|
12
12
|
- name: actionview
|
|
13
|
-
version: '
|
|
13
|
+
version: '8.1'
|
|
14
14
|
source:
|
|
15
15
|
type: git
|
|
16
16
|
name: ruby/gem_rbs_collection
|
|
17
|
-
revision:
|
|
17
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
19
19
|
repo_dir: gems
|
|
20
20
|
- name: activemodel
|
|
21
|
-
version: '
|
|
21
|
+
version: '8.1'
|
|
22
22
|
source:
|
|
23
23
|
type: git
|
|
24
24
|
name: ruby/gem_rbs_collection
|
|
25
|
-
revision:
|
|
25
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
26
26
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
27
27
|
repo_dir: gems
|
|
28
28
|
- name: activerecord
|
|
29
|
-
version: '
|
|
29
|
+
version: '8.1'
|
|
30
30
|
source:
|
|
31
31
|
type: git
|
|
32
32
|
name: ruby/gem_rbs_collection
|
|
33
|
-
revision:
|
|
33
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
34
34
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
35
35
|
repo_dir: gems
|
|
36
36
|
- name: activesupport
|
|
37
|
-
version: '
|
|
37
|
+
version: '8.1'
|
|
38
38
|
source:
|
|
39
39
|
type: git
|
|
40
40
|
name: ruby/gem_rbs_collection
|
|
41
|
-
revision:
|
|
41
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
42
42
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
43
43
|
repo_dir: gems
|
|
44
44
|
- name: ast
|
|
@@ -46,35 +46,39 @@ gems:
|
|
|
46
46
|
source:
|
|
47
47
|
type: git
|
|
48
48
|
name: ruby/gem_rbs_collection
|
|
49
|
-
revision:
|
|
49
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
50
50
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
51
51
|
repo_dir: gems
|
|
52
52
|
- name: base64
|
|
53
|
-
version:
|
|
53
|
+
version: 0.3.0
|
|
54
54
|
source:
|
|
55
|
-
type:
|
|
55
|
+
type: rubygems
|
|
56
56
|
- name: bcrypt
|
|
57
57
|
version: '3.1'
|
|
58
58
|
source:
|
|
59
59
|
type: git
|
|
60
60
|
name: ruby/gem_rbs_collection
|
|
61
|
-
revision:
|
|
61
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
62
62
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
63
63
|
repo_dir: gems
|
|
64
64
|
- name: bigdecimal
|
|
65
|
-
version:
|
|
65
|
+
version: 4.1.3
|
|
66
66
|
source:
|
|
67
|
-
type:
|
|
67
|
+
type: rubygems
|
|
68
68
|
- name: cgi
|
|
69
|
-
version: '0'
|
|
69
|
+
version: '0.5'
|
|
70
70
|
source:
|
|
71
|
-
type:
|
|
71
|
+
type: git
|
|
72
|
+
name: ruby/gem_rbs_collection
|
|
73
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
74
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
75
|
+
repo_dir: gems
|
|
72
76
|
- name: concurrent-ruby
|
|
73
77
|
version: '1.1'
|
|
74
78
|
source:
|
|
75
79
|
type: git
|
|
76
80
|
name: ruby/gem_rbs_collection
|
|
77
|
-
revision:
|
|
81
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
78
82
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
79
83
|
repo_dir: gems
|
|
80
84
|
- name: connection_pool
|
|
@@ -82,14 +86,22 @@ gems:
|
|
|
82
86
|
source:
|
|
83
87
|
type: git
|
|
84
88
|
name: ruby/gem_rbs_collection
|
|
85
|
-
revision:
|
|
89
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
86
90
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
87
91
|
repo_dir: gems
|
|
88
92
|
- name: date
|
|
89
93
|
version: '0'
|
|
90
94
|
source:
|
|
91
95
|
type: stdlib
|
|
92
|
-
- name:
|
|
96
|
+
- name: delegate
|
|
97
|
+
version: '0'
|
|
98
|
+
source:
|
|
99
|
+
type: stdlib
|
|
100
|
+
- name: did_you_mean
|
|
101
|
+
version: '0'
|
|
102
|
+
source:
|
|
103
|
+
type: stdlib
|
|
104
|
+
- name: digest
|
|
93
105
|
version: '0'
|
|
94
106
|
source:
|
|
95
107
|
type: stdlib
|
|
@@ -106,7 +118,7 @@ gems:
|
|
|
106
118
|
source:
|
|
107
119
|
type: git
|
|
108
120
|
name: ruby/gem_rbs_collection
|
|
109
|
-
revision:
|
|
121
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
110
122
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
111
123
|
repo_dir: gems
|
|
112
124
|
- name: io-console
|
|
@@ -117,28 +129,44 @@ gems:
|
|
|
117
129
|
version: '0'
|
|
118
130
|
source:
|
|
119
131
|
type: stdlib
|
|
132
|
+
- name: language_server-protocol
|
|
133
|
+
version: 3.17.0.6
|
|
134
|
+
source:
|
|
135
|
+
type: rubygems
|
|
136
|
+
- name: lint_roller
|
|
137
|
+
version: '1.1'
|
|
138
|
+
source:
|
|
139
|
+
type: git
|
|
140
|
+
name: ruby/gem_rbs_collection
|
|
141
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
142
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
143
|
+
repo_dir: gems
|
|
120
144
|
- name: logger
|
|
121
|
-
version: '
|
|
145
|
+
version: '1.7'
|
|
122
146
|
source:
|
|
123
|
-
type:
|
|
147
|
+
type: git
|
|
148
|
+
name: ruby/gem_rbs_collection
|
|
149
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
150
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
151
|
+
repo_dir: gems
|
|
124
152
|
- name: minitest
|
|
125
|
-
version: '
|
|
153
|
+
version: '5.25'
|
|
126
154
|
source:
|
|
127
|
-
type:
|
|
155
|
+
type: git
|
|
156
|
+
name: ruby/gem_rbs_collection
|
|
157
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
158
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
159
|
+
repo_dir: gems
|
|
128
160
|
- name: monitor
|
|
129
161
|
version: '0'
|
|
130
162
|
source:
|
|
131
163
|
type: stdlib
|
|
132
|
-
- name: mutex_m
|
|
133
|
-
version: '0'
|
|
134
|
-
source:
|
|
135
|
-
type: stdlib
|
|
136
164
|
- name: nokogiri
|
|
137
165
|
version: '1.11'
|
|
138
166
|
source:
|
|
139
167
|
type: git
|
|
140
168
|
name: ruby/gem_rbs_collection
|
|
141
|
-
revision:
|
|
169
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
142
170
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
143
171
|
repo_dir: gems
|
|
144
172
|
- name: openssl
|
|
@@ -154,7 +182,7 @@ gems:
|
|
|
154
182
|
source:
|
|
155
183
|
type: git
|
|
156
184
|
name: ruby/gem_rbs_collection
|
|
157
|
-
revision:
|
|
185
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
158
186
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
159
187
|
repo_dir: gems
|
|
160
188
|
- name: parser
|
|
@@ -162,27 +190,39 @@ gems:
|
|
|
162
190
|
source:
|
|
163
191
|
type: git
|
|
164
192
|
name: ruby/gem_rbs_collection
|
|
165
|
-
revision:
|
|
193
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
166
194
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
167
195
|
repo_dir: gems
|
|
168
196
|
- name: pathname
|
|
169
197
|
version: '0'
|
|
170
198
|
source:
|
|
171
199
|
type: stdlib
|
|
172
|
-
- name:
|
|
200
|
+
- name: pp
|
|
173
201
|
version: '0'
|
|
174
202
|
source:
|
|
175
203
|
type: stdlib
|
|
176
|
-
- name:
|
|
204
|
+
- name: prettyprint
|
|
177
205
|
version: '0'
|
|
178
206
|
source:
|
|
179
207
|
type: stdlib
|
|
208
|
+
- name: prism
|
|
209
|
+
version: 1.9.0
|
|
210
|
+
source:
|
|
211
|
+
type: rubygems
|
|
212
|
+
- name: racc
|
|
213
|
+
version: '1.8'
|
|
214
|
+
source:
|
|
215
|
+
type: git
|
|
216
|
+
name: ruby/gem_rbs_collection
|
|
217
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
218
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
219
|
+
repo_dir: gems
|
|
180
220
|
- name: rack
|
|
181
221
|
version: '2.2'
|
|
182
222
|
source:
|
|
183
223
|
type: git
|
|
184
224
|
name: ruby/gem_rbs_collection
|
|
185
|
-
revision:
|
|
225
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
186
226
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
187
227
|
repo_dir: gems
|
|
188
228
|
- name: rails-dom-testing
|
|
@@ -190,15 +230,23 @@ gems:
|
|
|
190
230
|
source:
|
|
191
231
|
type: git
|
|
192
232
|
name: ruby/gem_rbs_collection
|
|
193
|
-
revision:
|
|
233
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
234
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
235
|
+
repo_dir: gems
|
|
236
|
+
- name: rails-html-sanitizer
|
|
237
|
+
version: '1.6'
|
|
238
|
+
source:
|
|
239
|
+
type: git
|
|
240
|
+
name: ruby/gem_rbs_collection
|
|
241
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
194
242
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
195
243
|
repo_dir: gems
|
|
196
244
|
- name: railties
|
|
197
|
-
version: '
|
|
245
|
+
version: '8.1'
|
|
198
246
|
source:
|
|
199
247
|
type: git
|
|
200
248
|
name: ruby/gem_rbs_collection
|
|
201
|
-
revision:
|
|
249
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
202
250
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
203
251
|
repo_dir: gems
|
|
204
252
|
- name: rainbow
|
|
@@ -206,7 +254,7 @@ gems:
|
|
|
206
254
|
source:
|
|
207
255
|
type: git
|
|
208
256
|
name: ruby/gem_rbs_collection
|
|
209
|
-
revision:
|
|
257
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
210
258
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
211
259
|
repo_dir: gems
|
|
212
260
|
- name: rake
|
|
@@ -214,11 +262,15 @@ gems:
|
|
|
214
262
|
source:
|
|
215
263
|
type: git
|
|
216
264
|
name: ruby/gem_rbs_collection
|
|
217
|
-
revision:
|
|
265
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
218
266
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
219
267
|
repo_dir: gems
|
|
268
|
+
- name: random-formatter
|
|
269
|
+
version: '0'
|
|
270
|
+
source:
|
|
271
|
+
type: stdlib
|
|
220
272
|
- name: rbs
|
|
221
|
-
version:
|
|
273
|
+
version: 4.2.0
|
|
222
274
|
source:
|
|
223
275
|
type: rubygems
|
|
224
276
|
- name: rdoc
|
|
@@ -230,23 +282,27 @@ gems:
|
|
|
230
282
|
source:
|
|
231
283
|
type: git
|
|
232
284
|
name: ruby/gem_rbs_collection
|
|
233
|
-
revision:
|
|
285
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
234
286
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
235
287
|
repo_dir: gems
|
|
288
|
+
- name: ripper
|
|
289
|
+
version: '0'
|
|
290
|
+
source:
|
|
291
|
+
type: stdlib
|
|
236
292
|
- name: rubocop
|
|
237
293
|
version: '1.57'
|
|
238
294
|
source:
|
|
239
295
|
type: git
|
|
240
296
|
name: ruby/gem_rbs_collection
|
|
241
|
-
revision:
|
|
297
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
242
298
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
243
299
|
repo_dir: gems
|
|
244
300
|
- name: rubocop-ast
|
|
245
|
-
version: '1.
|
|
301
|
+
version: '1.46'
|
|
246
302
|
source:
|
|
247
303
|
type: git
|
|
248
304
|
name: ruby/gem_rbs_collection
|
|
249
|
-
revision:
|
|
305
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
250
306
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
251
307
|
repo_dir: gems
|
|
252
308
|
- name: securerandom
|
|
@@ -261,6 +317,18 @@ gems:
|
|
|
261
317
|
version: '0'
|
|
262
318
|
source:
|
|
263
319
|
type: stdlib
|
|
320
|
+
- name: sqlite3
|
|
321
|
+
version: '2.0'
|
|
322
|
+
source:
|
|
323
|
+
type: git
|
|
324
|
+
name: ruby/gem_rbs_collection
|
|
325
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
326
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
327
|
+
repo_dir: gems
|
|
328
|
+
- name: stringio
|
|
329
|
+
version: '0'
|
|
330
|
+
source:
|
|
331
|
+
type: stdlib
|
|
264
332
|
- name: strscan
|
|
265
333
|
version: '0'
|
|
266
334
|
source:
|
|
@@ -274,7 +342,7 @@ gems:
|
|
|
274
342
|
source:
|
|
275
343
|
type: git
|
|
276
344
|
name: ruby/gem_rbs_collection
|
|
277
|
-
revision:
|
|
345
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
278
346
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
279
347
|
repo_dir: gems
|
|
280
348
|
- name: time
|
|
@@ -285,6 +353,10 @@ gems:
|
|
|
285
353
|
version: '0'
|
|
286
354
|
source:
|
|
287
355
|
type: stdlib
|
|
356
|
+
- name: tmpdir
|
|
357
|
+
version: '0'
|
|
358
|
+
source:
|
|
359
|
+
type: stdlib
|
|
288
360
|
- name: tsort
|
|
289
361
|
version: '0'
|
|
290
362
|
source:
|
|
@@ -294,11 +366,19 @@ gems:
|
|
|
294
366
|
source:
|
|
295
367
|
type: git
|
|
296
368
|
name: ruby/gem_rbs_collection
|
|
297
|
-
revision:
|
|
369
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
298
370
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
299
371
|
repo_dir: gems
|
|
300
372
|
- name: uri
|
|
301
373
|
version: '0'
|
|
302
374
|
source:
|
|
303
375
|
type: stdlib
|
|
376
|
+
- name: zeitwerk
|
|
377
|
+
version: '2.8'
|
|
378
|
+
source:
|
|
379
|
+
type: git
|
|
380
|
+
name: ruby/gem_rbs_collection
|
|
381
|
+
revision: ddaa559df3fbd84ca630e937e2eb59b3e1b62e3b
|
|
382
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
383
|
+
repo_dir: gems
|
|
304
384
|
gemfile_lock_path: Gemfile.lock
|
|
@@ -1,31 +1,52 @@
|
|
|
1
|
+
# Generated from lib/rbs_activemodel/active_model.rb with RBS::Inline
|
|
2
|
+
|
|
1
3
|
module RbsActivemodel
|
|
2
4
|
module ActiveModel
|
|
3
5
|
def self.all: () -> Array[Class]
|
|
6
|
+
|
|
7
|
+
# @rbs klass: Class
|
|
4
8
|
def self.class_to_rbs: (Class klass) -> String?
|
|
5
9
|
|
|
6
10
|
class Generator
|
|
7
11
|
MIXINS: Array[Module]
|
|
12
|
+
|
|
8
13
|
TYPES: Hash[Symbol, Class | String | Symbol]
|
|
9
14
|
|
|
10
|
-
@secure_password: String
|
|
11
|
-
@mixins: String
|
|
12
15
|
@attributes: String
|
|
13
16
|
|
|
17
|
+
@mixins: String
|
|
18
|
+
|
|
19
|
+
@secure_password: String
|
|
20
|
+
|
|
21
|
+
# @rbs klass: Class
|
|
14
22
|
def initialize: (Class klass) -> void
|
|
23
|
+
|
|
15
24
|
def generate: () -> String?
|
|
16
25
|
|
|
17
26
|
private
|
|
18
27
|
|
|
19
28
|
attr_reader klass: Class
|
|
29
|
+
|
|
20
30
|
attr_reader klass_name: String
|
|
21
31
|
|
|
32
|
+
# @rbs rbs: String
|
|
22
33
|
def format: (String rbs) -> String
|
|
34
|
+
|
|
23
35
|
def header: () -> String
|
|
36
|
+
|
|
24
37
|
def secure_password: () -> String
|
|
38
|
+
|
|
25
39
|
def mixins: () -> String
|
|
40
|
+
|
|
26
41
|
def attributes: () -> String
|
|
27
|
-
|
|
42
|
+
|
|
43
|
+
# @rbs name: String
|
|
44
|
+
def having_default?: (String name) -> bool
|
|
45
|
+
|
|
46
|
+
# @rbs name: String
|
|
28
47
|
def required_attribute?: (String name) -> bool
|
|
48
|
+
|
|
49
|
+
def footer: () -> String
|
|
29
50
|
end
|
|
30
51
|
end
|
|
31
52
|
end
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
# Generated from lib/rbs_activemodel/rake_task.rb with RBS::Inline
|
|
2
|
+
|
|
1
3
|
module RbsActivemodel
|
|
2
4
|
class RakeTask < Rake::TaskLib
|
|
3
5
|
attr_accessor name: Symbol
|
|
6
|
+
|
|
4
7
|
attr_accessor signature_root_dir: Pathname
|
|
5
8
|
|
|
9
|
+
# @rbs name: Symbol
|
|
10
|
+
# @rbs &block: ?(self) -> void
|
|
6
11
|
def initialize: (?Symbol name) ?{ (self) -> void } -> void
|
|
12
|
+
|
|
7
13
|
def define_setup_task: () -> void
|
|
14
|
+
|
|
8
15
|
def define_generate_task: () -> void
|
|
16
|
+
|
|
9
17
|
def define_clean_task: () -> void
|
|
10
18
|
end
|
|
11
19
|
end
|
data/sig/rbs_activemodel.rbs
CHANGED