rbs_discard 1.0.1 → 1.1.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: 75316e2c4c4f29769f684e16e00956fa7f218b17869930ce476e68a1e0de5e33
4
- data.tar.gz: 73a550a0985bde4caebd2caacdc7cce222c92603401b23d5cd4ece69cb3574b0
3
+ metadata.gz: 48ac86d70573860812aefcaf8aa71b16fde4e403b4db101b061055d453dc5bcf
4
+ data.tar.gz: 8b7f2129cba5d21cc493718292f91891b352572b12e30be62163a0129ecaf698
5
5
  SHA512:
6
- metadata.gz: 9b5ab26259cbb4ec81f6fe91f71c2311be19efe947131a66ef8a6cd0f0c877a3196291fe79e8f644aea604327abe1a905c6799f1e16db0531a4f5db369985547
7
- data.tar.gz: a2f65901d90a946588604b46aa8177e011d2e93d9a9faf7a58f1470c47db594eb3012c4c31a7afb1303820c2821530c6dceddc23c77918ab64f885a56e96e2cd
6
+ metadata.gz: e91fec615937559b594f0d6bdc215d27aa8adbad65c0333d426974d7ff936af3e9ec64d2338d62adb5de17978ea3a23315153b0f10badbeb608897e1189cd121
7
+ data.tar.gz: 11f66afc4bd6fc594758e0fbf2d31f75967d471aaecdd2fb09ac6fad64ee91412d59a238da9761e2befb9e73efeb72847a039d6f180dcafbe3baa8b374569fd4
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 3.1
3
3
 
4
4
  Style/Documentation:
5
5
  Enabled: false
@@ -16,6 +16,10 @@ Layout/BlockLength:
16
16
  Exclude:
17
17
  - "spec/**/*_spec.rb"
18
18
 
19
+ Layout/LeadingCommentSpace:
20
+ AllowRBSInlineAnnotation: true
21
+ AllowSteepAnnotation: true
22
+
19
23
  Layout/LineLength:
20
24
  Max: 120
21
25
 
@@ -2,5 +2,15 @@
2
2
  "[ruby]": {
3
3
  "editor.defaultFormatter": "Shopify.ruby-lsp",
4
4
  },
5
- "rbs-helper.signature-directory": "sig"
5
+ "rbs-helper.rbs-inline-on-save": true,
6
+ "rbs-helper.rbs-inline-signature-directory": "sig/",
7
+ "cSpell.words": [
8
+ "discardable",
9
+ "mkpath",
10
+ "raketask",
11
+ "rmtree",
12
+ "tasklib",
13
+ "undiscard",
14
+ "undiscarded"
15
+ ]
6
16
  }
data/Steepfile CHANGED
@@ -8,4 +8,5 @@ target :lib do
8
8
  check "lib"
9
9
 
10
10
  configure_code_diagnostics(D::Ruby.lenient)
11
+ implicitly_returns_nil!
11
12
  end
@@ -4,7 +4,7 @@ require "rails"
4
4
 
5
5
  module RbsDiscard
6
6
  class InstallGenerator < ::Rails::Generators::Base
7
- def create_raketask
7
+ def create_raketask #: void
8
8
  create_file "lib/tasks/rbs_discard.rake", <<~RUBY
9
9
  # frozen_string_literal: true
10
10
 
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rbs"
4
+ require_relative "utils"
4
5
 
5
6
  module RbsDiscard
6
7
  module Discard
7
- def self.all
8
+ def self.all #: Array[singleton(Discard::Model)]
8
9
  ObjectSpace.each_object.select do |obj|
9
10
  obj.is_a?(Class) && obj.ancestors.include?(::Discard::Model)
10
11
  rescue StandardError
@@ -12,70 +13,76 @@ module RbsDiscard
12
13
  end
13
14
  end
14
15
 
15
- def self.class_to_rbs(klass)
16
+ # @rbs klass: singleton(Discard::Model)
17
+ def self.class_to_rbs(klass) #: String
16
18
  Generator.new(klass).generate
17
19
  end
18
20
 
19
21
  class Generator
20
- attr_reader :klass, :klass_name
22
+ include Utils
21
23
 
22
- def initialize(klass)
24
+ attr_reader :klass #: singleton(Discard::Model)
25
+ attr_reader :klass_name #: String
26
+
27
+ # @rbs klass: singleton(Discard::Model)
28
+ def initialize(klass) #: void
23
29
  @klass = klass
