rbs_draper 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d2bfcf84e0f5af5a65871e40710100241df8232a871e7794f3f52be4637f41a
4
- data.tar.gz: 3402cdab07e8e6b782c8230108232dfc60f3ab3b719ba3f160b9158c32237f49
3
+ metadata.gz: 3ab0cf7b71bd6ed489df32f624962c6a8cb46e2fe3e05a6ce9a6864106465dde
4
+ data.tar.gz: 4f9db1dd8274da25ff5907544647ae9c4e8160fe5ed3fbb5aa6dd1a77ab0daba
5
5
  SHA512:
6
- metadata.gz: 236ba1a705da99b87bbeb5bf3eab2df035cf1701a390fb3b70db428529e052613b75123ccde23f06b1c40056443cc7043defa06c58ff32621aba59d7e54b3aab
7
- data.tar.gz: 5ed785300e261837ab808217eeca0a0a438cbd3d07b2bd8c3dc70632b56ff53e7f0db552745e76d5f93e88e907e4e3fddbc20fc22f393d56ad00403118f6751b
6
+ metadata.gz: c12feee4cf6e98dbfa4e172f1e569f51ecc1cf163a8e26ddd08fb72a44e5de60beaf6f8469871a2752547765ea0506335977c8da0cdc6c532f8595649914eb50
7
+ data.tar.gz: 408294ee26cc2e601d40b035e6537cff035d46e6b2baf3422549665be48982a383d4cb0169d4bd5fe98cebd90bbaeac04f5f8b3b61a007948a5513203a000520
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 3.0
2
+ TargetRubyVersion: 2.7
3
3
 
4
4
  Style/Documentation:
5
5
  Enabled: false
@@ -15,6 +15,9 @@ Style/StringLiteralsInInterpolation:
15
15
  Layout/LineLength:
16
16
  Max: 120
17
17
 
18
+ Metrics/AbcSize:
19
+ Max: 20
20
+
18
21
  Metrics/BlockLength:
19
22
  Exclude:
20
23
  - spec/**/*.rb
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
9
 
10
- gem "rubocop", "~> 1.52"
10
+ gem "rubocop", "~> 1.56"
11
11
 
12
12
  group :development do
13
13
  gem "rspec", require: false
data/Gemfile.lock CHANGED
@@ -1,46 +1,50 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rbs_draper (0.1.2)
4
+ rbs_draper (1.0.0)
5
+ activesupport
5
6
  draper
7
+ fileutils
8
+ rbs
6
9
  rbs_rails
7
10
 
8
11
  GEM
9
12
  remote: https://rubygems.org/
10
13
  specs:
11
- actionpack (7.0.5)
12
- actionview (= 7.0.5)
13
- activesupport (= 7.0.5)
14
+ actionpack (7.0.7)
15
+ actionview (= 7.0.7)
16
+ activesupport (= 7.0.7)
14
17
  rack (~> 2.0, >= 2.2.4)
15
18
  rack-test (>= 0.6.3)
16
19
  rails-dom-testing (~> 2.0)
17
20
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (7.0.5)
19
- activesupport (= 7.0.5)
21
+ actionview (7.0.7)
22
+ activesupport (= 7.0.7)
20
23
  builder (~> 3.1)
21
24
  erubi (~> 1.4)
22
25
  rails-dom-testing (~> 2.0)
23
26
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- activemodel (7.0.5)
25
- activesupport (= 7.0.5)
27
+ activemodel (7.0.7)
28
+ activesupport (= 7.0.7)
26
29
  activemodel-serializers-xml (1.0.2)
27
30
  activemodel (> 5.x)
28
31
  activesupport (> 5.x)
29
32
  builder (~> 3.1)
30
- activerecord (7.0.5)
31
- activemodel (= 7.0.5)
32
- activesupport (= 7.0.5)
33
- activesupport (7.0.5)
33
+ activerecord (7.0.7)
34
+ activemodel (= 7.0.7)
35
+ activesupport (= 7.0.7)
36
+ activesupport (7.0.7)
34
37
  concurrent-ruby (~> 1.0, >= 1.0.2)
35
38
  i18n (>= 1.6, < 2)
36
39
  minitest (>= 5.1)
37
40
  tzinfo (~> 2.0)
38
41
  ast (2.4.2)
42
+ base64 (0.1.1)
39
43
  builder (3.2.4)
