File tree 6 files changed +16
-8
lines changed
6 files changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ def version
17
17
end
18
18
19
19
def loaded?
20
- !defined? ( ::Cucumber ) . nil? && !defined? ( ::Cucumber ::Runtime ) . nil?
20
+ !defined? ( ::Cucumber ) . nil? && !defined? ( ::Cucumber ::Runtime ) . nil? && ! defined? ( :: Cucumber :: Configuration ) . nil?
21
21
end
22
22
23
23
def compatible?
Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ def self.auto_instrument
46
46
47
47
script_compiled_tracepoint = TracePoint . new ( :script_compiled ) do
48
48
auto_instrumented_integrations . each do |integration |
49
+ next if integration . patched?
49
50
next unless integration . loaded?
50
51
51
52
Datadog . logger . debug ( "#{ integration . class } is loaded" )
Original file line number Diff line number Diff line change @@ -93,9 +93,7 @@ def patcher
93
93
94
94
# @!visibility private
95
95
def patch
96
- # @type var patcher_klass: untyped
97
- patcher_klass = patcher
98
- if !patchable? || patcher_klass . nil?
96
+ if !patchable? || patcher . nil?
99
97
return {
100
98
ok : false ,
101
99
available : available? ,
@@ -105,10 +103,14 @@ def patch
105
103
}
106
104
end
107
105
108
- patcher_klass . patch
106
+ patcher . patch
109
107
{ ok : true }
110
108
end
111
109
110
+ def patched?
111
+ patcher &.patched?
112
+ end
113
+
112
114
# Can the patch for this integration be applied automatically?
113
115
# @return [Boolean] can the tracer activate this instrumentation without explicit user input?
114
116
def late_instrument?
Original file line number Diff line number Diff line change @@ -17,7 +17,8 @@ def version
17
17
end
18
18
19
19
def loaded?
20
- !defined? ( ::Minitest ) . nil?
20
+ !defined? ( ::Minitest ) . nil? && !defined? ( ::Minitest ::Runnable ) . nil? && !defined? ( ::Minitest ::Test ) . nil? &&
21
+ !defined? ( ::Minitest ::CompositeReporter ) . nil?
21
22
end
22
23
23
24
def compatible?
Original file line number Diff line number Diff line change @@ -22,7 +22,9 @@ def version
22
22
23
23
def loaded?
24
24
!defined? ( ::RSpec ) . nil? && !defined? ( ::RSpec ::Core ) . nil? &&
25
- !defined? ( ::RSpec ::Core ::Example ) . nil?
25
+ !defined? ( ::RSpec ::Core ::Example ) . nil? &&
26
+ !defined? ( ::RSpec ::Core ::Runner ) . nil? &&
27
+ !defined? ( ::RSpec ::Core ::ExampleGroup ) . nil?
26
28
end
27
29
28
30
def compatible?
Original file line number Diff line number Diff line change @@ -20,7 +20,9 @@ module Datadog
20
20
21
21
def enabled : () -> bool
22
22
23
- def patcher : () -> Datadog::Tracing::Contrib::Patcher?
23
+ def patcher : () -> untyped
24
+
25
+ def patched? : () -> bool ?
24
26
25
27
def patch : () -> Hash[Symbol, bool ]
26
28
You can’t perform that action at this time.
0 commit comments