documented 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/documented +5 -3
- data/lib/rewriter.rb +2 -2
- data/lib/tracer.rb +24 -16
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a10abe36f1e6d26018072c76ea6b41b88f9be3644f0d26927a267333e9014e44
|
4
|
+
data.tar.gz: 4168f759f3270a5ab41a046538659d2a62d354bfd1936105a2c8083030089e96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '097512514d08ab602efa443ea5a9d8a15ebc5986048924bc512c64a66d4fc7fe61e03360a0403a3b6affb90e847b1ae685149673c47954df11f697c709f01b46'
|
7
|
+
data.tar.gz: d118c24f9032da6851c5f1508db97cc55bd4dac37e930bd452e5ef82a5f09b313b43425e200c68db7f6152946b9552efda940a202b87d11a56ea3b16c789add9
|
data/bin/documented
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
gem_path = File.expand_path('../../', __FILE__)
|
4
|
+
require File.join(gem_path, 'lib/documented')
|
5
|
+
require File.join(gem_path, 'lib/rewriter')
|
4
6
|
|
5
7
|
################################################################################
|
6
8
|
# Usage:
|
@@ -13,7 +15,7 @@ require '../lib/rewriter'
|
|
13
15
|
file_path = File.join(Dir.pwd, ARGV.first)
|
14
16
|
|
15
17
|
rewriter = Documented::Rewriter.new(file_path)
|
16
|
-
rewriter.require_library(
|
18
|
+
rewriter.require_library(gem_path)
|
17
19
|
rewriter.replace_comments
|
18
20
|
rewriter.write
|
19
21
|
rewriter.execute
|
data/lib/rewriter.rb
CHANGED
@@ -13,9 +13,9 @@ module Documented
|
|
13
13
|
@tree = Parser::Source::TreeRewriter.new(@source.buffer)
|
14
14
|
end
|
15
15
|
|
16
|
-
def require_library(
|
16
|
+
def require_library(gem_path)
|
17
17
|
setup = <<-RUBY
|
18
|
-
\n require "#{
|
18
|
+
\n require "#{gem_path}/lib/documented"
|
19
19
|
Documented.setup("#{@file_path}")
|
20
20
|
RUBY
|
21
21
|
@tree.insert_after(@source.ast.children.first.loc.expression, setup)
|
data/lib/tracer.rb
CHANGED
@@ -26,28 +26,36 @@ module Documented
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def create_trace_point
|
29
|
-
calls = [
|
29
|
+
calls = []
|
30
30
|
|
31
31
|
return TracePoint.new(:call, :return) do |trace_point|
|
32
|
+
callee = trace_point.self.class.to_s
|
33
|
+
|
34
|
+
next if @blocklist.any? do |class_name|
|
35
|
+
callee.start_with?(class_name) || trace_point.defined_class.to_s.start_with?(class_name)
|
36
|
+
end
|
37
|
+
|
38
|
+
calls << callee if calls.empty?
|
32
39
|
caller = calls.last.to_s
|
33
|
-
|
40
|
+
next if trace_point.method_id == :initialize && caller == callee && !@sequence.empty?
|
41
|
+
|
34
42
|
event = trace_point.event
|
35
|
-
|
36
|
-
unless
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
calls << callee
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
unless callee == caller
|
46
|
-
caller = caller.gsub('::','.')
|
47
|
-
callee = callee.gsub('::','.')
|
48
|
-
@sequence << "#{caller}->>#{callee}: #{trace_point.method_id}"
|
43
|
+
|
44
|
+
unless calls.last == callee
|
45
|
+
if event == :return
|
46
|
+
calls.pop
|
47
|
+
elsif calls.last != callee
|
48
|
+
calls << callee
|
49
49
|
end
|
50
50
|
end
|
51
|
+
|
52
|
+
caller.gsub!('::','.')
|
53
|
+
callee.gsub!('::','.')
|
54
|
+
event = "#{caller}->>#{callee}: #{trace_point.method_id}"
|
55
|
+
|
56
|
+
next if @sequence.last == event
|
57
|
+
|
58
|
+
@sequence << event
|
51
59
|
end
|
52
60
|
end
|
53
61
|
end
|