docscribe 1.4.1 → 1.4.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 +4 -4
- data/README.md +149 -0
- data/lib/docscribe/cli/config_builder.rb +125 -35
- data/lib/docscribe/cli/generate.rb +288 -117
- data/lib/docscribe/cli/init.rb +49 -13
- data/lib/docscribe/cli/options.rb +302 -127
- data/lib/docscribe/cli/run.rb +391 -135
- data/lib/docscribe/cli.rb +23 -5
- data/lib/docscribe/config/defaults.rb +11 -11
- data/lib/docscribe/config/emit.rb +1 -0
- data/lib/docscribe/config/filtering.rb +24 -11
- data/lib/docscribe/config/loader.rb +7 -4
- data/lib/docscribe/config/plugin.rb +1 -0
- data/lib/docscribe/config/rbs.rb +31 -22
- data/lib/docscribe/config/sorbet.rb +41 -15
- data/lib/docscribe/config/sorting.rb +1 -0
- data/lib/docscribe/config/template.rb +1 -0
- data/lib/docscribe/config/utils.rb +1 -0
- data/lib/docscribe/config.rb +1 -0
- data/lib/docscribe/infer/constants.rb +15 -0
- data/lib/docscribe/infer/literals.rb +43 -25
- data/lib/docscribe/infer/names.rb +24 -15
- data/lib/docscribe/infer/params.rb +52 -6
- data/lib/docscribe/infer/raises.rb +24 -14
- data/lib/docscribe/infer/returns.rb +365 -182
- data/lib/docscribe/infer.rb +10 -9
- data/lib/docscribe/inline_rewriter/collector.rb +766 -375
- data/lib/docscribe/inline_rewriter/doc_block.rb +217 -74
- data/lib/docscribe/inline_rewriter/doc_builder.rb +1488 -602
- data/lib/docscribe/inline_rewriter/source_helpers.rb +100 -52
- data/lib/docscribe/inline_rewriter/tag_sorter.rb +109 -48
- data/lib/docscribe/inline_rewriter.rb +1009 -595
- data/lib/docscribe/plugin/base/collector_plugin.rb +2 -3
- data/lib/docscribe/plugin/base/tag_plugin.rb +1 -1
- data/lib/docscribe/plugin/registry.rb +34 -7
- data/lib/docscribe/plugin.rb +48 -17
- data/lib/docscribe/types/rbs/collection_loader.rb +0 -1
- data/lib/docscribe/types/rbs/provider.rb +75 -26
- data/lib/docscribe/types/rbs/type_formatter.rb +127 -59
- data/lib/docscribe/types/sorbet/base_provider.rb +31 -12
- data/lib/docscribe/version.rb +1 -1
- metadata +2 -2
|
@@ -20,24 +20,14 @@ module Docscribe
|
|
|
20
20
|
# @param [Parser::AST::Node] node method or expression node to inspect
|
|
21
21
|
# @return [Array<String>]
|
|
22
22
|
def infer_raises_from_node(node)
|
|
23
|
-
raises = []
|
|
23
|
+
raises = [] #: Array[String]
|
|
24
24
|
|
|
25
25
|
ASTWalk.walk(node) do |n|
|
|
26
26
|
case n.type
|
|
27
27
|
when :resbody
|
|
28
|
-
|
|
29
|
-
raises.concat(exception_names_from_rescue_list(exc_list))
|
|
30
|
-
|
|
28
|
+
raises.concat(exception_names_from_rescue_list(n.children[0]))
|
|
31
29
|
when :send
|
|
32
|
-
|
|
33
|
-
next unless recv.nil? && %i[raise fail].include?(meth)
|
|
34
|
-
|
|
35
|
-
if args.empty?
|
|
36
|
-
raises << DEFAULT_ERROR
|
|
37
|
-
else
|
|
38
|
-
c = Names.const_full_name(args[0])
|
|
39
|
-
raises << (c || DEFAULT_ERROR)
|
|
40
|
-
end
|
|
30
|
+
collect_send_raise(raises, n)
|
|
41
31
|
end
|
|
42
32
|
end
|
|
43
33
|
|
|
@@ -51,7 +41,8 @@ module Docscribe
|
|
|
51
41
|
# - `Foo` => `["Foo"]`
|
|
52
42
|
# - `[Foo, Bar]` => `["Foo", "Bar"]`
|
|
53
43
|
#
|
|
54
|
-
# @note module_function: when included, also defines
|
|
44
|
+
# @note module_function: when included, also defines
|
|
45
|
+
# #exception_names_from_rescue_list (instance visibility: private)
|
|
55
46
|
# @param [Parser::AST::Node, nil] exc_list rescue exception list node
|
|
56
47
|
# @return [Array<String>]
|
|
57
48
|
def exception_names_from_rescue_list(exc_list)
|
|
@@ -63,6 +54,25 @@ module Docscribe
|
|
|
63
54
|
[Names.const_full_name(exc_list) || DEFAULT_ERROR]
|
|
64
55
|
end
|
|
65
56
|
end
|
|
57
|
+
|
|
58
|
+
# Collect exception names from a `raise` or `fail` send node.
|
|
59
|
+
#
|
|
60
|
+
# @note module_function: when included, also defines # (instance visibility: private)
|
|
61
|
+
# @private
|
|
62
|
+
# @param [Array<String>] raises accumulator
|
|
63
|
+
# @param [Parser::AST::Node] node send node
|
|
64
|
+
# @return [void]
|
|
65
|
+
def collect_send_raise(raises, node)
|
|
66
|
+
recv, meth, *args = *node
|
|
67
|
+
return unless recv.nil? && %i[raise fail].include?(meth)
|
|
68
|
+
|
|
69
|
+
if args.empty?
|
|
70
|
+
raises << DEFAULT_ERROR
|
|
71
|
+
else
|
|
72
|
+
c = Names.const_full_name(args[0])
|
|
73
|
+
raises << (c || DEFAULT_ERROR)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
66
76
|
end
|
|
67
77
|
end
|
|
68
78
|
end
|