24
30
  @klass_name = klass.name || ""
25
31
  end
26
32
 
27
- def generate
33
+ def generate #: String
28
34
  format <<~RBS
35
+ # resolve-type-names: false
36
+
29
37
  #{header}
30
- class ActiveRecord_Relation
31
- include Discard::Model::Relation
38
+ class ::#{klass_name}::ActiveRecord_Relation
39
+ include ::Discard::Model::Relation
32
40
  end
33
41
 
34
- class ActiveRecord_Associations_CollectionProxy
35
- include Discard::Model::Relation
42
+ class ::#{klass_name}::ActiveRecord_Associations_CollectionProxy
43
+ include ::Discard::Model::Relation
36
44
  end
37
45
 
38
- include Discard::Model
39
- extend Discard::Model::ClassMethods
46
+ include ::Discard::Model
47
+ extend ::Discard::Model::ClassMethods
40
48
 
41
- def self.kept: () -> #{klass_name}::ActiveRecord_Relation
42
- def self.undiscarded: () -> #{klass_name}::ActiveRecord_Relation
43
- def self.discarded: () -> #{klass_name}::ActiveRecord_Relation
44
- def self.with_discarded: () -> #{klass_name}::ActiveRecord_Relation
49
+ def self.kept: () -> ::#{klass_name}::ActiveRecord_Relation
50
+ def self.undiscarded: () -> ::#{klass_name}::ActiveRecord_Relation
51
+ def self.discarded: () -> ::#{klass_name}::ActiveRecord_Relation
52
+ def self.with_discarded: () -> ::#{klass_name}::ActiveRecord_Relation
45
53
  #{footer}
46
54
  RBS
47
55
  end
48
56
 
49
57
  private
50
58
 
51
- def format(rbs)
59
+ # @rbs rbs: String
60
+ def format(rbs) #: String
52
61
  parsed = RBS::Parser.parse_signature(rbs)
53
62
  StringIO.new.tap do |out|
54
- RBS::Writer.new(out: out).write(parsed[1] + parsed[2])
63
+ RBS::Writer.new(out:).write(parsed[1] + parsed[2])
55
64
  end.string
56
65
  end
57
66
 
58
- def header
59
- namespace = +""
60
- klass_name.split("::").map do |mod_name|
61
- namespace += "::#{mod_name}"
62
- mod_object = Object.const_get(namespace)
67
+ def header #: String
68
+ klass_to_names(klass).map do |name|
69
+ mod_object = Object.const_get(name.to_s)
63
70
  case mod_object
64
71
  when Class
65
72
  # @type var superclass: Class
66
73
  superclass = _ = mod_object.superclass
67
- superclass_name = superclass.name || "Object"
74
+ superclass_name = superclass.name || "::Object"
68
75
 
69
- "class #{mod_name} < ::#{superclass_name}"
76
+ "class #{name} < ::#{superclass_name}"
70
77
  when Module
71
- "module #{mod_name}"
78
+ "module #{name}"
72
79
  else
73
80
  raise "unreachable"
74
81
  end
75
82
  end.join("\n")
76
83
  end
77
84
 
78
- def footer
85
+ def footer #: String
79
86
  "end\n" * klass.module_parents.size
80
87
  end
81
88
  end
@@ -6,9 +6,12 @@ require "rake/tasklib"
6
6
 
7
7
  module RbsDiscard
8
8
  class RakeTask < Rake::TaskLib
9
- attr_accessor :name, :signature_root_dir
9
+ attr_accessor :name #: Symbol
10
+ attr_accessor :signature_root_dir #: Pathname
10
11
 
11
- def initialize(name = :"rbs:discard", &block)
12
+ # @rbs name: Symbol
13
+ # @rbs &block: ?(RakeTask) -> void
14
+ def initialize(name = :"rbs:discard", &block) #: void
12
15
  super()
13
16
 
14
17
  @name = name
@@ -22,14 +25,14 @@ module RbsDiscard
22
25
  define_setup_task
23
26
  end
24
27
 
25
- def define_setup_task
28
+ def define_setup_task #: void
26
29
  desc "Run all tasks of rbs_discard"
27
30
 
