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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd11b2221dbdd8fe58cc1ff87b096fa4df1cb6731cafddfef9d17ada8a2a812c
4
- data.tar.gz: 4f37c6bd988831d7f672fa91607e4de4216a7661e4317e514322e80b80f56c95
3
+ metadata.gz: 978a7b204dede4d5be2b8a78975266d59a16c0e93363b3e831d05b4d2cab7584
4
+ data.tar.gz: eb99548c2f027ca0242c513bb95369b3737fa12adf827c61eeb742341e16bee8
5
5
  SHA512:
6
- metadata.gz: 9c41f9213fd72b995f4a1ff06e2881354835f173c7af6e95d70a7fcd2a67d1fa382819d9823edc8fe20429e9e7b97fe46878be06858521fe7f167b49d7d06270
7
- data.tar.gz: 272914638a974b686fc85e359215b2117be14c4807a5bd58c036325c301822dd457f2fb9e99484308021e426e49b81883036903abd5febafcab1d491bd2506d8
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.txt', 'w+')
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
- @out.puts root.tree_graph
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
- "#{klass}#{call_sym}#{method_name} #{GemPaths.shorten(@file)}:#{@lineno}"
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Tracia
4
- VERSION = "0.2.4"
4
+ VERSION = "0.2.7"
5
5
  end
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
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-21 00:00:00.000000000 Z
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.1.6
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: []