opentrace 0.17.3 → 0.17.4

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: f2ea4cd5b52e24bbbed81f9d9c9f522f8001bf379407cd01c126b659d0a4efe5
4
- data.tar.gz: 52cb261f68c4e1280b1c164fb732e9a02123abd70a0274e70ed8894af76b9c9b
3
+ metadata.gz: 44491d3cd15946101c8b248ba6133342a6ee0ec39a697ff53f4f1e6d33e3d118
4
+ data.tar.gz: 63a9f698ac107d0e4bd1f15aa278e630efdd625d43cb72715b1481ef66b7eb3d
5
5
  SHA512:
6
- metadata.gz: 1b5cbf4a21b4e09f9246cfa89e8d45f21f6b7b6ad4d232a2b909a8b76fd9ce6829cee208b8bfec596198954de50574a52d249dc63761c8be3e394640f3885b9d
7
- data.tar.gz: d7714397187d069769743c30d39a3ccf865624c40ba86d6f3c9a0fad5bb56f10417660045eb4c07123dd0260359b104f39fd2449beb7371f32512836cd585257
6
+ metadata.gz: aa70ee7b053f63a7c26e7b11a9cabeceaef99827a017492cd84c5d5f73df04bc40e4bba8d3a37f67c69656b31d1caf1052a0d224398c22b8b483e28dacce6504
7
+ data.tar.gz: 461193306891f4cbca64c5899be6be640b77e570cda412149ab083ad94aa27466de3ab16922b406006f81ab1a0f7eaea377456bf2196bdba74d625af7f05ea85
@@ -5,6 +5,9 @@ module OpenTrace
5
5
  # Captures before/after diffs on create, update, and destroy using saved_changes.
6
6
  module AuditTracker
7
7
  def self.included(base)
8
+ return if base.instance_variable_get(:@opentrace_audit_tracker_installed)
9
+
10
+ base.instance_variable_set(:@opentrace_audit_tracker_installed, true)
8
11
  base.after_create { |record| OpenTrace::AuditTracker.track(record, :create) }
9
12
  base.after_update { |record| OpenTrace::AuditTracker.track(record, :update) }
10
13
  base.after_destroy { |record| OpenTrace::AuditTracker.track(record, :destroy) }
@@ -60,9 +60,28 @@ module OpenTrace
60
60
  ""
61
61
  end
62
62
 
63
- def tagged(*tags)
64
- yield self
65
- end
63
+ # DO NOT implement `tagged` here.
64
+ #
65
+ # Rails' ActiveSupport::BroadcastLogger routes `tagged` through
66
+ # `method_missing` (it's not in LOGGER_METHODS), which calls
67
+ # `logger.send(:tagged, *tags, &block)` on EVERY sink that responds to
68
+ # `:tagged` — without the block-cache guard that `dispatch` uses for
69
+ # info/debug/warn/etc. So if LogForwarder implements `tagged(*tags) { yield self }`,
70
+ # the block passed to the BroadcastLogger's tagged call runs ONCE PER
71
+ # SINK. For ActiveJob — which wraps both `around_enqueue` and
72
+ # `around_perform` in `logger.tagged(...) { ... }` — that means:
73
+ # * enqueue flow runs twice → adapter.enqueue fires twice
74
+ # * each dispatched perform runs twice
75
+ # * net effect: 4 performs (and 4 add_assistant_message rows) per
76
+ # single perform_later call on a BroadcastLogger with 2 sinks.
77
+ #
78
+ # By simply NOT responding to `:tagged`, BroadcastLogger's
79
+ # method_missing does `@broadcasts.select { |l| l.respond_to?(name) }`
80
+ # and filters us out — only the real TaggedLogging sink receives the
81
+ # call, its block yields exactly once, and dispatch is single.
82
+ # `push_tags` / `pop_tags` / `clear_tags!` DO stay defined as no-ops
83
+ # because they never take blocks, so calling them on every sink is
84
+ # harmless.
66
85
 
67
86
  def flush; end
68
87
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenTrace
4
- VERSION = "0.17.3"
4
+ VERSION = "0.17.4"
5
5
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.3
4
+ version: 0.17.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTrace
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-04-19 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: logger
@@ -86,6 +87,7 @@ homepage: https://github.com/adham90/opentrace-ruby
86
87
  licenses:
87
88
  - MIT
88
89
  metadata: {}
90
+ post_install_message:
89
91
  rdoc_options: []
90
92
  require_paths:
91
93
  - lib
@@ -100,7 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
102
  - !ruby/object:Gem::Version
101
103
  version: '0'
102
104
  requirements: []
103
- rubygems_version: 4.0.7
105
+ rubygems_version: 3.5.11
106
+ signing_key:
104
107
  specification_version: 4
105
108
  summary: Thin, safe Ruby client for OpenTrace log ingestion
106
109
  test_files: []