Module: Documented
- Defined in:
- lib/accessor.rb,
lib/config.rb,
lib/renderer.rb,
lib/documented.rb
Overview
Access variables via one object to avoid polluting the caller’s scope.
Defined Under Namespace
Classes: Accessor, Config, Renderer
Class Method Summary collapse
- .configure {|@@documented.config| ... } ⇒ Object
-
.documented_setup_class ⇒ Object
Setup class.
- .included(base) ⇒ Object
Instance Method Summary collapse
Class Method Details
.configure {|@@documented.config| ... } ⇒ Object
48 49 50 51 52 |
# File 'lib/documented.rb', line 48 def self.configure documented_setup_class() yield(@@documented.config) end |
.documented_setup_class ⇒ Object
Setup class.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/documented.rb', line 68 def self.documented_setup_class() @@documented = Accessor.new() @@documented.config = Config.new() # Setup paths. @@documented.package_path = File.dirname(File.realpath(__FILE__)) @@documented.project_path = @@documented.config.project_path @@documented.output_path = File.join(@@documented.project_path, @@documented.config.output_directory) unless Dir.exist? @@documented.output_path Dir.mkdir(@@documented.output_path) end @@documented.renderer = Renderer.new(@@documented.package_path, @@documented.output_path) end |
.included(base) ⇒ Object
54 55 56 |
# File 'lib/documented.rb', line 54 def self.included(base) documented_setup_class() end |
Instance Method Details
#documented ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/documented.rb', line 9 def documented events = [] calls = ['Start'] trace = TracePoint.new(:call, :return) do |tp| # file = File.open("#{__dir__}/../../doc/diagrams/input.mmd") # file.write("sequenceDiagram\n") # file.close caller = calls.last.to_s callee = tp.defined_class.to_s event = tp.event unless blocklist.any? { |e| callee.to_s.start_with? e } unless calls.last == callee if event == :return calls.pop elsif calls.last != callee calls << callee end end unless callee == caller caller = caller.gsub('::','.') callee = callee.gsub('::','.') p "#{caller}->>#{callee}: #{tp.method_id}" end end end trace.enable yield trace.disable ap events end |