28
31
  deps = [:"#{name}:clean", :"#{name}:base_class:generate", :"#{name}:generate"]
29
32
  task("#{name}:setup" => deps)
30
33
  end
31
34
 
32
- def define_generate_base_class_task
35
+ def define_generate_base_class_task #: void
33
36
  desc "Generate RBS files for base classes"
34
37
  task "#{name}:base_class:generate": :environment do
35
38
  signature_root_dir.mkpath
@@ -38,7 +41,7 @@ module RbsDiscard
38
41
  end
39
42
  end
40
43
 
41
- def define_generate_task
44
+ def define_generate_task #: void
42
45
  desc "Generate RBS files for discardable models"
43
46
  task "#{name}:generate" do
44
47
  require "rbs_discard" # load RbsDraper lazily
@@ -54,7 +57,7 @@ module RbsDiscard
54
57
  end
55
58
  end
56
59
 
57
- def define_clean_task
60
+ def define_clean_task #: void
58
61
  desc "Clean RBS files for discardable models"
59
62
  task "#{name}:clean" do
60
63
  signature_root_dir.rmtree if signature_root_dir.exist?
@@ -1,13 +1,15 @@
1
- module Discard
2
- module Model
3
- module ClassMethods
4
- type callback = Symbol | ^() [self: instance] -> void
1
+ # resolve-type-names: false
5
2
 
6
- def discard_column: () -> Symbol
7
- def discard_column=: (Symbol) -> Symbol
3
+ module ::Discard
4
+ module ::Discard::Model
5
+ module ::Discard::Model::ClassMethods
6
+ type ::Discard::Model::ClassMethods::callback[T] = ::Symbol | ^() [self: T] -> void
8
7
 
9
- def before_discard: (*callback) ? { () [self: instance] -> void } -> void
10
- def after_discard: (*callback) ? { () [self: instance] -> void } -> void
8
+ def discard_column: () -> ::Symbol
9
+ def discard_column=: (::Symbol) -> ::Symbol
10
+
11
+ def before_discard: (*::Discard::Model::ClassMethods::callback[instance]) ? { () [self: instance] -> void } -> void
12
+ def after_discard: (*::Discard::Model::ClassMethods::callback[instance]) ? { () [self: instance] -> void } -> void
11
13
  def discard_all: () -> void
12
14
  def discard_all!: () -> void
13
15
  def undiscard_all: () -> void
@@ -25,8 +27,8 @@ module Discard
25
27
  def undiscard_all!: () -> void
26
28
  end
27
29
 
28
- def discard_column: () -> Symbol
29
- def discard_column=: (Symbol) -> Symbol
30
+ def discard_column: () -> ::Symbol
31
+ def discard_column=: (::Symbol) -> ::Symbol
30
32
 
31
33
  def discard: () -> bool
32
34
  def discard!: () -> void
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rbs"
4
+
5
+ module RbsDiscard
6
+ module Utils
7
+ # @rbs klass_name: singleton(Object)
8
+ def klass_to_names(klass) #: Array[RBS::TypeName]
9
+ type_name = RBS::TypeName.parse("::#{klass.name}")
10
+
11
+ names = [type_name] #: Array[RBS::TypeName]
12
+ namespace = type_name.namespace
13
+ until namespace.empty?
14
+ names << namespace.to_type_name
15
+ namespace = namespace.parent
16
+ end
17
+ names.reverse
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsDiscard
4
- VERSION = "1.0.1"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/rbs_discard.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "rbs_discard/discard"
4
+ require_relative "rbs_discard/utils"
4
5
  require_relative "rbs_discard/version"
5
6
 
6
7
  module RbsDiscard
@@ -1,20 +1,36 @@
1
1
  ---
2
2
  path: ".gem_rbs_collection"
3
3
  gems:
4
+ - name: actioncable
5
+ version: '7.1'
6
+ source:
7
+ type: git
8
+ name: ruby/gem_rbs_collection
9
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
10
+ remote: https://github.com/ruby/gem_rbs_collection.git
11
+ repo_dir: gems
4
12
  - name: actionmailer
5
13
  version: '7.0'
6
14
  source:
7
15
  type: git
8
16
  name: ruby/gem_rbs_collection
9
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
17
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
10
18
  remote: https://github.com/ruby/gem_rbs_collection.git
11
19
  repo_dir: gems
12
20
  - name: actionpack
