perfetto 0.1.8 → 0.1.9

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