perfetto 0.1.8 → 0.1.10

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: 58db60a34dfcfd09ccdac3a43a1113bac4c2f07184513049ef0ff19f7aa84648
4
+ data.tar.gz: b2826c4433783abe3b61ff710168a035faed5ace35bddc62ef7109820d3daa80
5
5
  SHA512:
6
- metadata.gz: 92e2da1eceb1263f9d9590fed6130623deee27ab0caa9e4faaf701e3ad340456a6c3730abba3b84da93df94f732a9136ddc8fa9eb7558344701fc132a7f6b69e
7
- data.tar.gz: f2f6ba2c22ca06fdaea0e09c6ad5e555d7b580a6630a77ff0132c0de1ee188fd33c6ab76b35fc5819a8ea1f5aed5863323207b232c0dfabbb633b6b524136247
6
+ metadata.gz: d641673e8bcfa06b0cd895e59040c80567550344fffc6e8bf8821ae087c36f4f6e5886e21f7dcf001f8ee8d75f001b2bbba39fc5363a4e3e282c5f0a25b5d697
7
+ data.tar.gz: 6600f4d0dc9ed167d5aa555faec64de9e9d564385c4c7e83b977d63d3c29a2d207511f1174753e068e8474b645ab51ee1ddc0a42bb0d4e57864f9027bf5ad278
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
@@ -27,9 +27,11 @@ module Perfetto
27
27
  # rubocop:enable Metrics/MethodLength
28
28
 
29
29
  def call(env)
30
- @app.call(env) unless Perfetto::Configure.enable_tracing
31
-
32
- perfetto_traced_call(env)
30
+ if Perfetto::Configure.enable_tracing
31
+ perfetto_traced_call(env)
32
+ else
33
+ @app.call(env)
34
+ end
33
35
  end
34
36
  end
35
37
  end
@@ -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.10"
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.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kowalski Dark