rbs_activemodel 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/.vscode/settings.json +19 -1
- data/README.md +1 -1
- data/lib/generators/rbs_activemodel/install_generator.rb +1 -1
- data/lib/rbs_activemodel/active_model.rb +33 -16
- data/lib/rbs_activemodel/rake_task.rb +8 -5
- data/lib/rbs_activemodel/version.rb +1 -1
- data/rbs_collection.lock.yaml +48 -36
- data/sig/generators/rbs_activemodel/install_generator.rbs +7 -0
- data/sig/rbs_activemodel/active_model.rbs +24 -2
- 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 +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c967f4e7e9fb2fc4c3a5d3a7be3019280e9ee9a8b4653b536cabd1f38512165
|
4
|
+
data.tar.gz: 5f936185b9e6cf7d635beab513a866239a637035f5e22a89576b6bb7ff581372
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67c5c12236845803dd060cf0121a57ab426a32b68194ce1150745a2e3fa2ec75aa4618d62bde4dde0b47a78382e2c7875b08e15ef88a1b1c45760c3bac378cd7
|
7
|
+
data.tar.gz: cd91a15201756ec4af1c621e213b744bfe85ae2cbb48f21229aa4b1c659c5f6468b0036f9e3ed113383092efc2c6db688038f5fe4fb651a8d45edaafcc7a3d92
|
data/.rubocop.yml
CHANGED
data/.vscode/settings.json
CHANGED
@@ -2,5 +2,23 @@
|
|
2
2
|
"[ruby]": {
|
3
3
|
"editor.defaultFormatter": "Shopify.ruby-lsp"
|
4
4
|
},
|
5
|
-
"rbs-helper.signature-directory": "sig"
|
5
|
+
"rbs-helper.signature-directory": "sig",
|
6
|
+
"cSpell.words": [
|
7
|
+
"Activemodel",
|
8
|
+
"activerecord",
|
9
|
+
"bigdecimal",
|
10
|
+
"bindir",
|
11
|
+
"klass",
|
12
|
+
"KOMIYA",
|
13
|
+
"mkpath",
|
14
|
+
"popen",
|
15
|
+
"raketask",
|
16
|
+
"readlines",
|
17
|
+
"rmtree",
|
18
|
+
"rubygems",
|
19
|
+
"Takeshi",
|
20
|
+
"tasklib"
|
21
|
+
],
|
22
|
+
"rbs-helper.rbs-inline-on-save": true,
|
23
|
+
"rbs-helper.rbs-inline-signature-directory": "sig/"
|
6
24
|
}
|
data/README.md
CHANGED
@@ -8,7 +8,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
74
|
RBS::Writer.new(out: 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,7 +96,7 @@ 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_/)
|
@@ -97,7 +105,7 @@ module RbsActivemodel
|
|
97
105
|
next unless klass.instance_methods.include?(:"#{attribute}_confirmation")
|
98
106
|
|
99
107
|
<<~RBS
|
100
|
-
attr_reader #{attribute}: String
|
108
|
+
attr_reader #{attribute}: String?
|
101
109
|
attr_accessor #{attribute}_confirmation: String
|
102
110
|
attr_accessor #{attribute}_challenge: String
|
103
111
|
|
@@ -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,16 @@ module RbsActivemodel
|
|
145
153
|
end.join("\n")
|
146
154
|
end
|
147
155
|
|
148
|
-
|
156
|
+
# @rbs name: String
|
157
|
+
def having_default?(name) #: bool
|
158
|
+
klass.instance_eval { pending_attribute_modifications }
|
159
|
+
.find do |mod|
|
160
|
+
mod.is_a?(::ActiveModel::AttributeRegistration::ClassMethods::PendingDefault) && mod.name == name
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
# @rbs name: String
|
165
|
+
def required_attribute?(name) #: bool
|
149
166
|
return false unless klass < ::ActiveModel::Validations
|
150
167
|
|
151
168
|
klass.validators.any? do |v| # steep:ignore NoMethod
|
@@ -153,7 +170,7 @@ module RbsActivemodel
|
|
153
170
|
end
|
154
171
|
end
|
155
172
|
|
156
|
-
def footer
|
173
|
+
def footer #: String
|
157
174
|
"end\n" * klass.module_parents.size # steep:ignore
|
158
175
|
end
|
159
176
|
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
@@ -6,7 +6,7 @@ gems:
|
|
6
6
|
source:
|
7
7
|
type: git
|
8
8
|
name: ruby/gem_rbs_collection
|
9
|
-
revision:
|
9
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
11
11
|
repo_dir: gems
|
12
12
|
- name: actionview
|
@@ -14,23 +14,23 @@ gems:
|
|
14
14
|
source:
|
15
15
|
type: git
|
16
16
|
name: ruby/gem_rbs_collection
|
17
|
-
revision:
|
17
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
19
19
|
repo_dir: gems
|
20
20
|
- name: activemodel
|
21
|
-
version: '7.
|
21
|
+
version: '7.1'
|
22
22
|
source:
|
23
23
|
type: git
|
24
24
|
name: ruby/gem_rbs_collection
|
25
|
-
revision:
|
25
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
26
26
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
27
27
|
repo_dir: gems
|
28
28
|
- name: activerecord
|
29
|
-
version: '7.
|
29
|
+
version: '7.2'
|
30
30
|
source:
|
31
31
|
type: git
|
32
32
|
name: ruby/gem_rbs_collection
|
33
|
-
revision:
|
33
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
34
34
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
35
35
|
repo_dir: gems
|
36
36
|
- name: activesupport
|
@@ -38,7 +38,7 @@ gems:
|
|
38
38
|
source:
|
39
39
|
type: git
|
40
40
|
name: ruby/gem_rbs_collection
|
41
|
-
revision:
|
41
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
42
42
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
43
43
|
repo_dir: gems
|
44
44
|
- name: ast
|
@@ -46,7 +46,7 @@ gems:
|
|
46
46
|
source:
|
47
47
|
type: git
|
48
48
|
name: ruby/gem_rbs_collection
|
49
|
-
revision:
|
49
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
50
50
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
51
51
|
repo_dir: gems
|
52
52
|
- name: base64
|
@@ -58,7 +58,7 @@ gems:
|
|
58
58
|
source:
|
59
59
|
type: git
|
60
60
|
name: ruby/gem_rbs_collection
|
61
|
-
revision:
|
61
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
62
62
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
63
63
|
repo_dir: gems
|
64
64
|
- name: bigdecimal
|
@@ -74,7 +74,7 @@ gems:
|
|
74
74
|
source:
|
75
75
|
type: git
|
76
76
|
name: ruby/gem_rbs_collection
|
77
|
-
revision:
|
77
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
78
78
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
79
79
|
repo_dir: gems
|
80
80
|
- name: connection_pool
|
@@ -82,14 +82,18 @@ gems:
|
|
82
82
|
source:
|
83
83
|
type: git
|
84
84
|
name: ruby/gem_rbs_collection
|
85
|
-
revision:
|
85
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
86
86
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
87
87
|
repo_dir: gems
|
88
88
|
- name: date
|
89
89
|
version: '0'
|
90
90
|
source:
|
91
91
|
type: stdlib
|
92
|
-
- name:
|
92
|
+
- name: delegate
|
93
|
+
version: '0'
|
94
|
+
source:
|
95
|
+
type: stdlib
|
96
|
+
- name: digest
|
93
97
|
version: '0'
|
94
98
|
source:
|
95
99
|
type: stdlib
|
@@ -106,7 +110,7 @@ gems:
|
|
106
110
|
source:
|
107
111
|
type: git
|
108
112
|
name: ruby/gem_rbs_collection
|
109
|
-
revision:
|
113
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
110
114
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
111
115
|
repo_dir: gems
|
112
116
|
- name: io-console
|
@@ -138,7 +142,7 @@ gems:
|
|
138
142
|
source:
|
139
143
|
type: git
|
140
144
|
name: ruby/gem_rbs_collection
|
141
|
-
revision:
|
145
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
142
146
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
143
147
|
repo_dir: gems
|
144
148
|
- name: openssl
|
@@ -154,7 +158,7 @@ gems:
|
|
154
158
|
source:
|
155
159
|
type: git
|
156
160
|
name: ruby/gem_rbs_collection
|
157
|
-
revision:
|
161
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
158
162
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
159
163
|
repo_dir: gems
|
160
164
|
- name: parser
|
@@ -162,27 +166,19 @@ gems:
|
|
162
166
|
source:
|
163
167
|
type: git
|
164
168
|
name: ruby/gem_rbs_collection
|
165
|
-
revision:
|
169
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
166
170
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
167
171
|
repo_dir: gems
|
168
172
|
- name: pathname
|
169
173
|
version: '0'
|
170
174
|
source:
|
171
175
|
type: stdlib
|
172
|
-
- name: pstore
|
173
|
-
version: '0'
|
174
|
-
source:
|
175
|
-
type: stdlib
|
176
|
-
- name: psych
|
177
|
-
version: '0'
|
178
|
-
source:
|
179
|
-
type: stdlib
|
180
176
|
- name: rack
|
181
177
|
version: '2.2'
|
182
178
|
source:
|
183
179
|
type: git
|
184
180
|
name: ruby/gem_rbs_collection
|
185
|
-
revision:
|
181
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
186
182
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
187
183
|
repo_dir: gems
|
188
184
|
- name: rails-dom-testing
|
@@ -190,7 +186,15 @@ gems:
|
|
190
186
|
source:
|
191
187
|
type: git
|
192
188
|
name: ruby/gem_rbs_collection
|
193
|
-
revision:
|
189
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
190
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
191
|
+
repo_dir: gems
|
192
|
+
- name: rails-html-sanitizer
|
193
|
+
version: '1.6'
|
194
|
+
source:
|
195
|
+
type: git
|
196
|
+
name: ruby/gem_rbs_collection
|
197
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
194
198
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
195
199
|
repo_dir: gems
|
196
200
|
- name: railties
|
@@ -198,7 +202,7 @@ gems:
|
|
198
202
|
source:
|
199
203
|
type: git
|
200
204
|
name: ruby/gem_rbs_collection
|
201
|
-
revision:
|
205
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
202
206
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
203
207
|
repo_dir: gems
|
204
208
|
- name: rainbow
|
@@ -206,7 +210,7 @@ gems:
|
|
206
210
|
source:
|
207
211
|
type: git
|
208
212
|
name: ruby/gem_rbs_collection
|
209
|
-
revision:
|
213
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
210
214
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
211
215
|
repo_dir: gems
|
212
216
|
- name: rake
|
@@ -214,11 +218,11 @@ gems:
|
|
214
218
|
source:
|
215
219
|
type: git
|
216
220
|
name: ruby/gem_rbs_collection
|
217
|
-
revision:
|
221
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
218
222
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
219
223
|
repo_dir: gems
|
220
224
|
- name: rbs
|
221
|
-
version: 3.
|
225
|
+
version: 3.8.1
|
222
226
|
source:
|
223
227
|
type: rubygems
|
224
228
|
- name: rdoc
|
@@ -230,7 +234,7 @@ gems:
|
|
230
234
|
source:
|
231
235
|
type: git
|
232
236
|
name: ruby/gem_rbs_collection
|
233
|
-
revision:
|
237
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
234
238
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
235
239
|
repo_dir: gems
|
236
240
|
- name: rubocop
|
@@ -238,7 +242,7 @@ gems:
|
|
238
242
|
source:
|
239
243
|
type: git
|
240
244
|
name: ruby/gem_rbs_collection
|
241
|
-
revision:
|
245
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
242
246
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
243
247
|
repo_dir: gems
|
244
248
|
- name: rubocop-ast
|
@@ -246,7 +250,7 @@ gems:
|
|
246
250
|
source:
|
247
251
|
type: git
|
248
252
|
name: ruby/gem_rbs_collection
|
249
|
-
revision:
|
253
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
250
254
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
251
255
|
repo_dir: gems
|
252
256
|
- name: securerandom
|
@@ -261,7 +265,15 @@ gems:
|
|
261
265
|
version: '0'
|
262
266
|
source:
|
263
267
|
type: stdlib
|
264
|
-
- name:
|
268
|
+
- name: sqlite3
|
269
|
+
version: '2.0'
|
270
|
+
source:
|
271
|
+
type: git
|
272
|
+
name: ruby/gem_rbs_collection
|
273
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
274
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
275
|
+
repo_dir: gems
|
276
|
+
- name: stringio
|
265
277
|
version: '0'
|
266
278
|
source:
|
267
279
|
type: stdlib
|
@@ -274,7 +286,7 @@ gems:
|
|
274
286
|
source:
|
275
287
|
type: git
|
276
288
|
name: ruby/gem_rbs_collection
|
277
|
-
revision:
|
289
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
278
290
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
279
291
|
repo_dir: gems
|
280
292
|
- name: time
|
@@ -294,7 +306,7 @@ gems:
|
|
294
306
|
source:
|
295
307
|
type: git
|
296
308
|
name: ruby/gem_rbs_collection
|
297
|
-
revision:
|
309
|
+
revision: 7651e7b92c15bd5b4bc11fd3dd455be0ea571fd0
|
298
310
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
299
311
|
repo_dir: gems
|
300
312
|
- name: uri
|
@@ -1,30 +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
|
-
@mixins: String
|
11
15
|
@attributes: String
|
12
16
|
|
17
|
+
@mixins: String
|
18
|
+
|
19
|
+
@secure_password: String
|
20
|
+
|
21
|
+
# @rbs klass: Class
|
13
22
|
def initialize: (Class klass) -> void
|
23
|
+
|
14
24
|
def generate: () -> String?
|
15
25
|
|
16
26
|
private
|
17
27
|
|
18
28
|
attr_reader klass: Class
|
29
|
+
|
19
30
|
attr_reader klass_name: String
|
20
31
|
|
32
|
+
# @rbs rbs: String
|
21
33
|
def format: (String rbs) -> String
|
34
|
+
|
22
35
|
def header: () -> String
|
36
|
+
|
23
37
|
def secure_password: () -> String
|
38
|
+
|
24
39
|
def mixins: () -> String
|
40
|
+
|
25
41
|
def attributes: () -> String
|
26
|
-
|
42
|
+
|
43
|
+
# @rbs name: String
|
44
|
+
def having_default?: (String name) -> bool
|
45
|
+
|
46
|
+
# @rbs name: String
|
27
47
|
def required_attribute?: (String name) -> bool
|
48
|
+
|
49
|
+
def footer: () -> String
|
28
50
|
end
|
29
51
|
end
|
30
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
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbs_activemodel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeshi KOMIYA
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '7.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '7.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,9 +102,11 @@ files:
|
|
102
102
|
- lib/rbs_activemodel/version.rb
|
103
103
|
- rbs_collection.lock.yaml
|
104
104
|
- rbs_collection.yaml
|
105
|
+
- sig/generators/rbs_activemodel/install_generator.rbs
|
105
106
|
- sig/rbs_activemodel.rbs
|
106
107
|
- sig/rbs_activemodel/active_model.rbs
|
107
108
|
- sig/rbs_activemodel/rake_task.rbs
|
109
|
+
- sig/rbs_activemodel/version.rbs
|
108
110
|
homepage: https://github.com/tk0miya/rbs_activemodel
|
109
111
|
licenses:
|
110
112
|
- MIT
|
@@ -112,7 +114,7 @@ metadata:
|
|
112
114
|
homepage_uri: https://github.com/tk0miya/rbs_activemodel
|
113
115
|
source_code_uri: https://github.com/tk0miya/rbs_activemodel
|
114
116
|
changelog_uri: https://github.com/tk0miya/rbs_activemodel
|
115
|
-
post_install_message:
|
117
|
+
post_install_message:
|
116
118
|
rdoc_options: []
|
117
119
|
require_paths:
|
118
120
|
- lib
|
@@ -127,8 +129,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
129
|
- !ruby/object:Gem::Version
|
128
130
|
version: '0'
|
129
131
|
requirements: []
|
130
|
-
rubygems_version: 3.5.
|
131
|
-
signing_key:
|
132
|
+
rubygems_version: 3.5.22
|
133
|
+
signing_key:
|
132
134
|
specification_version: 4
|
133
135
|
summary: A RBS files generator for activemodel gem
|
134
136
|
test_files: []
|