trace_tree 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b478148d5729cfc3ac49d26ce98f52915be0590
4
- data.tar.gz: 0eb6e66af1ef36d4122ecac647af6bf6b3ee425d
3
+ metadata.gz: f3387337a1f93ab9355cc6813b288acfd9272a62
4
+ data.tar.gz: 8f9398c42e22c9e156689665f08999e25fcf07e0
5
5
  SHA512:
6
- metadata.gz: 1a9339620c05bf4e7e1203582e89f5159bcb810b57b265ce65588fc8d500401067bc80efd65976f5deb584afc17dc5394d3b8b0e6a9102915f6d52e1fd9d9ba1
7
- data.tar.gz: b56dfc293f06a8cc0306363e25241e783b287516b0c435267f49d75024db241cfb9050105267f565efde8e083ebc1e8cb9ff0c7dcc0d940f87849d22515dd140
6
+ metadata.gz: a2d35a39fcfb8333ebc8c505ff6a518071c092e8e29fe451ec9935024b5bc12001d726c98231b1387157ebdbb3b5fdd6c8193d6a754f8eaae85eaa626a74cbbb
7
+ data.tar.gz: 3b2f25e2b6e3d49788ecba875a18bbf1c70dc4c5b92822d2b57c9c979f96facb494b435f618a22db251229d7fccc686a86f9e6630f21439ce354d3cc7ba0a2bf
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # TraceTree
2
2
 
3
- Print TracePoint(normal ruby call, block call, raise call, throw call) in tree graph.
3
+ Print TracePoint(normal ruby call, block call, raise call, throw call) in tree view, to console or html.
4
4
 
5
5
  ## Installation
6
6
 
@@ -30,7 +30,7 @@ end
30
30
 
31
31
  ### Parameters
32
32
 
33
- You may pass optional parameters while invoking `binding.trace_tree`:
33
+ You may pass optional parameters while invoking `binding.trace_tree`, for example:
34
34
 
35
35
  ```ruby
36
36
  binding.trace_tree(file, color: false, gem: false) do
@@ -41,7 +41,8 @@ end
41
41
  * `file == STDOUT` by default. You can give it a File object or anything responds to `puts`.
42
42
  * `:color => true` by default. It makes method names have different color than source_location in output. When you print the output to file, you may want to set it false to discard those color ANSI escape sequences.
43
43
  * `:gem => true` by default. Replace the gem paths in source_location with $GemPathN, can make the lines shorter. To see what are replaced, inspect `TraceTree::GemPaths`.
44
- * `:html => nil` by default. Set it true to generate a html in which a tree constructed with `<ul>`, `<li>`.
44
+ * `:html => nil` by default. Set it true to generate a html in which a tree constructed with `<ul>`, `<li>`. (No need to set `color`).
45
+ * `:tmp => nil` by default. Set it true or an array of string to specify a tmp file under the default tmp dir of your system. (No need to provide `file` argument)
45
46
 
46
47
  ### Example
47
48
 
@@ -52,7 +53,7 @@ require 'sinatra'
52
53
  require 'trace_tree'
53
54
 
54
55
  get '/' do
55
- 'wtf'
56
+ 'welcome'
56
57
  end
57
58
 
58
59
  class Sinatra::Base
@@ -0,0 +1,37 @@
1
+ require 'tmpdir'
2
+
3
+ class TraceTree
4
+ class TmpFile
5
+
6
+ DefaultName = 'trace_tree.html'
7
+
8
+ def initialize path
9
+ @tmp = Dir.tmpdir
10
+ path = DefaultName if path == true
11
+ @tmp = custom path
12
+ end
13
+
14
+ def puts *content
15
+ File.open @tmp, 'w' do |f|
16
+ f.puts *content
17
+ end
18
+ end
19
+
20
+ def path
21
+ @tmp
22
+ end
23
+
24
+ private
25
+
26
+ def custom path
27
+ path = Array(path).map(&:to_s)
28
+ path[-1] = time + path[-1]
29
+ path = [@tmp] + path
30
+ File.join *path
31
+ end
32
+
33
+ def time
34
+ Time.now.strftime '%Y%m%d_%H%M%S_%L_'
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,3 @@
1
1
  class TraceTree
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/trace_tree.rb CHANGED
@@ -3,6 +3,7 @@ require 'binding_of_callers/pry'
3
3
  require 'trace_tree/node'
4
4
  require 'trace_tree/short_gem_path'
5
5
  require 'trace_tree/color'
6
+ require 'trace_tree/tmp_file'
6
7
 
7
8
  class Binding
8
9
  def trace_tree *log, **opt, &to_do
@@ -18,7 +19,7 @@ class TraceTree
18
19
  end
19
20
 
20
21
  def generate *log, **opt, &to_do
21
- @log = log.empty? ? STDOUT : log[0]
22
+ @log = dump_location *log, **opt
22
23
  node_class = optional_node opt
23
24
  @build_command = opt[:html] ? :tree_html_full : :tree_graph
24
25
 
@@ -36,6 +37,11 @@ class TraceTree
36
37
 
37
38
  attr_reader :bi, :trace_points, :log, :build_command
38
39
 
40
+ def dump_location *log, **opt
41
+ return TmpFile.new opt[:tmp] if opt[:tmp]
42
+ log.empty? ? STDOUT : log[0]
43
+ end
44
+
39
45
  def optional_node opt
40
46
  Class.new TraceTree::Node do
41
47
  prepend TraceTree::ShortGemPath unless opt[:gem] == false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trace_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ken
@@ -115,6 +115,7 @@ files:
115
115
  - lib/trace_tree/gem_paths.rb
116
116
  - lib/trace_tree/node.rb
117
117
  - lib/trace_tree/short_gem_path.rb
118
+ - lib/trace_tree/tmp_file.rb
118
119
  - lib/trace_tree/tree_graphable.rb
119
120
  - lib/trace_tree/tree_htmlable.rb
120
121
  - lib/trace_tree/version.rb
@@ -139,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  version: '0'
140
141
  requirements: []
141
142
  rubyforge_project:
142
- rubygems_version: 2.5.2
143
+ rubygems_version: 2.6.8
143
144
  signing_key:
144
145
  specification_version: 4
145
146
  summary: Print TracePoint(normal ruby call, block call, raise call, throw call) in