13
- version: '6.0'
21
+ version: '7.2'
14
22
  source:
15
23
  type: git
16
24
  name: ruby/gem_rbs_collection
17
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
25
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
26
+ remote: https://github.com/ruby/gem_rbs_collection.git
27
+ repo_dir: gems
28
+ - name: actiontext
29
+ version: '7.2'
30
+ source:
31
+ type: git
32
+ name: ruby/gem_rbs_collection
33
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
18
34
  remote: https://github.com/ruby/gem_rbs_collection.git
19
35
  repo_dir: gems
20
36
  - name: actionview
@@ -22,7 +38,7 @@ gems:
22
38
  source:
23
39
  type: git
24
40
  name: ruby/gem_rbs_collection
25
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
41
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
26
42
  remote: https://github.com/ruby/gem_rbs_collection.git
27
43
  repo_dir: gems
28
44
  - name: activejob
@@ -30,23 +46,31 @@ gems:
30
46
  source:
31
47
  type: git
32
48
  name: ruby/gem_rbs_collection
33
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
49
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
34
50
  remote: https://github.com/ruby/gem_rbs_collection.git
35
51
  repo_dir: gems
36
52
  - name: activemodel
37
- version: '7.0'
53
+ version: '7.1'
38
54
  source:
39
55
  type: git
40
56
  name: ruby/gem_rbs_collection
41
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
57
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
42
58
  remote: https://github.com/ruby/gem_rbs_collection.git
43
59
  repo_dir: gems
44
60
  - name: activerecord
45
- version: '7.1'
61
+ version: '7.2'
62
+ source:
63
+ type: git
64
+ name: ruby/gem_rbs_collection
65
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
66
+ remote: https://github.com/ruby/gem_rbs_collection.git
67
+ repo_dir: gems
68
+ - name: activestorage
69
+ version: '7.0'
46
70
  source:
47
71
  type: git
48
72
  name: ruby/gem_rbs_collection
49
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
73
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
50
74
  remote: https://github.com/ruby/gem_rbs_collection.git
51
75
  repo_dir: gems
52
76
  - name: activesupport
@@ -54,7 +78,7 @@ gems:
54
78
  source:
55
79
  type: git
56
80
  name: ruby/gem_rbs_collection
57
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
81
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
58
82
  remote: https://github.com/ruby/gem_rbs_collection.git
59
83
  repo_dir: gems
60
84
  - name: ast
@@ -62,17 +86,29 @@ gems:
62
86
  source:
63
87
  type: git
64
88
  name: ruby/gem_rbs_collection
65
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
89
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
66
90
  remote: https://github.com/ruby/gem_rbs_collection.git
67
91
  repo_dir: gems
68
92
  - name: base64
93
+ version: '0.1'
94
+ source:
95
+ type: git
96
+ name: ruby/gem_rbs_collection
97
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
98
+ remote: https://github.com/ruby/gem_rbs_collection.git
99
+ repo_dir: gems
100
+ - name: benchmark
69
101
  version: '0'
70
102
  source:
71
103
  type: stdlib
72
104
  - name: bigdecimal
73
- version: '0'
105
+ version: '3.1'
74
106
  source:
75
- type: stdlib
107
+ type: git
108
+ name: ruby/gem_rbs_collection
109
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
110
+ remote: https://github.com/ruby/gem_rbs_collection.git
111
+ repo_dir: gems
76
112
  - name: cgi
77
113
  version: '0'
78
114
  source:
@@ -82,7 +118,7 @@ gems:
82
118
  source:
83
119
  type: git
84
120
  name: ruby/gem_rbs_collection
85
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
121
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
86
122
  remote: https://github.com/ruby/gem_rbs_collection.git
87
123
  repo_dir: gems
88
124
  - name: connection_pool
@@ -90,13 +126,21 @@ gems:
90
126
  source:
91
127
  type: git
92
128
  name: ruby/gem_rbs_collection
93
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
129
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
94
130
  remote: https://github.com/ruby/gem_rbs_collection.git
95
131
  repo_dir: gems
96
132
  - name: date
97
133
  version: '0'
98
134
  source:
99
135
  type: stdlib
136
+ - name: delegate
137
+ version: '0'
138
+ source:
139
+ type: stdlib
140
+ - name: digest
141
+ version: '0'
142
+ source:
143
+ type: stdlib
100
144
  - name: erb
