perfetto 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/example/example.rb +7 -0
- data/lib/perfetto/interceptor.rb +6 -2
- data/lib/perfetto/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39a086e467a4a552a3cc5f297463efd645b6b9f84f2aa12a3cefac8220cf8bc5
|
4
|
+
data.tar.gz: fb857cf75960f71c666f5559e57a500f5c077e155d154de291f74390f362ac17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0c4891e4896d3b8e35039d7bc91911ecf839c2f76434bdde2385b1b38c97a6a94b5620a8c6c8ab571178cabd99b65ed0b34e3b24c826125105cb334d3f4b85a
|
7
|
+
data.tar.gz: b4a5c367b82bf931813c762b0f83e156c2a1985a03d5f03ec2cd72ae395eeb2f11f347a9d3345d89f0b3c5d9e8b143dffe295f2bbd08406823c5b5d29f3d7861
|
data/example/example.rb
CHANGED
data/lib/perfetto/interceptor.rb
CHANGED
@@ -62,27 +62,31 @@ module Perfetto
|
|
62
62
|
|
63
63
|
perfetto_traced_class_methods << method_name
|
64
64
|
|
65
|
-
original_method =
|
65
|
+
original_method = singleton_class.instance_method(method_name)
|
66
66
|
singleton_class.send(:alias_method, "_pfc_#{method_name}", method_name)
|
67
67
|
|
68
68
|
define_singleton_method(method_name) do |*args, **kwargs, &block|
|
69
69
|
category = name
|
70
70
|
task_name = "#{name}.#{method_name}"
|
71
71
|
Perfetto.trace_event_begin category, task_name
|
72
|
-
original_method.call(*args, **kwargs, &block)
|
72
|
+
original_method.bind(self).call(*args, **kwargs, &block)
|
73
73
|
ensure
|
74
74
|
Perfetto.trace_event_end name
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
78
|
def perfetto_trace_all
|
79
|
+
original_method_added = singleton_class.instance_method(:method_added)
|
79
80
|
define_singleton_method(:method_added) do |method_name|
|
81
|
+
original_method_added.bind(self).call(method_name)
|
80
82
|
return if perfetto_traced_instance_method?(method_name)
|
81
83
|
|
82
84
|
perfetto_trace_instance_method method_name
|
83
85
|
end
|
84
86
|
|
87
|
+
original_singleton_method_added = singleton_class.instance_method(:singleton_method_added)
|
85
88
|
define_singleton_method(:singleton_method_added) do |method_name|
|
89
|
+
original_singleton_method_added.bind(self).call(method_name)
|
86
90
|
return if perfetto_traced_class_method?(method_name)
|
87
91
|
|
88
92
|
perfetto_trace_class_method method_name
|
data/lib/perfetto/version.rb
CHANGED