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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a901f8b1ee98a3837e7ee4182ffb3d247466793f367ac6b764487271f2088445
4
- data.tar.gz: 749b7ec1f3dc34235087df037f7f94418e09729cff3229717e1620a08d6abbaa
3
+ metadata.gz: b56f18a5772a23292e3ae455e90f9e6d4deff43a1f1d89b0df9f80d67489218a
4
+ data.tar.gz: 698af6fa420f68d4068effe5aa65fb474656b89afa18118c0dc76d70f83d937f
5
5
  SHA512:
6
- metadata.gz: 6c5e46b70af5fb36fbfacf1beea9f949ad18b31a78ca13bfe37578f0fb8d4c5c88738bbc9039f09adde10ce49dc7f43a49d60664ac9130f4614178a8781259bf
7
- data.tar.gz: 16cdca38fc3d9d72ba97ab9c076996aea8c58864bdcb41476a0bf8d9f86123a1042fe305a4e3ff77022ad86febeba50c6d7c632fc2bf8f3512af8b9cd58c4858
6
+ metadata.gz: 0e50032631a3a6f95d34de4decb79d49d673409f3d1196c670c364307ecf1f2506d05edc1fe3ee321fc80e1f643853d0d895276b75bec4545808f1788f1019da
7
+ data.tar.gz: 23152212c926367241ad8e29b38ebe2b8861b8b046df7b1dff3314b49e5a84bacc1aaa70529094e8b7767e4e61d178e829dbe5b14b93ed7f7656d209eea229cd
data/.rubocop.yml CHANGED
@@ -1,5 +1,10 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.1
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
 
@@ -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
@@ -8,6 +8,7 @@ RuboCop::RakeTask.new
8
8
  task default: :rubocop
9
9
 
10
10
  namespace :rbs do
11
+ desc "Generate RBS files"
11
12
  task :generate do
12
13
  sh "rbs-inline", "--opt-out", "--output=sig", "lib"
13
14
  end
@@ -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
@@ -44,7 +44,7 @@ module RbsActiverecord
44
44
  RBS
45
45
  when :has_many_attached
46
46
  <<~RBS
47
- def #{name}: () -> ::ActiveStroage::Attached::Many
47
+ def #{name}: () -> ::ActiveStorage::Attached::Many
48
48
  def #{name}=: (untyped) -> untyped
49
49
  RBS
50
50
  else
@@ -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
- def initialize(model) #: void
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
- def initialize(klass) #: void
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, Metrics/MethodLength, Metrics/PerceivedComplexity
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
- return [] unless path && File.exist?(path)
35
-
36
- declarations = Parser.parse_file(path)
37
- declarations.fetch(name, [])
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, :signature_root_dir
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 = :'rbs:activerecord', &block) #: void
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 Metris/CyclomaticComplexity
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsActiverecord
4
- VERSION = "1.2.1"
4
+ VERSION = "1.3.0"
5
5
  end
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: '0'
177
+ version: '5.25'
178
178
  source:
179
- type: stdlib
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: '0'
189
+ version: 0.3.0
186
190
  source:
187
- type: stdlib
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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.8.1
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
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
- def initialize: (RbsActiverecord::Model model) -> void
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
- def initialize: (singleton(ActiveRecord::Base) klass) -> void
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: untyped
5
+ attr_accessor name: Symbol
6
6
 
7
- attr_accessor signature_root_dir: untyped
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.2.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-03-22 00:00:00.000000000 Z
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.1.0
138
+ version: 3.2.0
138
139
  required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  requirements:
140
141
  - - ">="