decode 0.13.0 → 0.15.2

Sign up to get free protection for your applications and to get access to all the features.
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