101
145
  version: '0'
102
146
  source:
@@ -110,7 +154,7 @@ gems:
110
154
  source:
111
155
  type: git
112
156
  name: ruby/gem_rbs_collection
113
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
157
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
114
158
  remote: https://github.com/ruby/gem_rbs_collection.git
115
159
  repo_dir: gems
116
160
  - name: i18n
@@ -118,9 +162,13 @@ gems:
118
162
  source:
119
163
  type: git
120
164
  name: ruby/gem_rbs_collection
121
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
165
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
122
166
  remote: https://github.com/ruby/gem_rbs_collection.git
123
167
  repo_dir: gems
168
+ - name: io-console
169
+ version: '0'
170
+ source:
171
+ type: stdlib
124
172
  - name: json
125
173
  version: '0'
126
174
  source:
@@ -134,7 +182,15 @@ gems:
134
182
  source:
135
183
  type: git
136
184
  name: ruby/gem_rbs_collection
137
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
185
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
186
+ remote: https://github.com/ruby/gem_rbs_collection.git
187
+ repo_dir: gems
188
+ - name: marcel
189
+ version: '1.0'
190
+ source:
191
+ type: git
192
+ name: ruby/gem_rbs_collection
193
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
138
194
  remote: https://github.com/ruby/gem_rbs_collection.git
139
195
  repo_dir: gems
140
196
  - name: mini_mime
@@ -142,7 +198,7 @@ gems:
142
198
  source:
143
199
  type: git
144
200
  name: ruby/gem_rbs_collection
145
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
201
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
146
202
  remote: https://github.com/ruby/gem_rbs_collection.git
147
203
  repo_dir: gems
148
204
  - name: minitest
@@ -162,23 +218,35 @@ gems:
162
218
  source:
163
219
  type: stdlib
164
220
  - name: net-smtp
165
- version: '0'
221
+ version: '0.5'
166
222
  source:
167
- type: stdlib
223
+ type: git
224
+ name: ruby/gem_rbs_collection
225
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
226
+ remote: https://github.com/ruby/gem_rbs_collection.git
227
+ repo_dir: gems
168
228
  - name: nokogiri
169
229
  version: '1.11'
170
230
  source:
171
231
  type: git
172
232
  name: ruby/gem_rbs_collection
173
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
233
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
174
234
  remote: https://github.com/ruby/gem_rbs_collection.git
175
235
  repo_dir: gems
236
+ - name: openssl
237
+ version: '0'
238
+ source:
239
+ type: stdlib
240
+ - name: optparse
241
+ version: '0'
242
+ source:
243
+ type: stdlib
176
244
  - name: parallel
177
245
  version: '1.20'
178
246
  source:
179
247
  type: git
180
248
  name: ruby/gem_rbs_collection
181
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
249
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
182
250
  remote: https://github.com/ruby/gem_rbs_collection.git
183
251
  repo_dir: gems
184
252
  - name: parser
@@ -186,7 +254,7 @@ gems:
186
254
  source:
187
255
  type: git
188
256
  name: ruby/gem_rbs_collection
189
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
257
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
190
258
  remote: https://github.com/ruby/gem_rbs_collection.git
191
259
  repo_dir: gems
192
260
  - name: pathname
@@ -198,7 +266,7 @@ gems:
198
266
  source:
199
267
  type: git
200
268
  name: ruby/gem_rbs_collection
201
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
269
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
202
270
  remote: https://github.com/ruby/gem_rbs_collection.git
203
271
  repo_dir: gems
204
272
  - name: rails-dom-testing
@@ -206,7 +274,23 @@ gems:
206
274
  source:
207
275
  type: git
208
276
  name: ruby/gem_rbs_collection
209
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
277
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
278
+ remote: https://github.com/ruby/gem_rbs_collection.git
279
+ repo_dir: gems
280
+ - name: rails-html-sanitizer
281
+ version: '1.6'
282
+ source:
283
+ type: git
284
+ name: ruby/gem_rbs_collection
285
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
286
+ remote: https://github.com/ruby/gem_rbs_collection.git
287
+ repo_dir: gems
288
+ - name: railties
289
+ version: '6.0'
290
+ source:
291
+ type: git
292
+ name: ruby/gem_rbs_collection
293
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
210
294
  remote: https://github.com/ruby/gem_rbs_collection.git
