trace_tree 0.3.4 → 0.3.6

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: 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