trace_tree 0.3.4 → 0.3.6

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
  SHA256:
3
- metadata.gz: cc09963c20ff9fa2325a140cdba7f52a365a86e6345c91c0b73ed7e84954da88
4
- data.tar.gz: b4fc0967633be32701de2ae30fffe7c5d96d010a061f3885cda766ea893db261
3
+ metadata.gz: 2e25619d4cd4911fa6248e38af2f84091885e7cd7d9093904bc2867ebabf9ddc
4
+ data.tar.gz: 0d86d05a65e21f29445a4592551fa4c796e2b05d080c51524323792be673e82b
5
5
  SHA512:
6
- metadata.gz: 39a369877af219019c3bdf138733c265a69f20af06661c3c84fcc529b78e75e9e3007eac211755cbecd1c79eab33bfa2c32ec5d84cddc1f9c2d6d283c928b5eb
7
- data.tar.gz: 7ecbd1ecc5e2ecc2fafadefa02a41482bbed8e44790fc6f41b6aa1ba72e01b9e79f8e75141824ff4a99d52d6c7168fe8918898b9626f87031912c065389f6eb5
6
+ metadata.gz: 3ca5976e6b6008403116961966cf257a36fcb8ff23bddbd240dbacd1096c39da42f5cdc4bb247d3cdc7c6468147b2bf010668de943f856e73e55f7305e48e8b9
7
+ data.tar.gz: f145a4f9bc64aa48c7d75ddc1f61178dbe548b5e14815fd460de4d113cd72ec182f0a067122893284049412a0f4f8d7fb9a3d9fcbb333d2205fbbcbc97d7c81c
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -9,4 +8,5 @@
9
8
  /tmp/
10
9
  *.swp
11
10
  *.gem
11
+ .ruby-version
12
12
  .tool-versions
data/Gemfile.lock ADDED
@@ -0,0 +1,39 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ trace_tree (0.3.5)
5
+ binding_of_callers (~> 0.2.3)
6
+ tree_graph (~> 0.2.4)
7
+ tree_html (~> 0.1.10)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ binding_of_caller (1.0.0)
13
+ debug_inspector (>= 0.0.1)
14
+ binding_of_callers (0.2.3)
15
+ binding_of_caller (~> 1.0)
16
+ pry (>= 0.10.0)
17
+ coderay (1.1.3)
18
+ debug_inspector (1.1.0)
19
+ method_source (1.0.0)
20
+ minitest (5.17.0)
21
+ pry (0.14.2)
22
+ coderay (~> 1.1)
23
+ method_source (~> 1.0)
24
+ rake (13.0.6)
25
+ tree_graph (0.2.4)
26
+ tree_html (0.1.10)
27
+
28
+ PLATFORMS
29
+ ruby
30
+
31
+ DEPENDENCIES
32
+ bundler (~> 2.4.0)
33
+ minitest (~> 5.0)
34
+ pry
35
+ rake (>= 12.3.3)
36
+ trace_tree!
37
+
38
+ BUNDLED WITH
39
+ 2.4.1
@@ -3,7 +3,7 @@ class TraceTree
3
3
  class CcallKernelExtend < Point
4
4
  def parameters
5
5
  first_callee = callees[0]
6
- first_callee.respond_to?(:mixin) ? first_callee.mixin : first_callee.current.klass
6
+ first_callee.respond_to?(:mixin) ? first_callee.mixin : first_callee.class_name
7
7
  end
8
8
 
9
9
  def self.event_class_method
@@ -9,7 +9,7 @@ class TraceTree
9
9
  # first callee should be append_features(), check if it is native or custom
10
10
  def parameters
11
11
  first_callee = callees[0]
12
- Module == first_callee.class_name ? first_callee.return_value : first_callee.current.klass
12
+ Module == first_callee.class_name ? first_callee.return_value : first_callee.class_name
13
13
  end
14
14
 
15
15
  end
@@ -8,7 +8,7 @@ class TraceTree
8
8
 
9
9
  def parameters
10
10
  first_callee = callees[0]
11
- Module == first_callee.class_name ? first_callee.return_value : first_callee.current.klass
11
+ Module == first_callee.class_name ? first_callee.return_value : first_callee.class_name
12
12
  end
13
13
 
14
14
  end
@@ -7,7 +7,8 @@ class TraceTree
7
7
  include TreeGraphable
8
8
  include TreeHtmlable
9
9
 
10
- attr_reader :current, :thread, :frame_env
10
+ attr_reader :thread, :frame_env
11
+ attr_reader :call_symbol, :class_name
11
12
  attr_accessor :terminal, :config
12
13
 
13
14
  Interfaces = [:event, :defined_class, :method_id, :path, :lineno]
@@ -73,24 +74,31 @@ EOM
73
74
 
74
75
  @return_value = trace_point.return_value if x_return?