211
295
  repo_dir: gems
212
296
  - name: rainbow
@@ -214,7 +298,7 @@ gems:
214
298
  source:
215
299
  type: git
216
300
  name: ruby/gem_rbs_collection
217
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
301
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
218
302
  remote: https://github.com/ruby/gem_rbs_collection.git
219
303
  repo_dir: gems
220
304
  - name: rake
@@ -222,15 +306,23 @@ gems:
222
306
  source:
223
307
  type: git
224
308
  name: ruby/gem_rbs_collection
225
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
309
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
226
310
  remote: https://github.com/ruby/gem_rbs_collection.git
227
311
  repo_dir: gems
312
+ - name: rbs
313
+ version: 3.9.0
314
+ source:
315
+ type: rubygems
316
+ - name: rdoc
317
+ version: '0'
318
+ source:
319
+ type: stdlib
228
320
  - name: regexp_parser
229
321
  version: '2.8'
230
322
  source:
231
323
  type: git
232
324
  name: ruby/gem_rbs_collection
233
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
325
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
234
326
  remote: https://github.com/ruby/gem_rbs_collection.git
235
327
  repo_dir: gems
236
328
  - name: rubocop
@@ -238,7 +330,7 @@ gems:
238
330
  source:
239
331
  type: git
240
332
  name: ruby/gem_rbs_collection
241
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
333
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
242
334
  remote: https://github.com/ruby/gem_rbs_collection.git
243
335
  repo_dir: gems
244
336
  - name: rubocop-ast
@@ -246,7 +338,7 @@ gems:
246
338
  source:
247
339
  type: git
248
340
  name: ruby/gem_rbs_collection
249
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
341
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
250
342
  remote: https://github.com/ruby/gem_rbs_collection.git
251
343
  repo_dir: gems
252
344
  - name: securerandom
@@ -257,7 +349,11 @@ gems:
257
349
  version: '0'
258
350
  source:
259
351
  type: stdlib
260
- - name: strscan
352
+ - name: socket
353
+ version: '0'
354
+ source:
355
+ type: stdlib
356
+ - name: stringio
261
357
  version: '0'
262
358
  source:
263
359
  type: stdlib
@@ -265,6 +361,14 @@ gems:
265
361
  version: '0'
266
362
  source:
267
363
  type: stdlib
364
+ - name: thor
365
+ version: '1.2'
366
+ source:
367
+ type: git
368
+ name: ruby/gem_rbs_collection
369
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
370
+ remote: https://github.com/ruby/gem_rbs_collection.git
371
+ repo_dir: gems
268
372
  - name: time
269
373
  version: '0'
270
374
  source:
@@ -282,7 +386,7 @@ gems:
282
386
  source:
283
387
  type: git
284
388
  name: ruby/gem_rbs_collection
285
- revision: f7684eec487bf3ff01e91f4579c0e8ce53fc2431
389
+ revision: f720796536d6ecc9450fb43cdfc5b894a5e80ffd
286
390
  remote: https://github.com/ruby/gem_rbs_collection.git
287
391
  repo_dir: gems
288
392
  - name: uri
data/rbs_collection.yaml CHANGED
@@ -19,3 +19,4 @@ gems:
19
19
 
20
20
  - name: fileutils
21
21
  - name: pathname
22
+ - name: rbs
data/rbs_discard.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "A RBS files generator for discard gem"
13
13
  spec.homepage = "https://github.com/tk0miya/rbs_discard"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.6.0"
15
+ spec.required_ruby_version = ">= 3.1.0"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
@@ -1,3 +1,5 @@
1
+ # Generated from lib/generators/rbs_discard/install_generator.rb with RBS::Inline
2
+
1
3
  module RbsDiscard
2
4
  class InstallGenerator < ::Rails::Generators::Base
3
5
  def create_raketask: () -> void
@@ -1,19 +1,31 @@
1
+ # Generated from lib/rbs_discard/discard.rb with RBS::Inline
2
+
1
3
  module RbsDiscard
2
4
  module Discard
3
5
  def self.all: () -> Array[singleton(Discard::Model)]
6
+
7
+ # @rbs klass: singleton(Discard::Model)
4
8
  def self.class_to_rbs: (singleton(Discard::Model) klass) -> String
5
9
 
