rbs_activerecord 1.1.0 → 1.1.2

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: ec157eccf748c923a3f44138390f064e4b3aea347fdfe9744be6a5fa9954a947
4
- data.tar.gz: f6a433a5a7c3dc60806045240bd71ee4817fc8c1cf36a0af37fc66098821ff36
3
+ metadata.gz: d4ad6fbea812a56e76da7f762c9627daafa7cffc61a3f9d15f93a979a2c367b6
4
+ data.tar.gz: 4e7987443636d465a0b804cb772a50023a799b28cd51f0a3a55dd932e4818ab8
5
5
  SHA512:
6
- metadata.gz: 8da50a2d1a78c22b997ab57c94476ee53abffb30688c4222982543dd84e9ed9dc97a99fd9a128a6fb4ba307f83d545e239291354ef67df0f66cfc7f4424b6d4c
7
- data.tar.gz: 0fc67b6d496d3472a1f69ea3105d51da358d1ae3f48f1715bbcc24e02ffd229ff144319f493ecec23937f6b161ef00f11eaecba06e0b12fc49e480140bb9e1e8
6
+ metadata.gz: 7a1c947366f0227772a72ca3f2c055749da924e2bac93a5c0743b41b194bf01c910d5a79ecaeb113053fac3f277f40d74bbe88632b3bbf8f02912fbe7beced98
7
+ data.tar.gz: 8b0c2312135d3ab36db23f7b4379289db1da865a2daade66f281bbe752fee675226d88334f843b631207727438137a2d40128dd65e2ca3344b0c565a7e8f047d
@@ -8,6 +8,11 @@
8
8
  "activerecord",
9
9
  "codebases",
10
10
  "Cyclomatic",
11
- "kaminari"
11
+ "kaminari",
12
+ "mkpath",
13
+ "modname",
14
+ "requireds",
15
+ "rmtree",
16
+ "tasklib"
12
17
  ]
13
18
  }