40
44
  coderay (1.1.3)
41
45
  concurrent-ruby (1.2.2)
42
46
  crass (1.0.6)
43
- csv (3.2.6)
47
+ csv (3.2.7)
44
48
  diff-lcs (1.5.0)
45
49
  draper (4.0.2)
46
50
  actionpack (>= 5.0)
@@ -64,10 +68,10 @@ GEM
64
68
  crass (~> 1.0.2)
65
69
  nokogiri (>= 1.12.0)
66
70
  method_source (1.0.0)
67
- minitest (5.18.0)
68
- nokogiri (1.15.2-x86_64-darwin)
71
+ minitest (5.19.0)
72
+ nokogiri (1.15.4-x86_64-darwin)
69
73
  racc (~> 1.4)
70
- nokogiri (1.15.2-x86_64-linux)
74
+ nokogiri (1.15.4-x86_64-linux)
71
75
  racc (~> 1.4)
72
76
  parallel (1.23.0)
73
77
  parser (3.2.2.3)
@@ -77,18 +81,19 @@ GEM
77
81
  coderay (~> 1.1)
78
82
  method_source (~> 1.0)
79
83
  racc (1.7.1)
80
- rack (2.2.7)
84
+ rack (2.2.8)
81
85
  rack-test (2.1.0)
82
86
  rack (>= 1.3)
83
- rails-dom-testing (2.0.3)
84
- activesupport (>= 4.2.0)
87
+ rails-dom-testing (2.2.0)
88
+ activesupport (>= 5.0.0)
89
+ minitest
85
90
  nokogiri (>= 1.6)
86
91
  rails-html-sanitizer (1.6.0)
87
92
  loofah (~> 2.21)
88
93
  nokogiri (~> 1.14)
89
- railties (7.0.5)
90
- actionpack (= 7.0.5)
91
- activesupport (= 7.0.5)
94
+ railties (7.0.7)
95
+ actionpack (= 7.0.7)
96
+ activesupport (= 7.0.7)
92
97
  method_source
93
98
  rake (>= 12.2)
94
99
  thor (~> 1.0)
@@ -98,14 +103,14 @@ GEM
98
103
  rb-fsevent (0.11.2)
99
104
  rb-inotify (0.10.1)
100
105
  ffi (~> 1.0)
101
- rbs (3.1.0)
106
+ rbs (3.1.3)
102
107
  rbs_rails (0.12.0)
103
108
  parser
104
109
  rbs (>= 1)
105
110
  regexp_parser (2.8.1)
106
111
  request_store (1.5.1)
107
112
  rack (>= 1.4)
108
- rexml (3.2.5)
113
+ rexml (3.2.6)
109
114
  rspec (3.12.0)
110
115
  rspec-core (~> 3.12.0)
111
116
  rspec-expectations (~> 3.12.0)
@@ -122,14 +127,16 @@ GEM
122
127
  diff-lcs (>= 1.2.0, < 2.0)
123
128
  rspec-support (~> 3.12.0)
124
129
  rspec-support (3.12.0)
125
- rubocop (1.52.1)
130
+ rubocop (1.56.0)
131
+ base64 (~> 0.1.1)
126
132
  json (~> 2.3)
133
+ language_server-protocol (>= 3.17.0)
127
134
  parallel (~> 1.10)
128
135
  parser (>= 3.2.2.3)
129
136
  rainbow (>= 2.2.2, < 4.0)
130
137
  regexp_parser (>= 1.8, < 3.0)
131
138
  rexml (>= 3.2.5, < 4.0)
132
- rubocop-ast (>= 1.28.0, < 2.0)
139
+ rubocop-ast (>= 1.28.1, < 2.0)
133
140
  ruby-progressbar (~> 1.7)
134
141
  unicode-display_width (>= 2.4.0, < 3.0)
135
142
  rubocop-ast (1.29.0)
@@ -137,9 +144,9 @@ GEM
137
144
  ruby-progressbar (1.13.0)
138
145
  ruby2_keywords (0.0.5)
139
146
  securerandom (0.2.2)
140
- steep (1.4.0)
147
+ steep (1.5.3)
141
148
  activesupport (>= 5.1)
142
- concurrent-ruby (>= 1.2.2)
149
+ concurrent-ruby (>= 1.1.10)
143
150
  csv (>= 3.0.9)