6
10
  class Generator
11
+ include Utils
12
+
7
13
  attr_reader klass: singleton(Discard::Model)
14
+
8
15
  attr_reader klass_name: String
9
16
 
17
+ # @rbs klass: singleton(Discard::Model)
10
18
  def initialize: (singleton(Discard::Model) klass) -> void
19
+
11
20
  def generate: () -> String
12
21
 
13
22
  private
14
23
 
24
+ # @rbs rbs: String
15
25
  def format: (String rbs) -> String
26
+
16
27
  def header: () -> String
28
+
17
29
  def footer: () -> String
18
30
  end
19
31
  end
@@ -1,12 +1,21 @@
1
+ # Generated from lib/rbs_discard/rake_task.rb with RBS::Inline
2
+
1
3
  module RbsDiscard
2
4
  class RakeTask < Rake::TaskLib
3
5
  attr_accessor name: Symbol
6
+
4
7
  attr_accessor signature_root_dir: Pathname
5
8
 
6
- def initialize: (?Symbol name) ? { (RakeTask) -> void } -> void
9
+ # @rbs name: Symbol
10
+ # @rbs &block: ?(RakeTask) -> void
11
+ def initialize: (?Symbol name) ?{ (RakeTask) -> void } -> void
12
+
7
13
  def define_setup_task: () -> void
14
+
8
15
  def define_generate_base_class_task: () -> void
16
+
9
17
  def define_generate_task: () -> void
18
+
10
19
  def define_clean_task: () -> void
11
20
  end
12
21
  end
@@ -0,0 +1,8 @@
1
+ # Generated from lib/rbs_discard/utils.rb with RBS::Inline
2
+
3
+ module RbsDiscard
4
+ module Utils
5
+ # @rbs klass_name: singleton(Object)
6
+ def klass_to_names: (untyped klass) -> Array[RBS::TypeName]
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ # Generated from lib/rbs_discard/version.rb with RBS::Inline
2
+
3
+ module RbsDiscard
4
+ VERSION: ::String
5
+ end
data/sig/rbs_discard.rbs CHANGED
@@ -1,4 +1,6 @@
1
+ # Generated from lib/rbs_discard.rb with RBS::Inline
2
+
1
3
  module RbsDiscard
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ class Error < StandardError
5
+ end
4
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_discard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.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: 2024-09-30 00:00:00.000000000 Z
11
+ date: 2025-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: discard
@@ -58,6 +58,7 @@ files:
58
58
  - lib/rbs_discard/discard.rb
59
59
  - lib/rbs_discard/rake_task.rb
60
60
  - lib/rbs_discard/sig/discard.rbs
61
+ - lib/rbs_discard/utils.rb
61
62
  - lib/rbs_discard/version.rb
62
63
  - rbs_collection.lock.yaml
63
64
  - rbs_collection.yaml
@@ -66,6 +67,8 @@ files:
66
67
  - sig/rbs_discard.rbs
67
68
  - sig/rbs_discard/discard.rbs
68
69
  - sig/rbs_discard/rake_task.rbs
70
+ - sig/rbs_discard/utils.rbs
71
+ - sig/rbs_discard/version.rbs
69
72
  - sig/shims/discard.rbs
70
73
  homepage: https://github.com/tk0miya/rbs_discard
71
74
  licenses:
@@ -74,7 +77,7 @@ metadata:
74
77
  homepage_uri: https://github.com/tk0miya/rbs_discard
75
78
  source_code_uri: https://github.com/tk0miya/rbs_discard
76
79
  changelog_uri: https://github.com/tk0miya/rbs_discard
77
- post_install_message:
80
+ post_install_message:
78
81
  rdoc_options: []
79
82
  require_paths:
80
83
  - lib
@@ -82,7 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
85
  requirements:
83
86
  - - ">="
84
87
  - !ruby/object:Gem::Version
85
- version: 2.6.0
88
+ version: 3.1.0
86
89
  required_rubygems_version: !ruby/object:Gem::Requirement
87
90
  requirements:
88
91
  - - ">="
@@ -90,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
93
  version: '0'
91
94
  requirements: []
92
95
  rubygems_version: 3.4.19
93
- signing_key:
96
+ signing_key:
94
97
  specification_version: 4
95
98
  summary: A RBS files generator for discard gem
96
99
  test_files: []