decode 0.19.0 → 0.20.1
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
- checksums.yaml.gz.sig +0 -0
- data/bake/decode/index.rb +46 -0
- data/lib/decode/comment/node.rb +2 -3
- data/lib/decode/language/ruby/parser.rb +11 -6
- data/lib/decode/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cad37ec3456d7b6edc9bcfa36c28b4f05c83ba978fed9a1989d0c0daba8b12c9
|
4
|
+
data.tar.gz: 559c5b61c73b58f420591361502c76f81e168c74e1c425dfcb2a89bf4766c9d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1e7915cb517d46bc9372734244045bffe3bd32acaae6bd7cb3f4dd7eaef9240faf74b63bff4249a7d7fc7a7ab2623aff4178d41eb0a4875f735fcd724ff6fd2
|
7
|
+
data.tar.gz: a79d14e85375ecf5a7aa3a961ee42033bb3381b9f057472a7126b2dbde8be2cf2fd3d2eab0bd55a371e03f3085f2ed6bf3525c0b047284dd996a6b68c8756a20
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/bake/decode/index.rb
CHANGED
@@ -29,3 +29,49 @@ def coverage(root)
|
|
29
29
|
|
30
30
|
$stderr.puts "#{documented}/#{total} definitions have documentation."
|
31
31
|
end
|
32
|
+
|
33
|
+
# Process the given source root and report on symbols.
|
34
|
+
# @parameter root [String] The root path to index.
|
35
|
+
def symbols(root)
|
36
|
+
require 'build/files/glob'
|
37
|
+
require 'decode/index'
|
38
|
+
|
39
|
+
paths = Build::Files::Path.expand(root).glob("**/*")
|
40
|
+
|
41
|
+
index = Decode::Index.new
|
42
|
+
index.update(paths)
|
43
|
+
|
44
|
+
index.trie.traverse do |path, node, descend|
|
45
|
+
level = path.size
|
46
|
+
puts "#{" " * level}#{path.inspect} -> #{node.values.inspect}"
|
47
|
+
|
48
|
+
if path.any?
|
49
|
+
puts "#{" " * level}#{path.join("::")}"
|
50
|
+
end
|
51
|
+
|
52
|
+
descend.call
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Print documentation for all definitions.
|
57
|
+
# @parameter root [String] The root path to index.
|
58
|
+
def documentation(root)
|
59
|
+
require 'build/files/glob'
|
60
|
+
require 'decode/index'
|
61
|
+
|
62
|
+
paths = Build::Files::Path.expand(root).glob("**/*")
|
63
|
+
|
64
|
+
index = Decode::Index.new
|
65
|
+
index.update(paths)
|
66
|
+
|
67
|
+
index.definitions.each do |name, definition|
|
68
|
+
comments = definition.comments
|
69
|
+
|
70
|
+
if comments
|
71
|
+
puts "## `#{name}`"
|
72
|
+
puts
|
73
|
+
puts comments
|
74
|
+
puts
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/decode/comment/node.rb
CHANGED
@@ -47,7 +47,7 @@ module Decode
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
# Any lines of text associated
|
50
|
+
# Any lines of text associated with this node.
|
51
51
|
# @returns [Array(String) | Nil] The lines of text.
|
52
52
|
def text
|
53
53
|
if text = self.extract_text
|
@@ -55,8 +55,7 @@ module Decode
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
# Traverse the tags from this node using {each}.
|
59
|
-
# Invoke `descend.call(child)` to recursively traverse the specified child.
|
58
|
+
# Traverse the tags from this node using {each}. Invoke `descend.call(child)` to recursively traverse the specified child.
|
60
59
|
#
|
61
60
|
# @yields {|node, descend| descend.call}
|
62
61
|
# @parameter node [Node] The current node which is being traversed.
|
@@ -74,10 +74,6 @@ module Decode
|
|
74
74
|
# Walk over the syntax tree and extract relevant definitions with their associated comments.
|
75
75
|
def walk_definitions(node, comments, parent = nil, &block)
|
76
76
|
case node.type
|
77
|
-
when :begin
|
78
|
-
node.children.each do |child|
|
79
|
-
walk_definitions(child, comments, parent, &block)
|
80
|
-
end
|
81
77
|
when :module
|
82
78
|
definition = Module.new(
|
83
79
|
node, nested_name_for(node.children[0]),
|
@@ -126,10 +122,13 @@ module Decode
|
|
126
122
|
|
127
123
|
yield definition
|
128
124
|
when :defs
|
125
|
+
extracted_comments = extract_comments_for(node, comments)
|
126
|
+
|
129
127
|
definition = Function.new(
|
130
128
|
node, node.children[1],
|
131
|
-
comments:
|
132
|
-
parent: parent,
|
129
|
+
comments: extracted_comments,
|
130
|
+
parent: scope_for(extracted_comments, parent, &block),
|
131
|
+
language: @language
|
133
132
|
)
|
134
133
|
|
135
134
|
yield definition
|
@@ -186,6 +185,12 @@ module Decode
|
|
186
185
|
walk_definitions(children, comments, definition, &block)
|
187
186
|
end
|
188
187
|
end
|
188
|
+
else
|
189
|
+
node.children.each do |child|
|
190
|
+
if child.is_a?(::Parser::AST::Node)
|
191
|
+
walk_definitions(child, comments, parent, &block) if child
|
192
|
+
end
|
193
|
+
end
|
189
194
|
end
|
190
195
|
end
|
191
196
|
|
data/lib/decode/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -37,7 +37,7 @@ cert_chain:
|
|
37
37
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
38
38
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
39
39
|
-----END CERTIFICATE-----
|
40
|
-
date: 2023-
|
40
|
+
date: 2023-12-04 00:00:00.000000000 Z
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: parser
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0'
|
127
127
|
requirements: []
|
128
|
-
rubygems_version: 3.4.
|
128
|
+
rubygems_version: 3.4.22
|
129
129
|
signing_key:
|
130
130
|
specification_version: 4
|
131
131
|
summary: Code analysis for documentation generation.
|
metadata.gz.sig
CHANGED
Binary file
|