144
151
  fileutils (>= 1.1.0)
145
152
  json (>= 2.1.0)
@@ -148,7 +155,7 @@ GEM
148
155
  logger (>= 1.3.0)
149
156
  parser (>= 3.1)
150
157
  rainbow (>= 2.2.2, < 4.0)
151
- rbs (>= 2.8.0)
158
+ rbs (>= 3.1.0)
152
159
  securerandom (>= 0.1)
153
160
  strscan (>= 1.0.0)
154
161
  terminal-table (>= 2, < 4)
@@ -159,9 +166,10 @@ GEM
159
166
  tzinfo (2.0.6)
160
167
  concurrent-ruby (~> 1.0)
161
168
  unicode-display_width (2.4.2)
162
- zeitwerk (2.6.8)
169
+ zeitwerk (2.6.11)
163
170
 
164
171
  PLATFORMS
172
+ x86_64-darwin-19
165
173
  x86_64-darwin-21
166
174
  x86_64-linux
167
175
 
@@ -172,8 +180,8 @@ DEPENDENCIES
172
180
  rbs_draper!
173
181
  rspec
174
182
  rspec-daemon
175
- rubocop (~> 1.52)
183
+ rubocop (~> 1.56)
176
184
  steep
177
185
 
178
186
  BUNDLED WITH
