decode 0.13.0 → 0.15.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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/bake/decode/index.rb +1 -1
  3. data/lib/decode/comment/attribute.rb +53 -0
  4. data/lib/decode/comment/node.rb +90 -0
  5. data/lib/decode/comment/parameter.rb +58 -0
  6. data/lib/decode/comment/pragma.rb +50 -0
  7. data/lib/decode/comment/raises.rb +32 -0
  8. data/lib/decode/comment/returns.rb +32 -0
  9. data/lib/decode/comment/tag.rb +50 -0
  10. data/lib/decode/comment/tags.rb +80 -0
  11. data/lib/decode/comment/text.rb +37 -0
  12. data/lib/decode/comment/throws.rb +32 -0
  13. data/lib/decode/comment/yields.rb +52 -0
  14. data/lib/decode/definition.rb +26 -19
  15. data/lib/decode/documentation.rb +21 -66
  16. data/lib/decode/index.rb +7 -7
  17. data/lib/decode/language/generic.rb +2 -2
  18. data/lib/decode/language/reference.rb +39 -9
  19. data/lib/decode/language/ruby.rb +40 -6
  20. data/lib/decode/language/ruby/block.rb +1 -1
  21. data/lib/decode/language/ruby/class.rb +2 -2
  22. data/lib/decode/language/ruby/code.rb +85 -0
  23. data/lib/decode/language/ruby/definition.rb +1 -1
  24. data/lib/decode/language/ruby/method.rb +7 -1
  25. data/lib/decode/language/ruby/module.rb +6 -0
  26. data/lib/decode/language/ruby/parser.rb +11 -3
  27. data/lib/decode/language/ruby/reference.rb +31 -0
  28. data/lib/decode/language/ruby/segment.rb +1 -1
  29. data/lib/decode/scope.rb +3 -0
  30. data/lib/decode/segment.rb +4 -4
  31. data/lib/decode/source.rb +24 -8
  32. data/lib/decode/syntax/link.rb +44 -0
  33. data/lib/decode/syntax/match.rb +53 -0
  34. data/lib/decode/syntax/rewriter.rb +70 -0
  35. data/lib/decode/trie.rb +13 -13
  36. data/lib/decode/version.rb +1 -1
  37. metadata +23 -43
  38. data/.github/workflows/development.yml +0 -50
  39. data/.gitignore +0 -13
  40. data/.rspec +0 -2
  41. data/README.md +0 -47
  42. data/decode.gemspec +0 -33
  43. data/gems.rb +0 -3
  44. data/guides/extract-symbols/extract.rb +0 -26
@@ -1,33 +0,0 @@
1
-
2
- require_relative 'lib/decode/version'
3
-
4
- Gem::Specification.new do |spec|
5
- spec.name = "decode"
6
- spec.version = Decode::VERSION
7
- spec.authors = ["Samuel Williams"]
8
- spec.email = ["samuel.williams@oriontransfer.co.nz"]
9
-
10
- spec.summary = "Code analysis for documentation generation."
11
- spec.homepage = "https://github.com/ioquatix/decode"
12
- spec.license = "MIT"
13
-
14
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
15
-
16
- # Specify which files should be added to the gem when it is released.
17
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
19
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(docs|test|spec|features)/}) }
20
- end
21
-
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ["lib"]
24
-
25
- spec.add_dependency "parser"
26
-
27
- spec.add_development_dependency 'build-files'
28
- spec.add_development_dependency 'bake-bundler'
29
- spec.add_development_dependency 'utopia-project'
30
- spec.add_development_dependency 'covered'
31
- spec.add_development_dependency 'bundler'
32
- spec.add_development_dependency 'rspec'
33
- end
data/gems.rb DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # This example demonstrates how to extract symbols using the index. An instance of {Decode::Index} is used for loading symbols from source code files. These symbols are available as a flat list and as a trie structure. You can look up specific symbols using a reference using {Decode::Index:lookup}.
4
- require_relative '../../lib/decode/index'
5
-
6
- # Firstly, construct the index:
7
- index = Decode::Index.new
8
-
9
- # Then, update the index by loading paths from the file system:
10
- paths = Dir.glob(File.expand_path("../../lib/**/*.rb", __dir__))
11
- index.update(paths)
12
-
13
- # Finally, you can print out the loaded symbols:
14
- index.symbols.each do |name, symbol|
15
- puts symbol.long_form
16
- end
17
-
18
- # Lookup a specific symbol:
19
- absolute_reference = Decode::Language::Ruby.reference("Decode::Index:lookup")
20
- lookup_symbol = index.lookup(absolute_reference).first
21
- puts lookup_symbol.long_form
22
-
23
- # Lookup a method relative to that symbol:
24
- relative_reference = Decode::Language::Ruby.reference("trie")
25
- trie_attribute = index.lookup(relative_reference, relative_to: lookup_symbol).first
26
- puts trie_attribute.long_form