rbs_activerecord 1.2.1 → 1.3.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 +24 -1
- data/.vscode/settings.json +13 -0
- data/README.md +7 -0
- data/Rakefile +1 -0
- data/lib/generators/rbs_activerecord/install_generator.rb +4 -1
- data/lib/rbs_activerecord/generator/active_storage/instance_methods.rb +1 -1
- data/lib/rbs_activerecord/generator/attributes.rb +5 -1
- data/lib/rbs_activerecord/generator.rb +5 -2
- data/lib/rbs_activerecord/parser/evaluator.rb +2 -11
- data/lib/rbs_activerecord/parser/include_expander/module.rb +6 -4
- data/lib/rbs_activerecord/rake_task.rb +6 -3
- data/lib/rbs_activerecord/utils.rb +2 -2
- data/lib/rbs_activerecord/version.rb +1 -1
- data/rbs_collection.lock.yaml +40 -36
- data/sig/rbs_activerecord/generator/attributes.rbs +4 -1
- data/sig/rbs_activerecord/generator.rbs +4 -1
- data/sig/rbs_activerecord/rake_task.rbs +4 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b56f18a5772a23292e3ae455e90f9e6d4deff43a1f1d89b0df9f80d67489218a
|
4
|
+
data.tar.gz: 698af6fa420f68d4068effe5aa65fb474656b89afa18118c0dc76d70f83d937f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e50032631a3a6f95d34de4decb79d49d673409f3d1196c670c364307ecf1f2506d05edc1fe3ee321fc80e1f643853d0d895276b75bec4545808f1788f1019da
|
7
|
+
data.tar.gz: 23152212c926367241ad8e29b38ebe2b8861b8b046df7b1dff3314b49e5a84bacc1aaa70529094e8b7767e4e61d178e829dbe5b14b93ed7f7656d209eea229cd
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
AllCops:
|
2
|
-
|
2
|
+
NewCops: enable
|
3
|
+
TargetRubyVersion: 3.2
|
4
|
+
|
5
|
+
plugins:
|
6
|
+
- rubocop-rake
|
7
|
+
- rubocop-rspec
|
3
8
|
|
4
9
|
Layout/LeadingCommentSpace:
|
5
10
|
AllowRBSInlineAnnotation: true
|
@@ -12,9 +17,27 @@ Metrics/BlockLength:
|
|
12
17
|
Metrics/MethodLength:
|
13
18
|
Max: 30
|
14
19
|
|
20
|
+
RSpec/ExampleLength:
|
21
|
+
Max: 20
|
22
|
+
|
23
|
+
RSpec/NamedSubject:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
RSpec/NestedGroups:
|
27
|
+
Max: 5
|
28
|
+
|
29
|
+
RSpec/MultipleExpectations:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
RSpec/MultipleMemoizedHelpers:
|
33
|
+
Max: 10
|
34
|
+
|
15
35
|
Style/Documentation:
|
16
36
|
Enabled: false
|
17
37
|
|
38
|
+
Style/RedundantFormat:
|
39
|
+
Enabled: false
|
40
|
+
|
18
41
|
Style/StringLiterals:
|
19
42
|
EnforcedStyle: double_quotes
|
20
43
|
|
data/.vscode/settings.json
CHANGED
@@ -6,13 +6,26 @@
|
|
6
6
|
"rbs-helper.rbs-inline-on-save": true,
|
7
7
|
"cSpell.words": [
|
8
8
|
"activerecord",
|
9
|
+
"activestorage",
|
10
|
+
"bindir",
|
9
11
|
"codebases",
|
10
12
|
"Cyclomatic",
|
13
|
+
"entryable",
|
14
|
+
"foos",
|
11
15
|
"kaminari",
|
16
|
+
"KOMIYA",
|
17
|
+
"kwargs",
|
12
18
|
"mkpath",
|
13
19
|
"modname",
|
20
|
+
"noargs",
|
21
|
+
"popen",
|
22
|
+
"posargs",
|
23
|
+
"raketask",
|
24
|
+
"readlines",
|
14
25
|
"requireds",
|
15
26
|
"rmtree",
|
27
|
+
"rubocop",
|
28
|
+
"Takeshi",
|
16
29
|
"tasklib"
|
17
30
|
]
|
18
31
|
}
|
data/README.md
CHANGED
@@ -23,6 +23,12 @@ Run `rbs:activerecord:setup` task:
|
|
23
23
|
Then rbs_activerecord will scan your code and generate RBS files into
|
24
24
|
`sig/activerecord` directory.
|
25
25
|
|
26
|
+
## Configurations
|
27
|
+
|
28
|
+
You can change the behavior of the generator via rbs_activerecord.rake:
|
29
|
+
|
30
|
+
* pure_accessors: Make accessor methods for columns pure. It helps [Type narrowing](https://github.com/soutaro/steep/wiki/Release-Note-1.1#type-narrowing-on-method-calls-590).
|
31
|
+
|
26
32
|
## The goal of rbs_activerecord
|
27
33
|
|
28
34
|
rbs_activerecord is an experimental project to enhance the type generation for ActiveRecord models.
|
@@ -43,6 +49,7 @@ Main differences between rbs_activerecord and rbs_rails are:
|
|
43
49
|
* Support extension ActiveRecord from 3rd party gems ([#254](https://github.com/pocke/rbs_rails/pull/254))
|
44
50
|
* ex. [kaminari-activerecord](https://github.com/ruby/gem_rbs_collection/pull/725)
|
45
51
|
* Support composite primary keys ([#275](https://github.com/pocke/rbs_rails/pull/275))
|
52
|
+
* Support pure_accessors ([#302](https://github.com/pocke/rbs_rails/issues/302))
|
46
53
|
* Extend return types of #pluck ([#273](https://github.com/pocke/rbs_rails/pull/273))
|
47
54
|
* Override types of CollectionProxy ([#289](https://github.com/pocke/rbs_rails/pull/289))
|
48
55
|
* Bug fixes
|
data/Rakefile
CHANGED
@@ -11,7 +11,10 @@ module RbsActiverecord
|
|
11
11
|
begin
|
12
12
|
require "rbs_activerecord/rake_task"
|
13
13
|
|
14
|
-
RbsActiverecord::RakeTask.new
|
14
|
+
RbsActiverecord::RakeTask.new do |task|
|
15
|
+
# Make accessor methods for columns pure.
|
16
|
+
# task.pure_accessors = true
|
17
|
+
end
|
15
18
|
rescue LoadError
|
16
19
|
# failed to load rbs_activerecord. Skip to load rbs_activerecord tasks.
|
17
20
|
end
|
@@ -6,10 +6,13 @@ module RbsActiverecord
|
|
6
6
|
include Utils
|
7
7
|
|
8
8
|
attr_reader :model #: RbsActiverecord::Model
|
9
|
+
attr_reader :pure_accessors #: bool
|
9
10
|
|
10
11
|
# @rbs model: RbsActiverecord::Model
|
11
|
-
|
12
|
+
# @rbs pure_accessors: bool
|
13
|
+
def initialize(model, pure_accessors:) #: void
|
12
14
|
@model = model
|
15
|
+
@pure_accessors = pure_accessors
|
13
16
|
end
|
14
17
|
|
15
18
|
def generate #: String
|
@@ -30,6 +33,7 @@ module RbsActiverecord
|
|
30
33
|
column_type = col.null ? optional : type
|
31
34
|
|
32
35
|
<<~RBS
|
36
|
+
#{"%a{pure}" if pure_accessors}
|
33
37
|
def #{col.name}: () -> #{column_type}
|
34
38
|
def #{col.name}=: (#{column_type}) -> #{column_type}
|
35
39
|
def #{col.name}?: () -> bool
|
@@ -9,12 +9,15 @@ module RbsActiverecord
|
|
9
9
|
attr_reader :klass #: singleton(ActiveRecord::Base)
|
10
10
|
attr_reader :klass_name #: String
|
11
11
|
attr_reader :model #: RbsActiverecord::Model
|
12
|
+
attr_reader :pure_accessors #: bool
|
12
13
|
|
13
14
|
# @rbs klass: singleton(ActiveRecord::Base)
|
14
|
-
|
15
|
+
# @rbs pure_accessors: bool
|
16
|
+
def initialize(klass, pure_accessors: false) #: void
|
15
17
|
@klass = klass
|
16
18
|
@klass_name = klass.name || ""
|
17
19
|
@model = Model.new(klass)
|
20
|
+
@pure_accessors = pure_accessors
|
18
21
|
end
|
19
22
|
|
20
23
|
def generate #: String # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
@@ -22,7 +25,7 @@ module RbsActiverecord
|
|
22
25
|
# resolve-type-names: false
|
23
26
|
|
24
27
|
#{header}
|
25
|
-
#{Attributes.new(model).generate}
|
28
|
+
#{Attributes.new(model, pure_accessors:).generate}
|
26
29
|
#{Associations.new(model).generate}
|
27
30
|
|
28
31
|
#{ActiveStorage::InstanceMethods.new(model).generate}
|
@@ -4,7 +4,7 @@ module RbsActiverecord
|
|
4
4
|
module Parser
|
5
5
|
module Evaluator
|
6
6
|
# @rbs node: Prism::Node
|
7
|
-
def eval_node(node) #: untyped # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
7
|
+
def eval_node(node) #: untyped # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
8
8
|
case node
|
9
9
|
when Prism::NilNode
|
10
10
|
nil
|
@@ -20,7 +20,7 @@ module RbsActiverecord
|
|
20
20
|
node.unescaped
|
21
21
|
when Prism::ArrayNode
|
22
22
|
node.elements.map { |e| eval_node(e) }
|
23
|
-
when Prism::HashNode
|
23
|
+
when Prism::HashNode, Prism::KeywordHashNode
|
24
24
|
node.elements.filter_map do |assoc|
|
25
25
|
case assoc
|
26
26
|
when Prism::AssocNode
|
@@ -34,15 +34,6 @@ module RbsActiverecord
|
|
34
34
|
when Prism::ConstantPathNode
|
35
35
|
parent = node.parent ? eval_node(node.parent) : nil
|
36
36
|
"#{parent}::#{node.name}"
|
37
|
-
when Prism::KeywordHashNode
|
38
|
-
node.elements.filter_map do |assoc|
|
39
|
-
case assoc
|
40
|
-
when Prism::AssocNode
|
41
|
-
key = eval_node(assoc.key)
|
42
|
-
value = eval_node(assoc.value)
|
43
|
-
[key, value]
|
44
|
-
end
|
45
|
-
end.to_h
|
46
37
|
end
|
47
38
|
end
|
48
39
|
module_function :eval_node
|
@@ -31,10 +31,12 @@ module RbsActiverecord
|
|
31
31
|
def declarations #: Array[Prism::CallNode]
|
32
32
|
@declarations ||= begin
|
33
33
|
path = source_location
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
if path && File.exist?(path)
|
35
|
+
declarations = Parser.parse_file(path)
|
36
|
+
declarations.fetch(name, [])
|
37
|
+
else
|
38
|
+
[]
|
39
|
+
end
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
@@ -4,14 +4,17 @@ require "rake/tasklib"
|
|
4
4
|
|
5
5
|
module RbsActiverecord
|
6
6
|
class RakeTask < Rake::TaskLib
|
7
|
-
attr_accessor :name
|
7
|
+
attr_accessor :name #: Symbol
|
8
|
+
attr_accessor :pure_accessors #: bool
|
9
|
+
attr_accessor :signature_root_dir #: Pathname
|
8
10
|
|
9
11
|
# @rbs name: Symbol
|
10
12
|
# @rbs &block: (RakeTask) -> void
|
11
|
-
def initialize(name = :
|
13
|
+
def initialize(name = :"rbs:activerecord", &block) #: void
|
12
14
|
super()
|
13
15
|
|
14
16
|
@name = name
|
17
|
+
@pure_accessors = false
|
15
18
|
@signature_root_dir = Rails.root / "sig/activerecord"
|
16
19
|
|
17
20
|
block&.call(self)
|
@@ -48,7 +51,7 @@ module RbsActiverecord
|
|
48
51
|
next if klass.abstract_class?
|
49
52
|
next unless klass.connection.table_exists?(klass.table_name)
|
50
53
|
|
51
|
-
rbs = Generator.new(klass).generate
|
54
|
+
rbs = Generator.new(klass, pure_accessors:).generate
|
52
55
|
|
53
56
|
path = signature_root_dir / "app/models/#{klass.name.underscore}.rbs"
|
54
57
|
path.dirname.mkpath
|
@@ -41,7 +41,7 @@ module RbsActiverecord
|
|
41
41
|
end
|
42
42
|
|
43
43
|
# @rbs type: Symbol
|
44
|
-
def sql_type_to_class(type) #: String # rubocop:disable
|
44
|
+
def sql_type_to_class(type) #: String # rubocop:disable Metrics/CyclomaticComplexity
|
45
45
|
case type
|
46
46
|
when :integer
|
47
47
|
"::Integer"
|
@@ -63,7 +63,7 @@ module RbsActiverecord
|
|
63
63
|
"untyped"
|
64
64
|
when :inet
|
65
65
|
"::IPAddr"
|
66
|
-
else
|
66
|
+
else # rubocop:disable Lint/DuplicateBranch
|
67
67
|
"untyped"
|
68
68
|
end
|
69
69
|
end
|
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: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
11
11
|
repo_dir: gems
|
12
12
|
- name: actionview
|
@@ -14,7 +14,7 @@ gems:
|
|
14
14
|
source:
|
15
15
|
type: git
|
16
16
|
name: ruby/gem_rbs_collection
|
17
|
-
revision:
|
17
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
19
19
|
repo_dir: gems
|
20
20
|
- name: activejob
|
@@ -22,7 +22,7 @@ gems:
|
|
22
22
|
source:
|
23
23
|
type: git
|
24
24
|
name: ruby/gem_rbs_collection
|
25
|
-
revision:
|
25
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
26
26
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
27
27
|
repo_dir: gems
|
28
28
|
- name: activemodel
|
@@ -30,7 +30,7 @@ gems:
|
|
30
30
|
source:
|
31
31
|
type: git
|
32
32
|
name: ruby/gem_rbs_collection
|
33
|
-
revision:
|
33
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
34
34
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
35
35
|
repo_dir: gems
|
36
36
|
- name: activerecord
|
@@ -38,7 +38,7 @@ gems:
|
|
38
38
|
source:
|
39
39
|
type: git
|
40
40
|
name: ruby/gem_rbs_collection
|
41
|
-
revision:
|
41
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
42
42
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
43
43
|
repo_dir: gems
|
44
44
|
- name: activestorage
|
@@ -46,7 +46,7 @@ gems:
|
|
46
46
|
source:
|
47
47
|
type: git
|
48
48
|
name: ruby/gem_rbs_collection
|
49
|
-
revision:
|
49
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
50
50
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
51
51
|
repo_dir: gems
|
52
52
|
- name: activesupport
|
@@ -54,7 +54,7 @@ gems:
|
|
54
54
|
source:
|
55
55
|
type: git
|
56
56
|
name: ruby/gem_rbs_collection
|
57
|
-
revision:
|
57
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
58
58
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
59
59
|
repo_dir: gems
|
60
60
|
- name: ast
|
@@ -62,7 +62,7 @@ gems:
|
|
62
62
|
source:
|
63
63
|
type: git
|
64
64
|
name: ruby/gem_rbs_collection
|
65
|
-
revision:
|
65
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
66
66
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
67
67
|
repo_dir: gems
|
68
68
|
- name: base64
|
@@ -70,7 +70,7 @@ gems:
|
|
70
70
|
source:
|
71
71
|
type: git
|
72
72
|
name: ruby/gem_rbs_collection
|
73
|
-
revision:
|
73
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
74
74
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
75
75
|
repo_dir: gems
|
76
76
|
- name: bcrypt
|
@@ -78,7 +78,7 @@ gems:
|
|
78
78
|
source:
|
79
79
|
type: git
|
80
80
|
name: ruby/gem_rbs_collection
|
81
|
-
revision:
|
81
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
82
82
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
83
83
|
repo_dir: gems
|
84
84
|
- name: benchmark
|
@@ -90,7 +90,7 @@ gems:
|
|
90
90
|
source:
|
91
91
|
type: git
|
92
92
|
name: ruby/gem_rbs_collection
|
93
|
-
revision:
|
93
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
94
94
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
95
95
|
repo_dir: gems
|
96
96
|
- name: cgi
|
@@ -102,7 +102,7 @@ gems:
|
|
102
102
|
source:
|
103
103
|
type: git
|
104
104
|
name: ruby/gem_rbs_collection
|
105
|
-
revision:
|
105
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
106
106
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
107
107
|
repo_dir: gems
|
108
108
|
- name: connection_pool
|
@@ -110,7 +110,7 @@ gems:
|
|
110
110
|
source:
|
111
111
|
type: git
|
112
112
|
name: ruby/gem_rbs_collection
|
113
|
-
revision:
|
113
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
114
114
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
115
115
|
repo_dir: gems
|
116
116
|
- name: date
|
@@ -142,7 +142,7 @@ gems:
|
|
142
142
|
source:
|
143
143
|
type: git
|
144
144
|
name: ruby/gem_rbs_collection
|
145
|
-
revision:
|
145
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
146
146
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
147
147
|
repo_dir: gems
|
148
148
|
- name: i18n
|
@@ -150,7 +150,7 @@ gems:
|
|
150
150
|
source:
|
151
151
|
type: git
|
152
152
|
name: ruby/gem_rbs_collection
|
153
|
-
revision:
|
153
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
154
154
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
155
155
|
repo_dir: gems
|
156
156
|
- name: io-console
|
@@ -170,27 +170,31 @@ gems:
|
|
170
170
|
source:
|
171
171
|
type: git
|
172
172
|
name: ruby/gem_rbs_collection
|
173
|
-
revision:
|
173
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
174
174
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
175
175
|
repo_dir: gems
|
176
176
|
- name: minitest
|
177
|
-
version: '
|
177
|
+
version: '5.25'
|
178
178
|
source:
|
179
|
-
type:
|
179
|
+
type: git
|
180
|
+
name: ruby/gem_rbs_collection
|
181
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
182
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
183
|
+
repo_dir: gems
|
180
184
|
- name: monitor
|
181
185
|
version: '0'
|
182
186
|
source:
|
183
187
|
type: stdlib
|
184
188
|
- name: mutex_m
|
185
|
-
version:
|
189
|
+
version: 0.3.0
|
186
190
|
source:
|
187
|
-
type:
|
191
|
+
type: rubygems
|
188
192
|
- name: nokogiri
|
189
193
|
version: '1.11'
|
190
194
|
source:
|
191
195
|
type: git
|
192
196
|
name: ruby/gem_rbs_collection
|
193
|
-
revision:
|
197
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
194
198
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
195
199
|
repo_dir: gems
|
196
200
|
- name: openssl
|
@@ -206,7 +210,7 @@ gems:
|
|
206
210
|
source:
|
207
211
|
type: git
|
208
212
|
name: ruby/gem_rbs_collection
|
209
|
-
revision:
|
213
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
210
214
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
211
215
|
repo_dir: gems
|
212
216
|
- name: parser
|
@@ -214,7 +218,7 @@ gems:
|
|
214
218
|
source:
|
215
219
|
type: git
|
216
220
|
name: ruby/gem_rbs_collection
|
217
|
-
revision:
|
221
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
218
222
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
219
223
|
repo_dir: gems
|
220
224
|
- name: pathname
|
@@ -230,7 +234,7 @@ gems:
|
|
230
234
|
source:
|
231
235
|
type: git
|
232
236
|
name: ruby/gem_rbs_collection
|
233
|
-
revision:
|
237
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
234
238
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
235
239
|
repo_dir: gems
|
236
240
|
- name: rails-dom-testing
|
@@ -238,7 +242,7 @@ gems:
|
|
238
242
|
source:
|
239
243
|
type: git
|
240
244
|
name: ruby/gem_rbs_collection
|
241
|
-
revision:
|
245
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
242
246
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
243
247
|
repo_dir: gems
|
244
248
|
- name: rails-html-sanitizer
|
@@ -246,7 +250,7 @@ gems:
|
|
246
250
|
source:
|
247
251
|
type: git
|
248
252
|
name: ruby/gem_rbs_collection
|
249
|
-
revision:
|
253
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
250
254
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
251
255
|
repo_dir: gems
|
252
256
|
- name: railties
|
@@ -254,7 +258,7 @@ gems:
|
|
254
258
|
source:
|
255
259
|
type: git
|
256
260
|
name: ruby/gem_rbs_collection
|
257
|
-
revision:
|
261
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
258
262
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
259
263
|
repo_dir: gems
|
260
264
|
- name: rainbow
|
@@ -262,7 +266,7 @@ gems:
|
|
262
266
|
source:
|
263
267
|
type: git
|
264
268
|
name: ruby/gem_rbs_collection
|
265
|
-
revision:
|
269
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
266
270
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
267
271
|
repo_dir: gems
|
268
272
|
- name: rake
|
@@ -270,11 +274,11 @@ gems:
|
|
270
274
|
source:
|
271
275
|
type: git
|
272
276
|
name: ruby/gem_rbs_collection
|
273
|
-
revision:
|
277
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
274
278
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
275
279
|
repo_dir: gems
|
276
280
|
- name: rbs
|
277
|
-
version: 3.
|
281
|
+
version: 3.9.1
|
278
282
|
source:
|
279
283
|
type: rubygems
|
280
284
|
- name: rdoc
|
@@ -286,7 +290,7 @@ gems:
|
|
286
290
|
source:
|
287
291
|
type: git
|
288
292
|
name: ruby/gem_rbs_collection
|
289
|
-
revision:
|
293
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
290
294
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
291
295
|
repo_dir: gems
|
292
296
|
- name: rubocop
|
@@ -294,7 +298,7 @@ gems:
|
|
294
298
|
source:
|
295
299
|
type: git
|
296
300
|
name: ruby/gem_rbs_collection
|
297
|
-
revision:
|
301
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
298
302
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
299
303
|
repo_dir: gems
|
300
304
|
- name: rubocop-ast
|
@@ -302,7 +306,7 @@ gems:
|
|
302
306
|
source:
|
303
307
|
type: git
|
304
308
|
name: ruby/gem_rbs_collection
|
305
|
-
revision:
|
309
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
306
310
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
307
311
|
repo_dir: gems
|
308
312
|
- name: securerandom
|
@@ -322,7 +326,7 @@ gems:
|
|
322
326
|
source:
|
323
327
|
type: git
|
324
328
|
name: ruby/gem_rbs_collection
|
325
|
-
revision:
|
329
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
326
330
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
327
331
|
repo_dir: gems
|
328
332
|
- name: stringio
|
@@ -338,7 +342,7 @@ gems:
|
|
338
342
|
source:
|
339
343
|
type: git
|
340
344
|
name: ruby/gem_rbs_collection
|
341
|
-
revision:
|
345
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
342
346
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
343
347
|
repo_dir: gems
|
344
348
|
- name: time
|
@@ -358,7 +362,7 @@ gems:
|
|
358
362
|
source:
|
359
363
|
type: git
|
360
364
|
name: ruby/gem_rbs_collection
|
361
|
-
revision:
|
365
|
+
revision: eb6867fdb70e82e3aac6b51623ed1b6760c3c072
|
362
366
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
363
367
|
repo_dir: gems
|
364
368
|
- name: uri
|
@@ -7,8 +7,11 @@ module RbsActiverecord
|
|
7
7
|
|
8
8
|
attr_reader model: RbsActiverecord::Model
|
9
9
|
|
10
|
+
attr_reader pure_accessors: bool
|
11
|
+
|
10
12
|
# @rbs model: RbsActiverecord::Model
|
11
|
-
|
13
|
+
# @rbs pure_accessors: bool
|
14
|
+
def initialize: (RbsActiverecord::Model model, pure_accessors: bool) -> void
|
12
15
|
|
13
16
|
def generate: () -> String
|
14
17
|
|
@@ -10,8 +10,11 @@ module RbsActiverecord
|
|
10
10
|
|
11
11
|
attr_reader model: RbsActiverecord::Model
|
12
12
|
|
13
|
+
attr_reader pure_accessors: bool
|
14
|
+
|
13
15
|
# @rbs klass: singleton(ActiveRecord::Base)
|
14
|
-
|
16
|
+
# @rbs pure_accessors: bool
|
17
|
+
def initialize: (singleton(ActiveRecord::Base) klass, ?pure_accessors: bool) -> void
|
15
18
|
|
16
19
|
def generate: () -> String
|
17
20
|
|
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module RbsActiverecord
|
4
4
|
class RakeTask < Rake::TaskLib
|
5
|
-
attr_accessor name:
|
5
|
+
attr_accessor name: Symbol
|
6
6
|
|
7
|
-
attr_accessor
|
7
|
+
attr_accessor pure_accessors: bool
|
8
|
+
|
9
|
+
attr_accessor signature_root_dir: Pathname
|
8
10
|
|
9
11
|
# @rbs name: Symbol
|
10
12
|
# @rbs &block: (RakeTask) -> void
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbs_activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeshi KOMIYA
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -126,6 +126,7 @@ metadata:
|
|
126
126
|
homepage_uri: https://github.com/tk0miya/rbs_activerecord
|
127
127
|
source_code_uri: https://github.com/tk0miya/rbs_activerecord
|
128
128
|
changelog_uri: https://github.com/tk0miya/rbs_activerecord
|
129
|
+
rubygems_mfa_required: 'true'
|
129
130
|
post_install_message:
|
130
131
|
rdoc_options: []
|
131
132
|
require_paths:
|
@@ -134,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
135
|
requirements:
|
135
136
|
- - ">="
|
136
137
|
- !ruby/object:Gem::Version
|
137
|
-
version: 3.
|
138
|
+
version: 3.2.0
|
138
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
140
|
requirements:
|
140
141
|
- - ">="
|