179
- 2.4.13
187
+ 2.4.4
data/README.md CHANGED
@@ -7,19 +7,13 @@ rbs_draper is a generator for decorators using [Draper](https://github.com/drape
7
7
  Add a new entry to your Gemfile and run `bundle install`:
8
8
 
9
9
  group :development do
10
- gem 'rbs_draper'
10
+ gem 'rbs_draper', require: false
11
11
  end
12
12
 
13
13
  After the installation, please run rake task generator:
14
14
 
15
15
  bundle exec rails g rbs_draper:install
16
16
 
17
- Additionally, it would be better to add the following entry to your `rbs_collection.yml`:
18
-
19
- gems:
20
- - name: rbs_draper
21
- ignore: true
22
-
23
17
  ## Usage
24
18
 
25
19
  1. Run `rbs:draper:clean` at first
data/Steepfile CHANGED
@@ -3,10 +3,9 @@
3
3
  D = Steep::Diagnostic
4
4
 
5
5
  target :lib do
6
- signature "sig"
6
+ signature "sig", "lib/rbs_draper/sig"
7
7
 
8
- check "lib" # Directory name
9
- check "Gemfile" # File name
8
+ check "lib"
10
9
 
11
- configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
10
+ configure_code_diagnostics(D::Ruby.lenient)
12
11
  end
@@ -30,7 +30,7 @@ module RbsDraper
30
30
  def klass_decl
31
31
  <<~RBS
32
32
  #{header}
33
- def object: () -> #{klass.name.sub(/Decorator$/, "")}
33
+ #{object_method_decls}
34
34
 
35
35
  #{method_decls}
36
36
  #{footer}
@@ -57,6 +57,18 @@ module RbsDraper
57
57
  end.join("\n")
58
58
  end
59
59
 
60
+ def object_method_decls
61
+ object_name = klass_name.to_s.sub(/Decorator$/, "")
62
+ if object_name.include?("::")
63
+ "def object: () -> #{object_name}"
64
+ else
65
+ <<~RBS
66
+ def object: () -> #{object_name}
67
+ def #{object_name.underscore}: () -> #{object_name}
68
+ RBS
69
+ end
70
+ end
71
+
60
72
  def method_decls
61
73
  delegated_methods.filter_map do |name, method|
62
74
  next if user_defined_class&.methods&.fetch(name, nil)
@@ -76,7 +88,7 @@ module RbsDraper
76
88
  end
77
89
 
78
90
  def decorated_class
79
- type_name = RBS::TypeName(klass.name.sub(/Decorator$/, "")).absolute!
91
+ type_name = RBS::TypeName(klass.name.to_s.sub(/Decorator$/, "")).absolute!
80
92
  @decorated_class ||= rbs_builder.build_instance(type_name)
81
93
  rescue StandardError
82
94
  nil
@@ -85,8 +97,11 @@ module RbsDraper
85
97
  def delegated_methods
86
98
  return [] unless klass.ancestors.include? ::Draper::AutomaticDelegation
87
99
 
88
- decorated_class.methods.keys.sort.filter_map do |name|
89
- method = decorated_class.methods[name]
100
+ decorated_klass = decorated_class
101
+ return [] unless decorated_klass
102
+
103
+ decorated_klass.methods.keys.sort.filter_map do |name|
104
+ method = decorated_klass.methods[name]
90
105
  next if %w[::Object ::BasicObject ::Kernel].include? method.defined_in.to_s
91
106
 
92
107
  [name, method] if method.accessibility == :public
@@ -43,6 +43,8 @@ module RbsDraper
43
43
  def define_base_class_generate_task
44
44
  desc "Generate RBS files for base classes"
45
45
  task("#{name}:base_class:generate": :environment) do
46
+ require "rbs_draper" # load RbsDraper lazily
47
+
46
48
  signature_root_dir.mkpath
47
49
 
48
50
  basedir = Pathname(__FILE__).dirname
@@ -54,10 +56,12 @@ module RbsDraper
54
56
  def define_decoratables_generate_task
55
57
  desc "Generate RBS files for decoratable models"
56
58
  task("#{name}:decoratables:generate": :environment) do
59
+ require "rbs_draper" # load RbsDraper lazily
60
+
57
61
  Rails.application.eager_load!
58
62
 
59
63
  RbsDraper::Decoratable.all.each do |klass|
60
- path = signature_root_dir / "app/models/#{klass.name.underscore}.rbs"
64
+ path = signature_root_dir / "app/models/#{klass.name.to_s.underscore}.rbs"
61
65
  path.dirname.mkpath
62
66
  rbs = RbsDraper::Decoratable.class_to_rbs(klass)
63
67
  path.write rbs if rbs
@@ -1,5 +1,6 @@
1
1
  module Draper
2
2
  module Decoratable
3
+ def self.decorator_class: () -> singleton(Decorator)
3
4
  def decorated?: () -> bool
4
5
  def decorated_with?: (untyped decorator_class) -> bool
5
6
  end
@@ -1,5 +1,6 @@
1
1
  module Draper
2
2
  class Decorator
3
+ def self.delegate_all: () -> void
3
4
  def decorated?: () -> bool
4
5
  def decorated_with?: (untyped decorator_class) -> bool
5
6
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsDraper
4
- VERSION = "0.1.2"
4
+ VERSION = "1.0.0"
5
5
  end
@@ -2,7 +2,7 @@
2
2
  sources:
3
3
  - type: git
4
4
  name: ruby/gem_rbs_collection
5
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
5
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
6
6
  remote: https://github.com/ruby/gem_rbs_collection.git
7
7
  repo_dir: gems
8
8
  path: ".gem_rbs_collection"
@@ -16,7 +16,7 @@ gems:
16
16
  source:
17
17
  type: git
18
18
  name: ruby/gem_rbs_collection
19
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
19
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
20
20
  remote: https://github.com/ruby/gem_rbs_collection.git
21
21
  repo_dir: gems
22
22
  - name: actionview
@@ -24,7 +24,7 @@ gems:
24
24
  source:
25
25
  type: git
26
26
  name: ruby/gem_rbs_collection
27
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
27
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
28
28
  remote: https://github.com/ruby/gem_rbs_collection.git
29
29
  repo_dir: gems
30
30
  - name: activemodel
@@ -32,7 +32,7 @@ gems:
32
32
  source:
33
33
  type: git
34
34
  name: ruby/gem_rbs_collection
35
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
35
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
36
36
  remote: https://github.com/ruby/gem_rbs_collection.git
37
37
  repo_dir: gems
38
38
  - name: activerecord
@@ -40,7 +40,7 @@ gems:
40
40
  source:
41
41
  type: git
42
42
  name: ruby/gem_rbs_collection
43
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
43
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
44
44
  remote: https://github.com/ruby/gem_rbs_collection.git
45
45
  repo_dir: gems
46
46
  - name: activesupport
@@ -48,7 +48,7 @@ gems:
48
48
  source:
49
49
  type: git
50
50
  name: ruby/gem_rbs_collection
51
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
51
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
52
52
  remote: https://github.com/ruby/gem_rbs_collection.git
53
53
  repo_dir: gems
54
54
  - name: ast
@@ -56,9 +56,13 @@ gems:
56
56
  source:
57
57
  type: git
58
58
  name: ruby/gem_rbs_collection
59
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
59
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
60
60
  remote: https://github.com/ruby/gem_rbs_collection.git
61
61
  repo_dir: gems
62
+ - name: base64
63
+ version: '0'
64
+ source:
65
+ type: stdlib
62
66
  - name: cgi
63
67
  version: '0'
64
68
  source:
@@ -68,19 +72,23 @@ gems:
68
72
  source:
69
73
  type: git
70
74
  name: ruby/gem_rbs_collection
71
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
75
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
72
76
  remote: https://github.com/ruby/gem_rbs_collection.git
73
77
  repo_dir: gems
74
78
  - name: date
75
79
  version: '0'
76
80
  source:
77
81
  type: stdlib
82
+ - name: fileutils
83
+ version: '0'
84
+ source:
85
+ type: stdlib
78
86
  - name: i18n
79
87
  version: '1.10'
80
88
  source:
81
89
  type: git
82
90
  name: ruby/gem_rbs_collection
83
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
91
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
84
92
  remote: https://github.com/ruby/gem_rbs_collection.git
85
93
  repo_dir: gems
86
94
  - name: json
@@ -108,7 +116,7 @@ gems:
108
116
  source:
109
117
  type: git
110
118
  name: ruby/gem_rbs_collection
111
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
119
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
112
120
  remote: https://github.com/ruby/gem_rbs_collection.git
113
121
  repo_dir: gems
114
122
  - name: optparse
@@ -120,7 +128,7 @@ gems:
120
128
  source:
121
129
  type: git
122
130
  name: ruby/gem_rbs_collection
123
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
131
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
124
132
  remote: https://github.com/ruby/gem_rbs_collection.git
125
133
  repo_dir: gems
126
134
  - name: pathname
@@ -132,7 +140,7 @@ gems:
132
140
  source:
133
141
  type: git
134
142
  name: ruby/gem_rbs_collection
135
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
143
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
136
144
  remote: https://github.com/ruby/gem_rbs_collection.git
137
145
  repo_dir: gems
138
146
  - name: rails-dom-testing
@@ -140,7 +148,7 @@ gems:
140
148
  source:
141
149
  type: git
142
150
  name: ruby/gem_rbs_collection
143
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
151
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
144
152
  remote: https://github.com/ruby/gem_rbs_collection.git
145
153
  repo_dir: gems
146
154
  - name: railties
@@ -148,7 +156,7 @@ gems:
148
156
  source:
149
157
  type: git
150
158
  name: ruby/gem_rbs_collection
151
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
159
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
152
160
  remote: https://github.com/ruby/gem_rbs_collection.git
153
161
  repo_dir: gems
154
162
  - name: rainbow
@@ -156,11 +164,11 @@ gems:
156
164
  source:
157
165
  type: git
158
166
  name: ruby/gem_rbs_collection
159
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
167
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
160
168
  remote: https://github.com/ruby/gem_rbs_collection.git
161
169
  repo_dir: gems
162
170
  - name: rbs
163
- version: 3.1.0
171
+ version: 3.1.3
164
172
  source:
165
173
  type: rubygems
166
174
  - name: rbs_rails
@@ -176,9 +184,13 @@ gems:
176
184
  source:
177
185
  type: git
178
186
  name: ruby/gem_rbs_collection
179
- revision: 280d44d7671abfa909f2966fbef94bca5be082de
187
+ revision: a4c633634493ab7ae73219022f56acff56ab69af
180
188
  remote: https://github.com/ruby/gem_rbs_collection.git
181
189
  repo_dir: gems
190
+ - name: securerandom
191
+ version: '0'
192
+ source:
193
+ type: stdlib
182
194
  - name: singleton
183
195
  version: '0'
184
196
  source:
data/rbs_draper.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "A RBS files generator for Draper decorators"
13
13
  spec.homepage = "https://github.com/tk0miya/rbs_draper"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 3.0"
15
+ spec.required_ruby_version = ">= 2.7"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
@@ -27,7 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
+ spec.add_dependency "activesupport"
30
31
  spec.add_dependency "draper"
32
+ spec.add_dependency "fileutils"
33
+ spec.add_dependency "rbs"
31
34
  spec.add_dependency "rbs_rails"
32
35
 
33
36
  # For more information and examples about making a new gem, check out our
@@ -1,13 +1,13 @@
1
1
  module RbsDraper
2
2
  module Decoratable
3
- def self.all: () -> Array[Class]
4
- def self.class_to_rbs: (Class klass) -> String
3
+ def self.all: () -> Array[singleton(Draper::Decoratable)]
4
+ def self.class_to_rbs: (singleton(Draper::Decoratable) klass) -> String
5
5
 
6
6
  class Generator
7
- attr_reader klass: Class
7
+ attr_reader klass: singleton(Draper::Decoratable)
8
8
  attr_reader klass_name: String
9
9
 
10
- def initialize: (Class klass) -> void
10
+ def initialize: (singleton(Draper::Decoratable) klass) -> void
11
11
  def generate: () -> String
12
12
 
13
13
  private
@@ -1,27 +1,28 @@
1
1
  module RbsDraper
2
2
  module Decorator
3
- def self.class_to_rbs: (Class klass, RBS::DefinitionBuilder rbs_builder) -> String?
3
+ def self.class_to_rbs: (singleton(Draper::Decorator) klass, RBS::DefinitionBuilder rbs_builder) -> String?
4
4
 
5
5
  class Generator
6
- attr_reader klass: Class
6
+ attr_reader klass: singleton(Draper::Decorator)
7
7
  attr_reader klass_name: String
8
8
  attr_reader rbs_builder: RBS::DefinitionBuilder
9
9
 
10
10
  @decorated_class: RBS::Definition
11
11
  @user_defined_class: RBS::Definition
12
12
 
13
- def initialize: (Class klass, RBS::DefinitionBuilder rbs_builder) -> void
13
+ def initialize: (singleton(Draper::Decorator) klass, RBS::DefinitionBuilder rbs_builder) -> void
14
14
  def generate: () -> String?
15
15
 
16
16
  private
17
17
 
18
18
  def klass_decl: () -> String
19
19
  def header: () -> String
20
+ def object_method_decls: () -> String
20
21
  def method_decls: () -> String?
21
22
  def footer: () -> String
22
23
  def module_names: () -> Array[String]
23
24
  def decorated_class: () -> RBS::Definition?
24
- def delegated_methods: () -> Array[[Symbol, RBS::Definition]]
25
+ def delegated_methods: () -> Array[[Symbol, RBS::Definition::Method]]
25
26
  def user_defined_class: () -> RBS::Definition?
26
27
  end
27
28
  end
@@ -0,0 +1,19 @@
1
+ module Rake
2
+ class TaskLib
3
+ include Rake::DSL
4
+ end
5
+
6
+ module DSL
7
+ private
8
+
9
+ def desc: (String description) -> void
10
+ def file: (*untyped args) ?{ () -> void } -> void
11
+ def import: (*String fns) -> void
12
+ def multitask: (*untyped args) ?{ () -> void } -> void
13
+ def namespace: (?String? name) ?{ () -> void } -> void
14
+ def rule: (*untyped args) ?{ () -> void } -> void
15
+ def task: (*untyped args) ?{ () -> void } -> void
16
+ def sh: (*String cmd) ?{ (bool, Process::Status) -> void } -> void
17
+ end
18
+ end
19
+
@@ -0,0 +1,5 @@
1
+ class Thor
2
+ module Actions
3
+ def create_file: (String destination, *String? args, ?config: bool) ?{ () -> void } -> untyped
4
+ end
5
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_draper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.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: 2023-06-19 00:00:00.000000000 Z
11
+ date: 2023-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: draper
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,34 @@ dependencies:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: fileutils
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rbs
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: rbs_rails
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -70,6 +112,8 @@ files:
70
112
  - sig/rbs_draper/decoratable.rbs
71
113
  - sig/rbs_draper/decorator.rbs
72
114
  - sig/rbs_draper/rake_task.rbs
115
+ - sig/shims/rake.rbs
116
+ - sig/shims/thor.rbs
73
117
  homepage: https://github.com/tk0miya/rbs_draper
74
118
  licenses:
75
119
  - MIT
@@ -85,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
129
  requirements:
86
130
  - - ">="
87
131
  - !ruby/object:Gem::Version
88
- version: '3.0'
132
+ version: '2.7'
89
133
  required_rubygems_version: !ruby/object:Gem::Requirement
90
134
  requirements:
91
135
  - - ">="