data/README.md CHANGED
@@ -41,11 +41,12 @@ Main differences between rbs_activerecord and rbs_rails are:
41
41
  * Support `alias_attribute` ([#263](https://github.com/pocke/rbs_rails/pull/263))
42
42
  * Support generating model definitions within the concern module ([#209](https://github.com/pocke/rbs_rails/pull/209))
43
43
  * Support extension ActiveRecord from 3rd party gems ([#254](https://github.com/pocke/rbs_rails/pull/254))
44
- * ex. kaminari
44
+ * ex. [kaminari-activerecord](https://github.com/ruby/gem_rbs_collection/pull/725)
45
45
  * Support composite primary keys ([#275](https://github.com/pocke/rbs_rails/pull/275))
46
46
  * Extend return types of #pluck ([#273](https://github.com/pocke/rbs_rails/pull/273))
47
47
  * Override types of CollectionProxy ([#289](https://github.com/pocke/rbs_rails/pull/289))
48
48
  * Bug fixes
49
+ * [#290](https://github.com/pocke/rbs_rails/pull/290)
49
50
  * [#286](https://github.com/pocke/rbs_rails/pull/286)
50
51
  * [#285](https://github.com/pocke/rbs_rails/pull/285)
51
52
  * [#278](https://github.com/pocke/rbs_rails/pull/278)
data/Steepfile CHANGED
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # D = Steep::Diagnostic
3
+ D = Steep::Diagnostic
4
4
 
5
5
  target :lib do
6
6
  signature "sig"
7
7
 
8
8
  check "lib"
9
+
10
+ configure_code_diagnostics(D::Ruby.strict)
11
+ implicitly_returns_nil!
9
12
  end
@@ -22,8 +22,8 @@ module RbsActiverecord
22
22
  values = args[1].keys
23
23
  options = args[2] || {}
24
24
  else
25
- values = []
26
- options = {}
25
+ values = [] #: Array[String | Symbol]
26
+ options = {} #: Hash[Symbol, untyped]
27
27
  end
28
28
 
29
29
  [name, values, options]
@@ -37,13 +37,20 @@ module RbsActiverecord
37
37
  return "" unless name
38
38
  return "" unless options.fetch(:instance_methods, true)
39
39
 
40
- values.map do |value|
40
+ name_methods = <<~RBS
41
+ def #{name}: () -> String
42
+ def #{name}=: (String) -> String
43
+ | (Integer) -> Integer
44
+ RBS
45
+ value_methods = values.map do |value|
41
46
  method_name = enum_method_name(name, value, options)
42
47
  <<~RBS
43
48
  def #{method_name}!: () -> void
44
49
  def #{method_name}?: () -> bool
45
50
  RBS
46
51
  end.join("\n")
52
+
53
+ name_methods + value_methods
47
54
  end
48
55
  end
49
56
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RbsActiverecord
4
+ class Generator
5
+ module Enum
6
+ class Mappings < Base
7
+ attr_reader :model #: RbsActiverecord::Model
8
+ attr_reader :declarations #: Array[Prism::CallNode]
9
+
10
+ # @rbs model: RbsActiverecord::Model
11
+ # @rbs declarations: Hash[String, Array[Prism::CallNode]]
12
+ def initialize(model, declarations) #: void
13
+ @model = model
14
+ @declarations = declarations.fetch(model.klass.name.to_s, [])
15
+
16
+ super()
17
+ end
18
+
19
+ def generate #: String
20
+ <<~RBS.strip
21
+ module GeneratedEnumMappingMethods
22
+ #{enums.map { |node| enum(node) }.join("\n")}
23
+ end
24
+ RBS
25
+ end
26
+
27
+ private
28
+
29
+ def enums #: Array[Prism::CallNode]
30
+ declarations.select { |node| node.name == :enum }
31
+ end
32
+
33
+ # @rbs node: Prism::CallNode
34
+ def enum(node) #: String
35
+ name, = parse_arguments(node)
36
+
37
+ return "" unless name
38
+
39
+ "def #{name.to_s.pluralize}: () -> ActiveSupport::HashWithIndifferentAccess[Symbol, untyped]"
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -7,10 +7,10 @@ module RbsActiverecord
7
7
  attr_reader :declarations #: Array[Prism::CallNode]
8
8
 
9
9
  # @rbs model: RbsActiverecord::Model
10
- # @rbs delarations: Hash[String, Array[Prism::CallNode]]
10
+ # @rbs declarations: Hash[String, Array[Prism::CallNode]]
11
11
  def initialize(model, declarations) #: void
12
12
  @model = model
13
- @declarations = declarations.fetch(model.klass.name, [])
13
+ @declarations = declarations.fetch(model.klass.name.to_s, [])
14
14
  end
15
15
 
16
16
  def generate #: String
@@ -28,7 +28,7 @@ module RbsActiverecord
28
28
  end
29
29
 
30
30
  # @rbs node: Prism::CallNode
31
- def scope(node) #: String # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
31
+ def scope(node) #: String
32
32
  args = node.arguments&.arguments
33
33
  return "" unless args
34
34
 
@@ -40,7 +40,7 @@ module RbsActiverecord
40
40
  params = lambda_params(body)
41
41
  "def #{name.value}: (#{params}) -> Relation"
42
42
  when Prism::CallNode
43
- if (body.name == :lambda || body.name == :proc) && body.block
43
+ if %i[lambda proc].include?(body.name) && body.block
44
44
  block = body.block #: Prism::BlockNode
45
45
  params = lambda_params(block)
46
46
  "def #{name.value}: (#{params}) -> Relation"
@@ -31,6 +31,7 @@ module RbsActiverecord
31
31
  #{DelegatedType::InstanceMethods.new(model, declarations).generate}
32
32
  #{DelegatedType::Scopes.new(model, declarations).generate}
33
33
  #{Enum::InstanceMethods.new(model, declarations).generate}
34
+ #{Enum::Mappings.new(model, declarations).generate}
34
35
  #{Enum::Scopes.new(model, declarations).generate}
35
36
  #{Scopes.new(model, declarations).generate}
36
37
 
@@ -66,6 +67,7 @@ module RbsActiverecord
66
67
 
67
68
  extend ::ActiveRecord::Base::ClassMethods[#{klass_name}, #{klass_name}::ActiveRecord_Relation, #{primary_key_type}]
68
69
  #{scope_class_methods}
70
+ extend GeneratedEnumMappingMethods
69
71
  extend GeneratedPluckOverloads
70
72
 
71
73
  include GeneratedActiveStorageInstanceMethods
@@ -3,8 +3,6 @@
3
3
  module RbsActiverecord
4
4
  module Parser
5
5
  module Evaluator
6
- # @rbs! def self.eval_node: (Prism::Node node) -> untyped
7
-
8
6
  # @rbs node: Prism::Node
9
7
  def eval_node(node) #: untyped # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
10
8
  case node
@@ -25,7 +25,7 @@ module RbsActiverecord
25
25
  index = decls.index { |node| node.name == :include }
26
26
  break unless index
27
27
 
28
- included_module = decls.delete_at(index)
28
+ included_module = decls.delete_at(index) || raise
29
29
  included_blocks = included_blocks_for(included_module)
30
30
  included_blocks.reverse_each do |included|
31
31
  decls.insert(index, *block_body_of(included))
@@ -40,7 +40,7 @@ module RbsActiverecord
40
40
  # @rbs override
41
41
  def visit_call_node(node)
42
42
  decls[current_namespace] ||= []
43
- decls[current_namespace] << node
43
+ decls.fetch(current_namespace) << node
44
44
  end
45
45
 
46
46
  # @rbs override
@@ -4,14 +4,6 @@ require "prism"
4
4
 
5
5
  module RbsActiverecord
6
6
  module Parser
7
- # NOTE: rbs-inline-0.9.0 does not support module_function yet.
8
- # refs: https://github.com/soutaro/rbs-inline/pull/118
9
- #
10
- # @rbs!
11
- # def self.parse: (String code) -> Hash[String, Array[Prism::CallNode]]
12
- # def self.parse_file: (String filename) -> Hash[String, Array[Prism::CallNode]]
13
- # def self.eval_node: (Prism::Node node) -> untyped
14
-
15
7
  # @rbs code: String
16
8
  def parse(code) #: Hash[String, Array[Prism::CallNode]]
17
9
  result = Prism.parse(code)
@@ -49,7 +49,6 @@ module RbsActiverecord
49
49
  next unless klass.connection.table_exists?(klass.table_name)
50
50
 
51
51
  rbs = Generator.new(klass).generate
52
- next unless rbs
53
52
 
54
53
  path = signature_root_dir / "app/models/#{klass.name.underscore}.rbs"
55
54
  path.dirname.mkpath
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsActiverecord
4
- VERSION = "1.1.0"
4
+ VERSION = "1.1.2"
5
5
  end
@@ -11,6 +11,7 @@ require_relative "rbs_activerecord/generator/delegated_type/instance_methods"
11
11
  require_relative "rbs_activerecord/generator/delegated_type/scopes"
12
12
  require_relative "rbs_activerecord/generator/enum/base"
13
13
  require_relative "rbs_activerecord/generator/enum/instance_methods"
14
+ require_relative "rbs_activerecord/generator/enum/mappings"
14
15
  require_relative "rbs_activerecord/generator/enum/scopes"
15
16
  require_relative "rbs_activerecord/generator/pluck_overloads"
16
17
  require_relative "rbs_activerecord/generator/scopes"
@@ -6,7 +6,7 @@ gems:
6
6
  source:
7
7
  type: git
8
8
  name: ruby/gem_rbs_collection
9
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
9
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
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: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
17
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
18
18
  remote: https://github.com/ruby/gem_rbs_collection.git
19
19
  repo_dir: gems
20
20
  - name: activejob
@@ -22,15 +22,15 @@ gems:
22
22
  source:
23
23
  type: git
24
24
  name: ruby/gem_rbs_collection
25
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
25
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
26
26
  remote: https://github.com/ruby/gem_rbs_collection.git
27
27
  repo_dir: gems
28
28
  - name: activemodel
29
- version: '7.0'
29
+ version: '7.1'
30
30
  source:
31
31
  type: git
32
32
  name: ruby/gem_rbs_collection
33
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
33
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
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: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
41
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
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: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
49
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
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: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
57
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
58
58
  remote: https://github.com/ruby/gem_rbs_collection.git
59
59
  repo_dir: gems
60
60
  - name: ast
@@ -62,19 +62,23 @@ gems:
62
62
  source:
63
63
  type: git
64
64
  name: ruby/gem_rbs_collection
65
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
65
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
66
66
  remote: https://github.com/ruby/gem_rbs_collection.git
67
67
  repo_dir: gems
68
68
  - name: base64
69
- version: '0'
69
+ version: '0.1'
70
70
  source:
71
- type: stdlib
71
+ type: git
72
+ name: ruby/gem_rbs_collection
73
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
74
+ remote: https://github.com/ruby/gem_rbs_collection.git
75
+ repo_dir: gems
72
76
  - name: bcrypt
73
77
  version: '3.1'
74
78
  source:
75
79
  type: git
76
80
  name: ruby/gem_rbs_collection
77
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
81
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
78
82
  remote: https://github.com/ruby/gem_rbs_collection.git
79
83
  repo_dir: gems
80
84
  - name: benchmark
@@ -82,9 +86,13 @@ gems:
82
86
  source:
83
87
  type: stdlib
84
88
  - name: bigdecimal
85
- version: '0'
89
+ version: '3.1'
86
90
  source:
87
- type: stdlib
91
+ type: git
92
+ name: ruby/gem_rbs_collection
93
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
94
+ remote: https://github.com/ruby/gem_rbs_collection.git
95
+ repo_dir: gems
88
96
  - name: cgi
89
97
  version: '0'
90
98
  source:
@@ -94,7 +102,7 @@ gems:
94
102
  source:
95
103
  type: git
96
104
  name: ruby/gem_rbs_collection
97
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
105
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
98
106
  remote: https://github.com/ruby/gem_rbs_collection.git
99
107
  repo_dir: gems
100
108
  - name: connection_pool
@@ -102,7 +110,7 @@ gems:
102
110
  source:
103
111
  type: git
104
112
  name: ruby/gem_rbs_collection
105
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
113
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
106
114
  remote: https://github.com/ruby/gem_rbs_collection.git
107
115
  repo_dir: gems
108
116
  - name: date
@@ -113,6 +121,10 @@ gems:
113
121
  version: '0'
114
122
  source:
115
123
  type: stdlib
124
+ - name: digest
125
+ version: '0'
126
+ source:
127
+ type: stdlib
116
128
  - name: erb
117
129
  version: '0'
118
130
  source:
@@ -130,7 +142,7 @@ gems:
130
142
  source:
131
143
  type: git
132
144
  name: ruby/gem_rbs_collection
133
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
145
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
134
146
  remote: https://github.com/ruby/gem_rbs_collection.git
135
147
  repo_dir: gems
136
148
  - name: i18n
@@ -138,7 +150,7 @@ gems:
138
150
  source:
139
151
  type: git
140
152
  name: ruby/gem_rbs_collection
141
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
153
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
142
154
  remote: https://github.com/ruby/gem_rbs_collection.git
143
155
  repo_dir: gems
144
156
  - name: io-console
@@ -158,7 +170,7 @@ gems:
158
170
  source:
159
171
  type: git
160
172
  name: ruby/gem_rbs_collection
161
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
173
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
162
174
  remote: https://github.com/ruby/gem_rbs_collection.git
163
175
  repo_dir: gems
164
176
  - name: minitest
@@ -178,7 +190,7 @@ gems:
178
190
  source:
179
191
  type: git
180
192
  name: ruby/gem_rbs_collection
181
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
193
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
182
194
  remote: https://github.com/ruby/gem_rbs_collection.git
183
195
  repo_dir: gems
184
196
  - name: openssl
@@ -194,7 +206,7 @@ gems:
194
206
  source:
195
207
  type: git
196
208
  name: ruby/gem_rbs_collection
197
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
209
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
198
210
  remote: https://github.com/ruby/gem_rbs_collection.git
199
211
  repo_dir: gems
200
212
  - name: parser
@@ -202,7 +214,7 @@ gems:
202
214
  source:
203
215
  type: git
204
216
  name: ruby/gem_rbs_collection
205
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
217
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
206
218
  remote: https://github.com/ruby/gem_rbs_collection.git
207
219
  repo_dir: gems
208
220
  - name: pathname
@@ -210,7 +222,7 @@ gems:
210
222
  source:
211
223
  type: stdlib
212
224
  - name: prism
213
- version: 1.0.0
225
+ version: 1.2.0
214
226
  source:
215
227
  type: rubygems
216
228
  - name: rack
@@ -218,7 +230,7 @@ gems:
218
230
  source:
219
231
  type: git
220
232
  name: ruby/gem_rbs_collection
221
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
233
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
222
234
  remote: https://github.com/ruby/gem_rbs_collection.git
223
235
  repo_dir: gems
224
236
  - name: rails-dom-testing
@@ -226,7 +238,7 @@ gems:
226
238
  source:
227
239
  type: git
228
240
  name: ruby/gem_rbs_collection
229
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
241
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
230
242
  remote: https://github.com/ruby/gem_rbs_collection.git
231
243
  repo_dir: gems
232
244
  - name: rails-html-sanitizer
@@ -234,7 +246,7 @@ gems:
234
246
  source:
235
247
  type: git
236
248
  name: ruby/gem_rbs_collection
237
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
249
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
238
250
  remote: https://github.com/ruby/gem_rbs_collection.git
239
251
  repo_dir: gems
240
252
  - name: railties
@@ -242,7 +254,7 @@ gems:
242
254
  source:
243
255
  type: git
244
256
  name: ruby/gem_rbs_collection
245
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
257
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
246
258
  remote: https://github.com/ruby/gem_rbs_collection.git
247
259
  repo_dir: gems
248
260
  - name: rainbow
@@ -250,7 +262,7 @@ gems:
250
262
  source:
251
263
  type: git
252
264
  name: ruby/gem_rbs_collection
253
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
265
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
254
266
  remote: https://github.com/ruby/gem_rbs_collection.git
255
267
  repo_dir: gems
256
268
  - name: rake
@@ -258,11 +270,11 @@ gems:
258
270
  source:
259
271
  type: git
260
272
  name: ruby/gem_rbs_collection
261
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
273
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
262
274
  remote: https://github.com/ruby/gem_rbs_collection.git
263
275
  repo_dir: gems
264
276
  - name: rbs
265
- version: 3.6.1
277
+ version: 3.8.1
266
278
  source:
267
279
  type: rubygems
268
280
  - name: rdoc
@@ -274,7 +286,7 @@ gems:
274
286
  source:
275
287
  type: git
276
288
  name: ruby/gem_rbs_collection
277
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
289
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
278
290
  remote: https://github.com/ruby/gem_rbs_collection.git
279
291
  repo_dir: gems
280
292
  - name: rubocop
@@ -282,7 +294,7 @@ gems:
282
294
  source:
283
295
  type: git
284
296
  name: ruby/gem_rbs_collection
285
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
297
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
286
298
  remote: https://github.com/ruby/gem_rbs_collection.git
287
299
  repo_dir: gems
288
300
  - name: rubocop-ast
@@ -290,7 +302,7 @@ gems:
290
302
  source:
291
303
  type: git
292
304
  name: ruby/gem_rbs_collection
293
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
305
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
294
306
  remote: https://github.com/ruby/gem_rbs_collection.git
295
307
  repo_dir: gems
296
308
  - name: securerandom
@@ -310,9 +322,13 @@ gems:
310
322
  source:
311
323
  type: git
312
324
  name: ruby/gem_rbs_collection
313
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
325
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
314
326
  remote: https://github.com/ruby/gem_rbs_collection.git
315
327
  repo_dir: gems
328
+ - name: stringio
329
+ version: '0'
330
+ source:
331
+ type: stdlib
316
332
  - name: tempfile
317
333
  version: '0'
318
334
  source:
@@ -322,7 +338,7 @@ gems:
322
338
  source:
323
339
  type: git
324
340
  name: ruby/gem_rbs_collection
325
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
341
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
326
342
  remote: https://github.com/ruby/gem_rbs_collection.git
327
343
  repo_dir: gems
328
344
  - name: time
@@ -342,7 +358,7 @@ gems:
342
358
  source:
343
359
  type: git
344
360
  name: ruby/gem_rbs_collection
345
- revision: 9b07b7bde4c9f656f3f6d785bd676320032cecb4
361
+ revision: 27243a7d18fd7f7333b9daa35eeca2c37472586e
346
362
  remote: https://github.com/ruby/gem_rbs_collection.git
347
363
  repo_dir: gems
348
364
  - name: uri
@@ -0,0 +1,26 @@
1
+ # Generated from lib/rbs_activerecord/generator/enum/mappings.rb with RBS::Inline
2
+
3
+ module RbsActiverecord
4
+ class Generator
5
+ module Enum
6
+ class Mappings < Base
7
+ attr_reader model: RbsActiverecord::Model
8
+
9
+ attr_reader declarations: Array[Prism::CallNode]
10
+
11
+ # @rbs model: RbsActiverecord::Model
12
+ # @rbs declarations: Hash[String, Array[Prism::CallNode]]
13
+ def initialize: (RbsActiverecord::Model model, Hash[String, Array[Prism::CallNode]] declarations) -> void
14
+
15
+ def generate: () -> String
16
+
17
+ private
18
+
19
+ def enums: () -> Array[Prism::CallNode]
20
+
21
+ # @rbs node: Prism::CallNode
22
+ def enum: (Prism::CallNode node) -> String
23
+ end
24
+ end
25
+ end
26
+ end
@@ -8,8 +8,8 @@ module RbsActiverecord
8
8
  attr_reader declarations: Array[Prism::CallNode]
9
9
 
10
10
  # @rbs model: RbsActiverecord::Model
11
- # @rbs delarations: Hash[String, Array[Prism::CallNode]]
12
- def initialize: (RbsActiverecord::Model model, untyped declarations) -> void
11
+ # @rbs declarations: Hash[String, Array[Prism::CallNode]]
12
+ def initialize: (RbsActiverecord::Model model, Hash[String, Array[Prism::CallNode]] declarations) -> void
13
13
 
14
14
  def generate: () -> String
15
15
 
@@ -3,10 +3,8 @@
3
3
  module RbsActiverecord
4
4
  module Parser
5
5
  module Evaluator
6
- def self.eval_node: (Prism::Node node) -> untyped
7
-
8
6
  # @rbs node: Prism::Node
9
- def eval_node: (Prism::Node node) -> untyped
7
+ def self?.eval_node: (Prism::Node node) -> untyped
10
8
  end
11
9
  end
12
10
  end
@@ -2,18 +2,12 @@
2
2
 
3
3
  module RbsActiverecord
4
4
  module Parser
5
- def self.parse: (String code) -> Hash[String, Array[Prism::CallNode]]
6
-
7
- def self.parse_file: (String filename) -> Hash[String, Array[Prism::CallNode]]
8
-
9
- def self.eval_node: (Prism::Node node) -> untyped
10
-
11
5
  # @rbs code: String
12
- def parse: (String code) -> Hash[String, Array[Prism::CallNode]]
6
+ def self?.parse: (String code) -> Hash[String, Array[Prism::CallNode]]
13
7
 
14
- def parse_file: (untyped filename) -> Hash[String, Array[Prism::CallNode]]
8
+ def self?.parse_file: (untyped filename) -> Hash[String, Array[Prism::CallNode]]
15
9
 
16
10
  # @rbs node: Prism::Node
17
- def eval_node: (Prism::Node node) -> untyped
11
+ def self?.eval_node: (Prism::Node node) -> untyped
18
12
  end
19
13
  end
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.1.0
4
+ version: 1.1.2
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: 2024-11-16 00:00:00.000000000 Z
11
+ date: 2025-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -78,6 +78,7 @@ files:
78
78
  - lib/rbs_activerecord/generator/delegated_type/scopes.rb
79
79
  - lib/rbs_activerecord/generator/enum/base.rb
80
80
  - lib/rbs_activerecord/generator/enum/instance_methods.rb
81
+ - lib/rbs_activerecord/generator/enum/mappings.rb
81
82
  - lib/rbs_activerecord/generator/enum/scopes.rb
82
83
  - lib/rbs_activerecord/generator/pluck_overloads.rb
83
84
  - lib/rbs_activerecord/generator/scopes.rb
@@ -104,6 +105,7 @@ files:
104
105
  - sig/rbs_activerecord/generator/delegated_type/scopes.rbs
105
106
  - sig/rbs_activerecord/generator/enum/base.rbs
106
107
  - sig/rbs_activerecord/generator/enum/instance_methods.rbs
108
+ - sig/rbs_activerecord/generator/enum/mappings.rbs
107
109
  - sig/rbs_activerecord/generator/enum/scopes.rbs
108
110
  - sig/rbs_activerecord/generator/pluck_overloads.rbs
109
111
  - sig/rbs_activerecord/generator/scopes.rbs
@@ -124,7 +126,7 @@ metadata:
124
126
  homepage_uri: https://github.com/tk0miya/rbs_activerecord
125
127
  source_code_uri: https://github.com/tk0miya/rbs_activerecord
126
128
  changelog_uri: https://github.com/tk0miya/rbs_activerecord
127
- post_install_message:
129
+ post_install_message:
128
130
  rdoc_options: []
129
131
  require_paths:
130
132
  - lib
@@ -140,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
142
  version: '0'
141
143
  requirements: []
142
144
  rubygems_version: 3.5.22
143
- signing_key:
145
+ signing_key:
144
146
  specification_version: 4
145
147
  summary: A RBS files generator for activerecord gem
146
148
  test_files: []