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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd838b9d196922765c51a65336d1304c6d9ac9aca456fce60d42b8c72b8b62d4
4
- data.tar.gz: 9c1972ee1b588bd0dacaaca9cd81c39d90fd892ff0c57b0286157cf8944c6ae8
3
+ metadata.gz: 39a086e467a4a552a3cc5f297463efd645b6b9f84f2aa12a3cefac8220cf8bc5
4
+ data.tar.gz: fb857cf75960f71c666f5559e57a500f5c077e155d154de291f74390f362ac17
5
5
  SHA512:
6
- metadata.gz: 92e2da1eceb1263f9d9590fed6130623deee27ab0caa9e4faaf701e3ad340456a6c3730abba3b84da93df94f732a9136ddc8fa9eb7558344701fc132a7f6b69e
7
- data.tar.gz: f2f6ba2c22ca06fdaea0e09c6ad5e555d7b580a6630a77ff0132c0de1ee188fd33c6ab76b35fc5819a8ea1f5aed5863323207b232c0dfabbb633b6b524136247
6
+ metadata.gz: d0c4891e4896d3b8e35039d7bc91911ecf839c2f76434bdde2385b1b38c97a6a94b5620a8c6c8ab571178cabd99b65ed0b34e3b24c826125105cb334d3f4b85a
7
+ data.tar.gz: b4a5c367b82bf931813c762b0f83e156c2a1985a03d5f03ec2cd72ae395eeb2f11f347a9d3345d89f0b3c5d9e8b143dffe295f2bbd08406823c5b5d29f3d7861
data/example/example.rb CHANGED
@@ -59,9 +59,16 @@ class Foo
59
59
  end
60
60
 
61
61
  class Bar < Foo
62
+ def self.buf2
63
+ puts "buf2"
64
+ sleep 0.1
65
+ end
66
+
62
67
  def say
63
68
  puts "hello"
64
69
  sleep 0.1
70
+ Bar.buf2
71
+ Foo.buf
65
72
  end
66
73
  end
67
74
 
@@ -62,27 +62,31 @@ module Perfetto
62
62
 
63
63
  perfetto_traced_class_methods << method_name
64
64
 
65
- original_method = method(method_name)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Perfetto
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.9"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: perfetto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kowalski Dark