tracia 0.2.4 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/tracia/default_logger.rb +4 -2
- data/lib/tracia/frame.rb +26 -1
- data/lib/tracia/version.rb +1 -1
- data/lib/tracia.rb +2 -1
- metadata +21 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 978a7b204dede4d5be2b8a78975266d59a16c0e93363b3e831d05b4d2cab7584
|
4
|
+
data.tar.gz: eb99548c2f027ca0242c513bb95369b3737fa12adf827c61eeb742341e16bee8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 990222bdcf8274d78bf63d68e97d3a7255c04a6da833f3638a6d82cbebb13f0a5f28aaa4039316975fa1543fac96b4771f630d96633c4bce54e6043c6e8eaea7
|
7
|
+
data.tar.gz: b613ca56e63b58cce4bb5cfca0a91f2c9113a00fbb6206d5f6bab3e7f6010c953c6fdd35966b2de3520477a04cff416188acc22df93b22c2214baacb0485c92e
|
data/README.md
CHANGED
@@ -45,9 +45,9 @@ end
|
|
45
45
|
By default, Tracia writes result to STDOUT, you can set it somewhere else
|
46
46
|
|
47
47
|
```ruby
|
48
|
-
file = File.new('/path/to/log.
|
48
|
+
file = File.new('/path/to/log.html', 'w+')
|
49
49
|
|
50
|
-
Tracia.start(logger: Tracia::DefaultLogger.new(out: file)) do
|
50
|
+
Tracia.start(logger: Tracia::DefaultLogger.new(out: file, html: true)) do
|
51
51
|
# ...
|
52
52
|
end
|
53
53
|
```
|
@@ -1,11 +1,13 @@
|
|
1
1
|
class Tracia
|
2
2
|
class DefaultLogger
|
3
|
-
def initialize(out: STDOUT)
|
3
|
+
def initialize(out: STDOUT, html: false)
|
4
4
|
@out = out
|
5
|
+
@html = html
|
5
6
|
end
|
6
7
|
|
7
8
|
def call(root)
|
8
|
-
@
|
9
|
+
content = @html ? root.tree_html_full : root.tree_graph
|
10
|
+
@out.puts content
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
data/lib/tracia/frame.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require "tree_graph"
|
2
|
+
require "tree_html"
|
3
|
+
require "cgi"
|
2
4
|
|
3
5
|
class Tracia
|
4
6
|
class Frame
|
5
7
|
include TreeGraph
|
8
|
+
include TreeHtml
|
6
9
|
|
7
10
|
attr_reader :klass, :call_sym, :method_name, :children, :file, :lineno
|
8
11
|
|
@@ -22,11 +25,33 @@ class Tracia
|
|
22
25
|
end
|
23
26
|
|
24
27
|
def label_for_tree_graph
|
25
|
-
"#{
|
28
|
+
"#{class_and_method} #{source_location}"
|
26
29
|
end
|
27
30
|
|
28
31
|
def children_for_tree_graph
|
29
32
|
children
|
30
33
|
end
|
34
|
+
|
35
|
+
def label_for_tree_html
|
36
|
+
"<span class='hl'>#{CGI::escapeHTML(class_and_method)}</span> #{CGI::escapeHTML(source_location)}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def children_for_tree_html
|
40
|
+
children
|
41
|
+
end
|
42
|
+
|
43
|
+
def css_for_tree_html
|
44
|
+
'.hl{color: #a50000;}'
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def class_and_method
|
50
|
+
"#{klass}#{call_sym}#{method_name}"
|
51
|
+
end
|
52
|
+
|
53
|
+
def source_location
|
54
|
+
"#{GemPaths.shorten(@file)}:#{@lineno}"
|
55
|
+
end
|
31
56
|
end
|
32
57
|
end
|
data/lib/tracia/version.rb
CHANGED
data/lib/tracia.rb
CHANGED
@@ -32,13 +32,14 @@ class Tracia
|
|
32
32
|
trc.log if trc.level == 0
|
33
33
|
end
|
34
34
|
|
35
|
-
def add(info)
|
35
|
+
def add(info = nil, &block)
|
36
36
|
trc = Thread.current[:_tracia_]
|
37
37
|
return unless trc
|
38
38
|
|
39
39
|
backtrace = binding.partial_callers(-trc.depth)
|
40
40
|
backtrace.reverse!
|
41
41
|
backtrace.pop
|
42
|
+
info = block.call if block
|
42
43
|
trc.add(backtrace, info)
|
43
44
|
end
|
44
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ken
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.2.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: tree_html
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.1.8
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.8
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: binding_of_callers
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,7 +66,7 @@ dependencies:
|
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 0.2.3
|
55
|
-
description:
|
69
|
+
description:
|
56
70
|
email:
|
57
71
|
- block24block@gmail.com
|
58
72
|
executables: []
|
@@ -74,7 +88,7 @@ homepage: https://github.com/turnon/tracia
|
|
74
88
|
licenses:
|
75
89
|
- MIT
|
76
90
|
metadata: {}
|
77
|
-
post_install_message:
|
91
|
+
post_install_message:
|
78
92
|
rdoc_options: []
|
79
93
|
require_paths:
|
80
94
|
- lib
|
@@ -89,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
103
|
- !ruby/object:Gem::Version
|
90
104
|
version: '0'
|
91
105
|
requirements: []
|
92
|
-
rubygems_version: 3.
|
93
|
-
signing_key:
|
106
|
+
rubygems_version: 3.3.7
|
107
|
+
signing_key:
|
94
108
|
specification_version: 4
|
95
109
|
summary: bottum-up tracing
|
96
110
|
test_files: []
|