orthoses-yard 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -1
- data/lib/orthoses/yard/version.rb +1 -1
- data/lib/orthoses/yard/yard2rbs.rb +49 -86
- data/lib/orthoses/yard.rb +19 -2
- data/sig/orthoses.rbs +43 -0
- metadata +14 -24
- data/Gemfile +0 -12
- data/Gemfile.lock +0 -79
- data/examples/yard/Gemfile +0 -10
- data/examples/yard/Gemfile.lock +0 -59
- data/examples/yard/Rakefile +0 -7
- data/examples/yard/generate.rb +0 -81
- data/examples/yard/rbs_collection.lock.yaml +0 -80
- data/examples/yard/rbs_collection.yaml +0 -12
- data/examples/yard/templates/EXTERNAL_TODO.rbs +0 -30
- data/examples/yard/templates/_scripts/test.erb +0 -20
- data/examples/yard/templates/_test/Steepfile.erb +0 -17
- data/examples/yard/templates/_test/yard.rb +0 -6
- data/examples/yard/templates/manifest.yaml.erb +0 -4
- data/orthoses-yard.gemspec +0 -37
- data/sig/orthoses/yard/yard2_rbs.rbs +0 -31
- data/sig/orthoses/yard.rbs +0 -6
- data/sig_patch/yard.rbs +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6417c32f741a5dfc134166c945908278cbd986d2a2004a8fa4cdede7155e63d0
|
4
|
+
data.tar.gz: 45d9288f5ddfe277dd5592cc65103d3961aa195df8af80a3707f1309ee0d8344
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c929d6d2754ba40898f13213289da72cf66a4977a04626c3670a3dbb85717007f93c254654fbd50d86f0b91c1a179ed47c180496b5210b22182ad6008fb8f358
|
7
|
+
data.tar.gz: e918f5642b21d48b95c3b47c774c71537481310829206a73ab6e1f4844ed4a66cec81b1243bed6734993d5cecddd46fb9a9777053fbf18cd8e416f8ca3920d1b
|
data/README.md
CHANGED
@@ -50,7 +50,14 @@ end
|
|
50
50
|
|
51
51
|
## Usage
|
52
52
|
|
53
|
-
|
53
|
+
```rb
|
54
|
+
use Orthoses::YARD,
|
55
|
+
parse: ['{lib,app}/**/*.rb'], # Target files (require)
|
56
|
+
use_cache: true, # Use cache .yardoc database (optional default=true)
|
57
|
+
log_level: :debug # Set log level for YARD (optional default=nil)
|
58
|
+
```
|
59
|
+
|
60
|
+
Please see also https://github.com/ksss/orthoses-yard/blob/main/examples/yard/generate.rb
|
54
61
|
|
55
62
|
## Development
|
56
63
|
|
@@ -48,6 +48,32 @@ module Orthoses
|
|
48
48
|
generate_for_classvariable
|
49
49
|
end
|
50
50
|
|
51
|
+
# @return [RBS::Types::t]
|
52
|
+
def tag_types_to_rbs_type(tag_types)
|
53
|
+
return untyped if tag_types.nil?
|
54
|
+
|
55
|
+
tag_types = tag_types.compact.uniq
|
56
|
+
return untyped if tag_types.empty?
|
57
|
+
|
58
|
+
begin
|
59
|
+
types_explainers = ::YARD::Tags::TypesExplainer::Parser.parse(tag_types.join(", "))
|
60
|
+
rescue SyntaxError => e
|
61
|
+
Orthoses.logger.warn("#{tag_types} in #{yardoc.inspect} cannot parse as tags. use untyped instead")
|
62
|
+
Orthoses.logger.warn(" => exception message=`#{e.message}`")
|
63
|
+
return untyped
|
64
|
+
end
|
65
|
+
|
66
|
+
Utils::TypeList.new(recursive_resolve(types_explainers)).inject.tap do |rbs|
|
67
|
+
Orthoses.logger.debug("#{yardoc.inspect} tag #{tag_types} => #{rbs}")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def class_of(mod)
|
74
|
+
Kernel.instance_method(:class).bind_call(mod)
|
75
|
+
end
|
76
|
+
|
51
77
|
# @return [void]
|
52
78
|
def generate_for_attributes
|
53
79
|
yardoc.attributes.each do |kind, attributes|
|
@@ -88,13 +114,13 @@ module Orthoses
|
|
88
114
|
|
89
115
|
begin
|
90
116
|
mod = Object.const_get(namespace.to_s)
|
91
|
-
case
|
92
|
-
when :
|
93
|
-
prefix = 'self.'
|
94
|
-
method_object = mod.method(method_name)
|
95
|
-
when :instance
|
117
|
+
case
|
118
|
+
when meth.scope == :instance || class_of(meth) == ::YARD::CodeObjects::ExtendedMethodObject
|
96
119
|
prefix = ''
|
97
120
|
method_object = mod.instance_method(method_name)
|
121
|
+
when meth.scope == :class
|
122
|
+
prefix = 'self.'
|
123
|
+
method_object = mod.method(method_name)
|
98
124
|
else
|
99
125
|
raise "bug"
|
100
126
|
end
|
@@ -116,8 +142,6 @@ module Orthoses
|
|
116
142
|
required_keywords = {}
|
117
143
|
optional_keywords = {}
|
118
144
|
rest_keywords = nil
|
119
|
-
yield_params = []
|
120
|
-
yield_return = nil
|
121
145
|
|
122
146
|
requireds = required_positionals
|
123
147
|
|
@@ -224,65 +248,6 @@ module Orthoses
|
|
224
248
|
end
|
225
249
|
end
|
226
250
|
|
227
|
-
# @return [RBS::Types::t]
|
228
|
-
def tag_types_to_rbs_type(tag_types)
|
229
|
-
return untyped if tag_types.nil?
|
230
|
-
return untyped if tag_types.empty?
|
231
|
-
|
232
|
-
begin
|
233
|
-
types_explainers = ::YARD::Tags::TypesExplainer::Parser.parse(tag_types.uniq.join(", "))
|
234
|
-
rescue SyntaxError
|
235
|
-
Orthoses.logger.warn("#{tag_types} in #{yardoc.inspect} cannot parse as tags. use untyped instead")
|
236
|
-
return untyped
|
237
|
-
end
|
238
|
-
|
239
|
-
wrap(recursive_resolve(types_explainers)).tap do |rbs|
|
240
|
-
Orthoses.logger.debug("#{yardoc.inspect} tag #{tag_types} => #{rbs}")
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
# @return [RBS::Types::t]
|
245
|
-
def wrap(types)
|
246
|
-
if types.nil? || types.empty? || types == [untyped]
|
247
|
-
return untyped
|
248
|
-
end
|
249
|
-
|
250
|
-
if 1 < types.length
|
251
|
-
if index = types.find_index { |t| t.to_s == "nil" }
|
252
|
-
types.delete_at(index)
|
253
|
-
is_optional = true
|
254
|
-
if types == [untyped]
|
255
|
-
return untyped
|
256
|
-
end
|
257
|
-
end
|
258
|
-
end
|
259
|
-
is_union = 1 < types.length
|
260
|
-
|
261
|
-
if is_union
|
262
|
-
if is_optional
|
263
|
-
::RBS::Types::Optional.new(
|
264
|
-
type: ::RBS::Types::Union.new(
|
265
|
-
types: types,
|
266
|
-
location: nil,
|
267
|
-
),
|
268
|
-
location: nil,
|
269
|
-
)
|
270
|
-
else
|
271
|
-
::RBS::Types::Union.new(
|
272
|
-
types: types,
|
273
|
-
location: nil,
|
274
|
-
)
|
275
|
-
end
|
276
|
-
elsif is_optional
|
277
|
-
::RBS::Types::Optional.new(
|
278
|
-
type: types.first,
|
279
|
-
location: nil,
|
280
|
-
)
|
281
|
-
else
|
282
|
-
types.first
|
283
|
-
end
|
284
|
-
end
|
285
|
-
|
286
251
|
# @return [Array<RBS::Types::t>]
|
287
252
|
def recursive_resolve(types_explainer_types)
|
288
253
|
types_explainer_types.map do |types_explainer_type|
|
@@ -293,7 +258,7 @@ module Orthoses
|
|
293
258
|
location: nil
|
294
259
|
)
|
295
260
|
when ::YARD::Tags::TypesExplainer::CollectionType
|
296
|
-
type =
|
261
|
+
type = Utils::TypeList.new(recursive_resolve(types_explainer_type.types)).inject
|
297
262
|
if types_explainer_type.name == "Class"
|
298
263
|
if type.to_s == "untyped"
|
299
264
|
untyped
|
@@ -314,8 +279,8 @@ module Orthoses
|
|
314
279
|
::RBS::Types::ClassInstance.new(
|
315
280
|
name: TypeName(types_explainer_type.name),
|
316
281
|
args: [
|
317
|
-
|
318
|
-
|
282
|
+
Utils::TypeList.new(recursive_resolve(types_explainer_type.key_types)).inject,
|
283
|
+
Utils::TypeList.new(recursive_resolve(types_explainer_type.value_types)).inject,
|
319
284
|
],
|
320
285
|
location: nil
|
321
286
|
)
|
@@ -349,8 +314,14 @@ module Orthoses
|
|
349
314
|
# end
|
350
315
|
else
|
351
316
|
case types_explainer_type.name
|
352
|
-
when "Object"
|
353
|
-
|
317
|
+
when "Object"
|
318
|
+
next untyped
|
319
|
+
when "Boolean", "TrueClass", "FalseClass", "true", "false"
|
320
|
+
next bool
|
321
|
+
when "NilClass", "nil"
|
322
|
+
next ::RBS::Types::Bases::Nil.new(location: nil)
|
323
|
+
when "Fixnum"
|
324
|
+
next ::RBS::Types::ClassInstance.new(name: TypeName("Integer"), args: [], location: nil)
|
354
325
|
end
|
355
326
|
|
356
327
|
begin
|
@@ -361,6 +332,7 @@ module Orthoses
|
|
361
332
|
when ::RBS::Types::Alias
|
362
333
|
end
|
363
334
|
rescue ::RBS::ParsingError
|
335
|
+
# will be unresolve type
|
364
336
|
end
|
365
337
|
|
366
338
|
if Utils.rbs_defined_class?(types_explainer_type.name, collection: true)
|
@@ -370,22 +342,13 @@ module Orthoses
|
|
370
342
|
location: nil
|
371
343
|
)
|
372
344
|
else
|
373
|
-
name
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
resolved = ::YARD::Registry.resolve(yardoc.namespace, types_explainer_type.name, true, false)
|
379
|
-
if resolved
|
380
|
-
resolved.to_s
|
381
|
-
else
|
382
|
-
Orthoses.logger.warn("#{types_explainer_type.name} in #{yardoc.namespace} set `untyped` because it cannot resolved type")
|
383
|
-
next untyped
|
384
|
-
end
|
385
|
-
end
|
386
|
-
|
345
|
+
resolved = ::YARD::Registry.resolve(yardoc, types_explainer_type.name, true, false)
|
346
|
+
unless resolved
|
347
|
+
Orthoses.logger.warn("yardoc type=[#{types_explainer_type.name}] in #{yardoc.path} set `untyped` because it cannot resolved type by `::YARD::Registry.resolve`")
|
348
|
+
next untyped
|
349
|
+
end
|
387
350
|
::RBS::Types::ClassInstance.new(
|
388
|
-
name: TypeName(
|
351
|
+
name: TypeName(resolved.to_s),
|
389
352
|
args: [],
|
390
353
|
location: nil
|
391
354
|
)
|
data/lib/orthoses/yard.rb
CHANGED
@@ -6,22 +6,39 @@ require_relative "yard/yard2rbs"
|
|
6
6
|
module Orthoses
|
7
7
|
# use Orthoses::YARD, parse: "lib/**/*.rb"
|
8
8
|
class YARD
|
9
|
-
|
9
|
+
# @param loader
|
10
|
+
# @param [<String>, String] parse Target files
|
11
|
+
# @param [Boolean] use_cache Use cache .yardoc
|
12
|
+
# @param [Symbol, nil] log_level Set YARD log level
|
13
|
+
def initialize(loader, parse:, use_cache: true, log_level: nil)
|
10
14
|
@loader = loader
|
11
15
|
@parse = Array(parse)
|
16
|
+
@use_cache = use_cache
|
17
|
+
@log_level = log_level
|
12
18
|
end
|
13
19
|
|
20
|
+
# @return [void]
|
14
21
|
def call
|
15
22
|
@loader.call.tap do |store|
|
16
23
|
require 'yard'
|
17
24
|
|
25
|
+
log.level = @log_level if @log_level
|
26
|
+
|
27
|
+
::YARD::Registry.load if @use_cache
|
18
28
|
::YARD.parse(@parse)
|
29
|
+
::YARD::Registry.save(true) if @use_cache
|
19
30
|
::YARD::Registry.root.children.each do |yardoc|
|
31
|
+
# Skip anonymous yardoc
|
32
|
+
next unless yardoc.file
|
33
|
+
|
34
|
+
# Skip external doc (e.g. pry-doc)
|
35
|
+
next unless @parse.any? { |pattern| File.fnmatch(pattern, yardoc.file, File::FNM_EXTGLOB | File::FNM_PATHNAME) }
|
36
|
+
|
20
37
|
case yardoc.type
|
21
38
|
when :class, :module
|
22
39
|
YARD2RBS.run(yardoc: yardoc) do |namespace, docstring, rbs|
|
23
40
|
comment = docstring.each_line.map { |line| "# #{line}" }.join
|
24
|
-
if rbs.nil?
|
41
|
+
if rbs.nil? && comment && !store.has_key?(namespace)
|
25
42
|
store[namespace].comment = comment
|
26
43
|
else
|
27
44
|
Orthoses.logger.debug("#{namespace} << #{rbs}")
|
data/sig/orthoses.rbs
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# GENERATED FILE
|
2
|
+
|
3
|
+
# use Orthoses::YARD, parse: "lib/**/*.rb"
|
4
|
+
class Orthoses::YARD
|
5
|
+
# @param loader
|
6
|
+
# @param [<String>, String] parse Target files
|
7
|
+
# @param [Boolean] use_cache Use cache .yardoc
|
8
|
+
# @param [Symbol, nil] log_level Set YARD log level
|
9
|
+
def initialize: (untyped loader, parse: Array[String] | String, ?use_cache: bool, ?log_level: Symbol?) -> void
|
10
|
+
# @return [void]
|
11
|
+
def call: () -> void
|
12
|
+
VERSION: untyped
|
13
|
+
end
|
14
|
+
|
15
|
+
class Orthoses::YARD::YARD2RBS
|
16
|
+
# @return [YARD::CodeObjects::t]
|
17
|
+
attr_reader yardoc: untyped
|
18
|
+
# @return [Proc]
|
19
|
+
attr_reader block: Proc
|
20
|
+
# @return [RBS::Types::Bases::Any]
|
21
|
+
attr_reader untyped: RBS::Types::Bases::Any
|
22
|
+
# @return [RBS::Types::Bases::Void]
|
23
|
+
attr_reader void: RBS::Types::Bases::Void
|
24
|
+
# @return [RBS::Types::Bases::Bool]
|
25
|
+
attr_reader bool: RBS::Types::Bases::Bool
|
26
|
+
def initialize: (yardoc: untyped, block: untyped) -> void
|
27
|
+
# @return [void]
|
28
|
+
def run: () -> void
|
29
|
+
# @return [RBS::Types::t]
|
30
|
+
def tag_types_to_rbs_type: (untyped tag_types) -> untyped
|
31
|
+
# @return [void]
|
32
|
+
private def generate_for_attributes: () -> void
|
33
|
+
# @return [void]
|
34
|
+
private def generate_for_methods: () -> void
|
35
|
+
# @return [void]
|
36
|
+
private def generate_for_constants: () -> void
|
37
|
+
# @return [void]
|
38
|
+
private def generate_for_classvariable: () -> void
|
39
|
+
# @return [Array<RBS::Types::t>]
|
40
|
+
private def recursive_resolve: (untyped types_explainer_types) -> untyped
|
41
|
+
# @return [Array<RBS::Types::Bases::Any>]
|
42
|
+
private def temporary_type_params: (untyped name) -> Array[RBS::Types::Bases::Any]
|
43
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orthoses-yard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: orthoses
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.5.0
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: '2.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.0
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: '2.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: yard
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,29 +52,13 @@ extensions: []
|
|
46
52
|
extra_rdoc_files: []
|
47
53
|
files:
|
48
54
|
- CODE_OF_CONDUCT.md
|
49
|
-
- Gemfile
|
50
|
-
- Gemfile.lock
|
51
55
|
- LICENSE.txt
|
52
56
|
- README.md
|
53
|
-
- examples/yard/Gemfile
|
54
|
-
- examples/yard/Gemfile.lock
|
55
|
-
- examples/yard/Rakefile
|
56
|
-
- examples/yard/generate.rb
|
57
|
-
- examples/yard/rbs_collection.lock.yaml
|
58
|
-
- examples/yard/rbs_collection.yaml
|
59
|
-
- examples/yard/templates/EXTERNAL_TODO.rbs
|
60
|
-
- examples/yard/templates/_scripts/test.erb
|
61
|
-
- examples/yard/templates/_test/Steepfile.erb
|
62
|
-
- examples/yard/templates/_test/yard.rb
|
63
|
-
- examples/yard/templates/manifest.yaml.erb
|
64
57
|
- lib/orthoses-yard.rb
|
65
58
|
- lib/orthoses/yard.rb
|
66
59
|
- lib/orthoses/yard/version.rb
|
67
60
|
- lib/orthoses/yard/yard2rbs.rb
|
68
|
-
- orthoses
|
69
|
-
- sig/orthoses/yard.rbs
|
70
|
-
- sig/orthoses/yard/yard2_rbs.rbs
|
71
|
-
- sig_patch/yard.rbs
|
61
|
+
- sig/orthoses.rbs
|
72
62
|
homepage: https://github.com/ksss/orthoses-yard
|
73
63
|
licenses:
|
74
64
|
- MIT
|
@@ -91,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
81
|
- !ruby/object:Gem::Version
|
92
82
|
version: '0'
|
93
83
|
requirements: []
|
94
|
-
rubygems_version: 3.
|
84
|
+
rubygems_version: 3.4.10
|
95
85
|
signing_key:
|
96
86
|
specification_version: 4
|
97
87
|
summary: Orthoses extention for YARD.
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
orthoses-yard (0.2.0)
|
5
|
-
orthoses (~> 1.3.0)
|
6
|
-
yard
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
activesupport (7.0.4)
|
12
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
-
i18n (>= 1.6, < 2)
|
14
|
-
minitest (>= 5.1)
|
15
|
-
tzinfo (~> 2.0)
|
16
|
-
ast (2.4.2)
|
17
|
-
concurrent-ruby (1.1.10)
|
18
|
-
debug (1.6.2)
|
19
|
-
irb (>= 1.3.6)
|
20
|
-
reline (>= 0.3.1)
|
21
|
-
ffi (1.15.5)
|
22
|
-
i18n (1.12.0)
|
23
|
-
concurrent-ruby (~> 1.0)
|
24
|
-
io-console (0.5.11)
|
25
|
-
irb (1.4.2)
|
26
|
-
reline (>= 0.3.0)
|
27
|
-
language_server-protocol (3.17.0.1)
|
28
|
-
listen (3.7.1)
|
29
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
30
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
31
|
-
minitest (5.16.3)
|
32
|
-
orthoses (1.3.0)
|
33
|
-
rbs (~> 2.0)
|
34
|
-
parallel (1.22.1)
|
35
|
-
parser (3.1.2.1)
|
36
|
-
ast (~> 2.4.1)
|
37
|
-
rainbow (3.1.1)
|
38
|
-
rake (13.0.6)
|
39
|
-
rb-fsevent (0.11.2)
|
40
|
-
rb-inotify (0.10.1)
|
41
|
-
ffi (~> 1.0)
|
42
|
-
rbs (2.7.0)
|
43
|
-
reline (0.3.1)
|
44
|
-
io-console (~> 0.5)
|
45
|
-
rgot (1.1.0)
|
46
|
-
securerandom (0.2.0)
|
47
|
-
steep (1.2.0)
|
48
|
-
activesupport (>= 5.1)
|
49
|
-
language_server-protocol (>= 3.15, < 4.0)
|
50
|
-
listen (~> 3.0)
|
51
|
-
parallel (>= 1.0.0)
|
52
|
-
parser (>= 3.1)
|
53
|
-
rainbow (>= 2.2.2, < 4.0)
|
54
|
-
rbs (>= 2.7.0)
|
55
|
-
securerandom (>= 0.1)
|
56
|
-
terminal-table (>= 2, < 4)
|
57
|
-
terminal-table (3.0.2)
|
58
|
-
unicode-display_width (>= 1.1.1, < 3)
|
59
|
-
tzinfo (2.0.5)
|
60
|
-
concurrent-ruby (~> 1.0)
|
61
|
-
unicode-display_width (2.3.0)
|
62
|
-
webrick (1.7.0)
|
63
|
-
yard (0.9.28)
|
64
|
-
webrick (~> 1.7.0)
|
65
|
-
|
66
|
-
PLATFORMS
|
67
|
-
arm64-darwin-21
|
68
|
-
x86_64-linux
|
69
|
-
|
70
|
-
DEPENDENCIES
|
71
|
-
debug
|
72
|
-
orthoses-yard!
|
73
|
-
rake (~> 13.0)
|
74
|
-
rbs
|
75
|
-
rgot (~> 1.1)
|
76
|
-
steep
|
77
|
-
|
78
|
-
BUNDLED WITH
|
79
|
-
2.3.16
|
data/examples/yard/Gemfile
DELETED
data/examples/yard/Gemfile.lock
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../..
|
3
|
-
specs:
|
4
|
-
orthoses-yard (0.1.0)
|
5
|
-
orthoses (~> 1.2.0)
|
6
|
-
yard
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
ast (2.4.2)
|
12
|
-
commander (4.6.0)
|
13
|
-
highline (~> 2.0.0)
|
14
|
-
debug (1.6.2)
|
15
|
-
irb (>= 1.3.6)
|
16
|
-
reline (>= 0.3.1)
|
17
|
-
highline (2.0.3)
|
18
|
-
io-console (0.5.11)
|
19
|
-
irb (1.4.2)
|
20
|
-
reline (>= 0.3.0)
|
21
|
-
orthoses (1.2.0)
|
22
|
-
rbs (~> 2.0)
|
23
|
-
parlour (5.0.0)
|
24
|
-
commander (~> 4.5)
|
25
|
-
parser
|
26
|
-
rainbow (~> 3.0)
|
27
|
-
sorbet-runtime (>= 0.5)
|
28
|
-
parser (3.1.2.1)
|
29
|
-
ast (~> 2.4.1)
|
30
|
-
rack (3.0.0)
|
31
|
-
rainbow (3.1.1)
|
32
|
-
rake (13.0.6)
|
33
|
-
rbs (2.7.0)
|
34
|
-
reline (0.3.1)
|
35
|
-
io-console (~> 0.5)
|
36
|
-
sorbet-runtime (0.5.10482)
|
37
|
-
sord (5.0.0)
|
38
|
-
commander (~> 4.5)
|
39
|
-
parlour (~> 5.0)
|
40
|
-
rbs (~> 2.0)
|
41
|
-
sorbet-runtime
|
42
|
-
yard
|
43
|
-
webrick (1.7.0)
|
44
|
-
yard (0.9.28)
|
45
|
-
webrick (~> 1.7.0)
|
46
|
-
|
47
|
-
PLATFORMS
|
48
|
-
arm64-darwin-21
|
49
|
-
|
50
|
-
DEPENDENCIES
|
51
|
-
debug
|
52
|
-
orthoses-yard!
|
53
|
-
rack
|
54
|
-
rake
|
55
|
-
sord
|
56
|
-
yard
|
57
|
-
|
58
|
-
BUNDLED WITH
|
59
|
-
2.3.16
|
data/examples/yard/Rakefile
DELETED
data/examples/yard/generate.rb
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
require 'orthoses-yard'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'pathname'
|
4
|
-
require 'erb'
|
5
|
-
|
6
|
-
output_dir = 'out'
|
7
|
-
FileUtils.rm_rf(output_dir)
|
8
|
-
Orthoses.logger.level = :warn
|
9
|
-
|
10
|
-
gem_path = Gem::Specification.find_by_name("yard").load_paths.first
|
11
|
-
notice = "# !!! GENERATED FILE !!!\n# Please see generators/yard-generator/README.md\n"
|
12
|
-
|
13
|
-
Orthoses::Builder.new do
|
14
|
-
use Orthoses::CreateFileByName,
|
15
|
-
base_dir: output_dir,
|
16
|
-
header: notice
|
17
|
-
use Orthoses::Filter do |name, content|
|
18
|
-
name.start_with?('YARD') ||
|
19
|
-
name.start_with?('Ripper') ||
|
20
|
-
name.start_with?('OpenStruct') ||
|
21
|
-
name.start_with?('SymbolHash') ||
|
22
|
-
name.start_with?('Rake') ||
|
23
|
-
name.start_with?('WEBrick') ||
|
24
|
-
name.start_with?('RDoc')
|
25
|
-
end
|
26
|
-
use Orthoses::Tap do |store|
|
27
|
-
store['YARD'].header = 'module YARD'
|
28
|
-
store['YARD::CodeObjects'].header = 'module YARD::CodeObjects'
|
29
|
-
store['YARD::Handlers'].header = 'module YARD::Handlers'
|
30
|
-
store['YARD::Handlers::C'].header = 'module YARD::Handlers::C'
|
31
|
-
store['YARD::Handlers::Common'].header = 'module YARD::Handlers::Common'
|
32
|
-
store['YARD::Handlers::Ruby'].header = 'module YARD::Handlers::Ruby'
|
33
|
-
# TODO: support generics
|
34
|
-
store['YARD::Tags::Library'] << 'def self.labels: () -> SymbolHash'
|
35
|
-
|
36
|
-
# FIXME: YARD's issue?
|
37
|
-
store['YARD::CLI::YardocOptions'].delete("# @return [Numeric] An index value for rendering sequentially related templates\nattr_accessor index: Numeric")
|
38
|
-
end
|
39
|
-
use Orthoses::YARD,
|
40
|
-
parse: [
|
41
|
-
"#{gem_path}/yard.rb",
|
42
|
-
"#{gem_path}/yard/**/*.rb",
|
43
|
-
]
|
44
|
-
use Orthoses::Autoload
|
45
|
-
run -> {
|
46
|
-
require 'yard'
|
47
|
-
YARD::Tags::Library.define_tag("YARD Tag Signature", 'yard.signature'.to_sym, nil)
|
48
|
-
YARD::Tags::Library.define_tag("YARD Tag", 'yard.tag'.to_sym, :with_types_and_name)
|
49
|
-
YARD::Tags::Library.define_tag("YARD Directive", 'yard.directive'.to_sym, :with_types_and_name)
|
50
|
-
}
|
51
|
-
end.call
|
52
|
-
|
53
|
-
stdlib_dependencies = %w[
|
54
|
-
set
|
55
|
-
optparse
|
56
|
-
logger
|
57
|
-
monitor
|
58
|
-
]
|
59
|
-
|
60
|
-
def erb(template_filename, **vars)
|
61
|
-
"templates/#{template_filename}.erb"
|
62
|
-
.then { File.expand_path(_1) }
|
63
|
-
.then { File.read(_1) }
|
64
|
-
.then { ERB.new(_1, trim_mode: '<>').result_with_hash(vars) }
|
65
|
-
end
|
66
|
-
|
67
|
-
out = Pathname(output_dir)
|
68
|
-
out.join("EXTERNAL_TODO.rbs").write(erb("EXTERNAL_TODO.rbs", notice: notice))
|
69
|
-
out.join("manifest.yaml").write(erb("manifest.yaml", notice: notice, stdlib_dependencies: stdlib_dependencies))
|
70
|
-
out.join('_scripts').tap do |scripts|
|
71
|
-
scripts.mkpath
|
72
|
-
scripts.join("test").tap do |test|
|
73
|
-
test.write(erb("_scripts/test", notice: notice, stdlib_dependencies: stdlib_dependencies))
|
74
|
-
test.chmod(0o755)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
out.join('_test').tap do |test|
|
78
|
-
test.mkpath
|
79
|
-
test.join("yard.rb").write(erb("_test/yard.rb", notice: notice))
|
80
|
-
test.join('Steepfile').write(erb("_test/Steepfile", notice: notice, stdlib_dependencies: stdlib_dependencies))
|
81
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sources:
|
3
|
-
- name: ruby/gem_rbs_collection
|
4
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
5
|
-
revision: main
|
6
|
-
repo_dir: gems
|
7
|
-
path: ".gem_rbs_collection"
|
8
|
-
gems:
|
9
|
-
- name: rbs
|
10
|
-
version: 2.7.0
|
11
|
-
source:
|
12
|
-
type: rubygems
|
13
|
-
- name: ast
|
14
|
-
version: '2.4'
|
15
|
-
source:
|
16
|
-
type: git
|
17
|
-
name: ruby/gem_rbs_collection
|
18
|
-
revision: 6b07483f37484e2b7df168598b95b0c79be2924f
|
19
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
20
|
-
repo_dir: gems
|
21
|
-
- name: io-console
|
22
|
-
version: '0'
|
23
|
-
source:
|
24
|
-
type: stdlib
|
25
|
-
- name: orthoses
|
26
|
-
version: 1.2.0
|
27
|
-
source:
|
28
|
-
type: rubygems
|
29
|
-
- name: orthoses-yard
|
30
|
-
version: 0.1.0
|
31
|
-
source:
|
32
|
-
type: rubygems
|
33
|
-
- name: rack
|
34
|
-
version: '2.2'
|
35
|
-
source:
|
36
|
-
type: git
|
37
|
-
name: ruby/gem_rbs_collection
|
38
|
-
revision: 6b07483f37484e2b7df168598b95b0c79be2924f
|
39
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
40
|
-
repo_dir: gems
|
41
|
-
- name: rainbow
|
42
|
-
version: '3.0'
|
43
|
-
source:
|
44
|
-
type: git
|
45
|
-
name: ruby/gem_rbs_collection
|
46
|
-
revision: 6b07483f37484e2b7df168598b95b0c79be2924f
|
47
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
48
|
-
repo_dir: gems
|
49
|
-
- name: logger
|
50
|
-
version: '0'
|
51
|
-
source:
|
52
|
-
type: stdlib
|
53
|
-
- name: set
|
54
|
-
version: '0'
|
55
|
-
source:
|
56
|
-
type: stdlib
|
57
|
-
- name: pathname
|
58
|
-
version: '0'
|
59
|
-
source:
|
60
|
-
type: stdlib
|
61
|
-
- name: json
|
62
|
-
version: '0'
|
63
|
-
source:
|
64
|
-
type: stdlib
|
65
|
-
- name: optparse
|
66
|
-
version: '0'
|
67
|
-
source:
|
68
|
-
type: stdlib
|
69
|
-
- name: tsort
|
70
|
-
version: '0'
|
71
|
-
source:
|
72
|
-
type: stdlib
|
73
|
-
- name: rdoc
|
74
|
-
version: '0'
|
75
|
-
source:
|
76
|
-
type: stdlib
|
77
|
-
- name: monitor
|
78
|
-
version: '0'
|
79
|
-
source:
|
80
|
-
type: stdlib
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# Download sources
|
2
|
-
sources:
|
3
|
-
- name: ruby/gem_rbs_collection
|
4
|
-
remote: https://github.com/ruby/gem_rbs_collection.git
|
5
|
-
revision: main
|
6
|
-
repo_dir: gems
|
7
|
-
|
8
|
-
# A directory to install the downloaded RBSs
|
9
|
-
path: .gem_rbs_collection
|
10
|
-
|
11
|
-
gems:
|
12
|
-
- name: rbs
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# It is a temporary definition of a type definition
|
2
|
-
# for which the library RBS does not currently exist.
|
3
|
-
# Once the library RBS is defined and included in rbs_collection.lock.yaml,
|
4
|
-
# the duplicate type definitions in this file should be removed.
|
5
|
-
|
6
|
-
class OpenStruct
|
7
|
-
end
|
8
|
-
|
9
|
-
class Ripper
|
10
|
-
end
|
11
|
-
|
12
|
-
module Rake
|
13
|
-
class TaskLib
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
module WEBrick
|
19
|
-
module HTTPServlet
|
20
|
-
class AbstractServlet
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
module RDoc
|
26
|
-
module Markup
|
27
|
-
class ToHtml
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# Exit command with non-zero status code, Output logs of every command executed, Treat unset variables as an error when substituting.
|
4
|
-
set -eou pipefail
|
5
|
-
# Internal Field Separator - Linux shell variable
|
6
|
-
IFS=$'
|
7
|
-
'
|
8
|
-
# Print shell input lines
|
9
|
-
set -v
|
10
|
-
|
11
|
-
# Set RBS_DIR variable to change directory to execute type checks using `steep check`
|
12
|
-
RBS_DIR=$(cd $(dirname $0)/..; pwd)
|
13
|
-
# Set REPO_DIR variable to validate RBS files added to the corresponding folder
|
14
|
-
REPO_DIR=$(cd $(dirname $0)/../../..; pwd)
|
15
|
-
# Validate RBS files, using the bundler environment present
|
16
|
-
bundle exec rbs --repo $REPO_DIR -r yard:0.9 <%= stdlib_dependencies.map { "-r #{_1}" }.join(' ') %> -r rack:2.2.2 validate --silent
|
17
|
-
|
18
|
-
cd ${RBS_DIR}/_test
|
19
|
-
# Run type checks
|
20
|
-
bundle exec steep check
|
@@ -1,17 +0,0 @@
|
|
1
|
-
D = Steep::Diagnostic
|
2
|
-
|
3
|
-
target :test do
|
4
|
-
check "."
|
5
|
-
signature '.'
|
6
|
-
|
7
|
-
repo_path "../../../"
|
8
|
-
|
9
|
-
<% stdlib_dependencies.each do |stdlib| %>
|
10
|
-
library "<%= stdlib %>"
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
library "yard:0.9"
|
14
|
-
library "rack:2.2.2"
|
15
|
-
|
16
|
-
configure_code_diagnostics(D::Ruby.all_error)
|
17
|
-
end
|
data/orthoses-yard.gemspec
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "lib/orthoses/yard/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = "orthoses-yard"
|
7
|
-
spec.version = Orthoses::YARD::VERSION
|
8
|
-
spec.authors = ["ksss"]
|
9
|
-
spec.email = ["co000ri@gmail.com"]
|
10
|
-
|
11
|
-
spec.summary = "Orthoses extention for YARD."
|
12
|
-
spec.description = "Orthoses extention for YARD."
|
13
|
-
spec.homepage = "https://github.com/ksss/orthoses-yard"
|
14
|
-
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version = ">= 2.6.0"
|
16
|
-
|
17
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
-
spec.metadata["source_code_uri"] = spec.homepage
|
19
|
-
spec.metadata["changelog_uri"] = spec.homepage
|
20
|
-
|
21
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
22
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
23
|
-
next true if (f == __FILE__)
|
24
|
-
next true if f.match?(%r{\A(?:bin|known_sig)/}) # dir
|
25
|
-
next true if f.match?(%r{\A\.(?:git)}) # git
|
26
|
-
next true if f.match?(%r{\A(?:rbs_collection|Steepfile|Rakefile)}) # top file
|
27
|
-
next true if f.match?(%r{_test\.rb\z}) # test
|
28
|
-
false
|
29
|
-
end
|
30
|
-
end
|
31
|
-
spec.bindir = "exe"
|
32
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
33
|
-
spec.require_paths = ["lib"]
|
34
|
-
|
35
|
-
spec.add_dependency "orthoses", "~> 1.3.0"
|
36
|
-
spec.add_dependency "yard"
|
37
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# GENERATED FILE
|
2
|
-
|
3
|
-
class Orthoses::YARD::YARD2RBS
|
4
|
-
# @return [YARD::CodeObjects::t]
|
5
|
-
attr_reader yardoc: untyped
|
6
|
-
# @return [Proc]
|
7
|
-
attr_reader block: Proc
|
8
|
-
# @return [RBS::Types::Bases::Any]
|
9
|
-
attr_reader untyped: RBS::Types::Bases::Any
|
10
|
-
# @return [RBS::Types::Bases::Void]
|
11
|
-
attr_reader void: RBS::Types::Bases::Void
|
12
|
-
# @return [RBS::Types::Bases::Bool]
|
13
|
-
attr_reader bool: RBS::Types::Bases::Bool
|
14
|
-
def initialize: (yardoc: untyped, block: untyped) -> void
|
15
|
-
# @return [void]
|
16
|
-
def run: () -> void
|
17
|
-
# @return [void]
|
18
|
-
def generate_for_attributes: () -> void
|
19
|
-
# @return [void]
|
20
|
-
def generate_for_methods: () -> void
|
21
|
-
# @return [void]
|
22
|
-
def generate_for_constants: () -> void
|
23
|
-
# @return [RBS::Types::t]
|
24
|
-
def tag_types_to_rbs_type: (untyped tag_types) -> untyped
|
25
|
-
# @return [RBS::Types::t]
|
26
|
-
def wrap: (untyped types) -> untyped
|
27
|
-
# @return [Array<RBS::Types::t>]
|
28
|
-
def recursive_resolve: (untyped types_explainer_types) -> untyped
|
29
|
-
# @return [Array<RBS::Types::Bases::Any>]
|
30
|
-
def temporary_type_params: (untyped name) -> Array[RBS::Types::Bases::Any]
|
31
|
-
end
|
data/sig/orthoses/yard.rbs
DELETED
data/sig_patch/yard.rbs
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
module YARD
|
2
|
-
module Registry
|
3
|
-
end
|
4
|
-
|
5
|
-
module Tags
|
6
|
-
module TypesExplainer
|
7
|
-
class Parser
|
8
|
-
end
|
9
|
-
|
10
|
-
class Type
|
11
|
-
end
|
12
|
-
|
13
|
-
class CollectionType < Type
|
14
|
-
end
|
15
|
-
|
16
|
-
class FixedCollectionType < CollectionType
|
17
|
-
end
|
18
|
-
|
19
|
-
class HashCollectionType < Type
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
module CodeObjects
|
25
|
-
type t = ModuleObject | ClassObject | MethodObject
|
26
|
-
class Base
|
27
|
-
def attributes: () -> { class: Hash[Symbol, untyped], instance: Hash[Symbol, untyped] }
|
28
|
-
end
|
29
|
-
class NamespaceObject < Base
|
30
|
-
end
|
31
|
-
class ModuleObject < NamespaceObject
|
32
|
-
end
|
33
|
-
class ClassObject < NamespaceObject
|
34
|
-
end
|
35
|
-
class MethodObject < Base
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|