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 
     |