decode 0.13.0 → 0.15.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bake/decode/index.rb +1 -1
- data/lib/decode/comment/attribute.rb +53 -0
- data/lib/decode/comment/node.rb +90 -0
- data/lib/decode/comment/parameter.rb +58 -0
- data/lib/decode/comment/pragma.rb +50 -0
- data/lib/decode/comment/raises.rb +32 -0
- data/lib/decode/comment/returns.rb +32 -0
- data/lib/decode/comment/tag.rb +50 -0
- data/lib/decode/comment/tags.rb +80 -0
- data/lib/decode/comment/text.rb +37 -0
- data/lib/decode/comment/throws.rb +32 -0
- data/lib/decode/comment/yields.rb +52 -0
- data/lib/decode/definition.rb +26 -19
- data/lib/decode/documentation.rb +21 -66
- data/lib/decode/index.rb +7 -7
- data/lib/decode/language/generic.rb +2 -2
- data/lib/decode/language/reference.rb +39 -9
- data/lib/decode/language/ruby.rb +40 -6
- data/lib/decode/language/ruby/block.rb +1 -1
- data/lib/decode/language/ruby/class.rb +2 -2
- data/lib/decode/language/ruby/code.rb +85 -0
- data/lib/decode/language/ruby/definition.rb +1 -1
- data/lib/decode/language/ruby/method.rb +7 -1
- data/lib/decode/language/ruby/module.rb +6 -0
- data/lib/decode/language/ruby/parser.rb +11 -3
- data/lib/decode/language/ruby/reference.rb +31 -0
- data/lib/decode/language/ruby/segment.rb +1 -1
- data/lib/decode/scope.rb +3 -0
- data/lib/decode/segment.rb +4 -4
- data/lib/decode/source.rb +24 -8
- data/lib/decode/syntax/link.rb +44 -0
- data/lib/decode/syntax/match.rb +53 -0
- data/lib/decode/syntax/rewriter.rb +70 -0
- data/lib/decode/trie.rb +13 -13
- data/lib/decode/version.rb +1 -1
- metadata +23 -43
- data/.github/workflows/development.yml +0 -50
- data/.gitignore +0 -13
- data/.rspec +0 -2
- data/README.md +0 -47
- data/decode.gemspec +0 -33
- data/gems.rb +0 -3
- data/guides/extract-symbols/extract.rb +0 -26
data/decode.gemspec
DELETED
@@ -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,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
|