75
76
  @thread = Thread.current
77
+ return if thread?
76
78
 
77
- unless thread?
78
- there = trace_point.binding.of_caller(3)
79
- @current = BindingOfCallers::Revealed.new there
80
- @frame_env = current.frame_env.to_sym
79
+ if event == :c_call || event == :c_return
80
+ @call_symbol = '#'
81
+ @frame_env = method_id
82
+ @class_name = defined_class
83
+ return
81
84
  end
85
+
86
+ there = trace_point.binding.of_caller(3)
87
+ current = BindingOfCallers::Revealed.new there
88
+ @call_symbol = current.call_symbol
89
+ @frame_env = current.frame_env.to_sym
90
+ @class_name = current.klass
82
91
  rescue => e
83
- puts e
92
+ puts e.message
93
+ puts(Interfaces.each_with_object({}){|attr, h| h[attr] = send(attr)})
94
+ puts e.backtrace
95
+ raise e
84
96
  end
85
97
 
86
98
  def b_call?
87
99
  event == :b_call
88
100
  end
89
101
 
90
- def c_call?
91
- event == :c_call
92
- end
93
-
94
102
  def class?
95
103
  event == :class
96
104
  end
@@ -157,22 +165,12 @@ EOM
157
165
  @km ||= "#{class_name}#{call_symbol}#{method_name}"
158
166
  end
159
167
 
160
- def class_name
161
- c_call? ? defined_class : current.klass
162
- rescue
163
- puts event
164
- end
165
-
166
168
  def method_name
167
- return method_id if c_call?
169
+ return method_id if event == :c_call
168
170
  return frame_env if b_call? || class?
169
171
  (method_id == frame_env) ? method_id : "#{method_id} -> #{frame_env}"
170
172
  end
171
173
 
172
- def call_symbol
173
- c_call? ? '#' : current.call_symbol
174
- end
175
-
176
174
  def source_location
177
175
  "#{path}:#{lineno}"
178
176
  end
@@ -182,7 +180,6 @@ EOM
182
180
  end
183
181
 
184
182
  class Loader
185
-
186
183
  attr_reader :point_classes, :config
187
184
 
188
185
  def initialize *enhancement, config
@@ -1,3 +1,3 @@
1
1
  class TraceTree
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.6"
3
3
  end
data/lib/trace_tree.rb CHANGED
@@ -23,6 +23,7 @@ class Binding
23
23
  end
24
24
 
25
25
  class TraceTree
26
+ RB_VER = RUBY_VERSION.split('.')[0..1].join('.').to_f
26
27
 
27
28
  MainFile = __FILE__
28
29
 
@@ -215,9 +216,9 @@ class TraceTree
215
216
 
216
217
  # binding.pry
217
218
 
218
- stacks[trace_points.first.thread][0].
219
- callees[0].
220
- callees[0]
219
+ thread_stack = stacks[trace_points.first.thread]
220
+ frame = thread_stack[0].callees[0].callees[0]
221
+ RB_VER >= 2.7 ? frame : frame.callees[0]
221
222
  end
222
223
 
223
224
  def trace_points_array
data/trace_tree.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_development_dependency "bundler", "> 1.14"
23
+ spec.add_development_dependency "bundler", "~> 2.4.0"
24
24
  spec.add_development_dependency "rake", ">= 12.3.3"
25
25
  spec.add_development_dependency "minitest", "~> 5.0"
26
26
  spec.add_development_dependency "pry"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trace_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
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-11-19 00:00:00.000000000 Z
11
+ date: 2023-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.14'
19
+ version: 2.4.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">"
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.14'
26
+ version: 2.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -108,7 +108,7 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.1.10
111
- description:
111
+ description:
112
112
  email:
113
113
  - block24block@gmail.com
114
114
  executables: []
@@ -119,6 +119,7 @@ files:
119
119
  - ".travis.yml"
120
120
  - CODE_OF_CONDUCT.md
121
121
  - Gemfile
122
+ - Gemfile.lock
122
123
  - LICENSE.txt
123
124
  - README.md
124
125
  - Rakefile
@@ -162,7 +163,7 @@ homepage: https://github.com/turnon/trace_tree
162
163
  licenses:
163
164
  - MIT
164
165
  metadata: {}
165
- post_install_message:
166
+ post_install_message:
166
167
  rdoc_options: []
167
168
  require_paths:
168
169
  - lib
@@ -177,8 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
178
  - !ruby/object:Gem::Version
178
179
  version: '0'
179
180
  requirements: []
180
- rubygems_version: 3.1.6
181
- signing_key:
181
+ rubygems_version: 3.4.1
182
+ signing_key:
182
183
  specification_version: 4
183
184
  summary: Print TracePoint(:b_call, :b_return, :c_call, :c_return, :call, :return,
184
185
  :class, :end, :thread_begin, :thread_end) in tree view, to console or html