action_reporter 2.0.1 → 2.0.2

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: 60e2a8fa1070b5e5c83b3437da921488a850e8e7e753d35a0fee191c5f6b3134
4
- data.tar.gz: dd157cad1416a343ac6231ab0af51a90861acb840471651642991e395009a7f4
3
+ metadata.gz: aabef092878a25b94f003857a4490ae941458a23f10a645f90967c2410f6abfd
4
+ data.tar.gz: 26e8cda7492641af36a02b4320a415fc1b1afabb530f7dcb06f475c8ece39d43
5
5
  SHA512:
6
- metadata.gz: 2b649899b117fc77b1ced1f5fa2979e88091fb9b3896ecdc1fccc87c8be59277727fc63c5a3da97d85b4066d09dc14bff91ae85f7a9ce77797caf9151174cff9
7
- data.tar.gz: 4591b286098f6090e00484bbe1afe0145711d0d3a641a51ac6b80b335ccb29cd316537ac0ee7db3409352e1abbe6b942b8073d0aa96afb953f58d7112512ad8d
6
+ metadata.gz: 490769c5999f15251385b654ec9a0e8e65b11b8f50e4f3c21d974b72bc3d2d8036852d9dfab8f108931b3809ddf9e9ef9dd7265bd88adc710febe91ef659c969
7
+ data.tar.gz: fbef1b1338b491ba88f792cb5dc1de0a218b4b7d914430ae3f607bfaccd7bd3cb0eb1d2b2694a80c2417b75748a91043d34efc2a034b3944fefd640f37bfe63c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.0.2 (2026-03-13)
4
+
5
+ - Add `ActiveVersionReporter` integration for the `active_version` gem
6
+ - Support context propagation via `ActiveVersion.context`
7
+ - Support current user, request UUID, and remote address through `ActiveVersion::RequestStore`
8
+
3
9
  ## 2.0.1 (2025-11-14)
4
10
 
5
11
  - Fix false positives in gem version validation for git-based gems
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # action_reporter
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/action_reporter.svg)](https://badge.fury.io/rb/action_reporter) [![Test Status](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml/badge.svg)](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/amkisko/action_reporter.rb/graph/badge.svg?token=JCV2A7NWTE)](https://codecov.io/gh/amkisko/action_reporter.rb)
3
+ [![Gem Version](https://badge.fury.io/rb/action_reporter.svg)](https://badge.fury.io/rb/action_reporter) [![Test Status](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml/badge.svg)](https://github.com/amkisko/action_reporter.rb/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/amkisko/action_reporter.rb/graph/badge.svg?token=JCV2A7NWTE)](https://codecov.io/gh/amkisko/action_reporter.rb) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=amkisko_action_reporter.rb&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=amkisko_action_reporter.rb)
4
4
 
5
5
  Ruby wrapper for multiple reporting services.
6
6
 
7
- Supported services: Rails logger, gem audited, gem PaperTrail, Sentry, Honeybadger, scoutapm.
7
+ Supported services: Rails logger, gem audited, gem PaperTrail, gem ActiveVersion, Sentry, Honeybadger, scoutapm.
8
8
 
9
9
  Sponsored by [Kisko Labs](https://www.kiskolabs.com).
10
10
 
@@ -33,6 +33,7 @@ ActionReporter.enabled_reporters = [
33
33
  (ActionReporter::RailsReporter.new if Rails.env.development?),
34
34
  # ActionReporter::AuditedReporter.new,
35
35
  # ActionReporter::PaperTrailReporter.new,
36
+ # ActionReporter::ActiveVersionReporter.new,
36
37
  # ActionReporter::SentryReporter.new,
37
38
  # ActionReporter::HoneybadgerReporter.new,
38
39
  # ActionReporter::ScoutApmReporter.new
@@ -38,6 +38,7 @@ Gem::Specification.new do |gem|
38
38
  gem.add_development_dependency "sentry-ruby", "~> 5"
39
39
  gem.add_development_dependency "scout_apm", "~> 5"
40
40
  gem.add_development_dependency "paper_trail", "~> 15"
41
+ gem.add_development_dependency "active_version", "~> 1"
41
42
 
42
43
  gem.add_development_dependency "bundler", "~> 2"
43
44
  gem.add_development_dependency "rspec", "~> 3"
@@ -46,7 +47,14 @@ Gem::Specification.new do |gem|
46
47
  gem.add_development_dependency "pry", "~> 0.15"
47
48
  gem.add_development_dependency "simplecov", "~> 0.22"
48
49
  gem.add_development_dependency "simplecov-cobertura", "~> 3"
49
- gem.add_development_dependency "standard", "~> 1"
50
+ gem.add_development_dependency "standard", "~> 1.52"
51
+ gem.add_development_dependency "standard-custom", "~> 1.0"
52
+ gem.add_development_dependency "standard-performance", "~> 1.8"
53
+ gem.add_development_dependency "standard-rails", "~> 1.5"
54
+ gem.add_development_dependency "standard-rspec", "~> 0.3"
55
+ gem.add_development_dependency "rubocop-rails", "~> 2.33"
56
+ gem.add_development_dependency "rubocop-rspec", "~> 3.8"
57
+ gem.add_development_dependency "rubocop-thread_safety", "~> 0.7"
50
58
  gem.add_development_dependency "appraisal", "~> 2"
51
59
  gem.add_development_dependency "rbs", "~> 3"
52
60
  end
@@ -0,0 +1,50 @@
1
+ module ActionReporter
2
+ class ActiveVersionReporter < Base
3
+ class_accessor "ActiveVersion", gem_spec: "active_version (~> 1)"
4
+
5
+ def notify(*)
6
+ end
7
+
8
+ def context(args)
9
+ ActiveVersion.context = ActiveVersion.context.merge(args) if ActiveVersion.respond_to?(:context=)
10
+ end
11
+
12
+ def reset_context
13
+ request_store = request_store_class
14
+ request_store.request_uuid = nil if request_store&.respond_to?(:request_uuid=)
15
+ request_store.remote_address = nil if request_store&.respond_to?(:remote_address=)
16
+ request_store.audited_user = nil if request_store&.respond_to?(:audited_user=)
17
+ ActiveVersion.context = {} if ActiveVersion.respond_to?(:context=)
18
+ end
19
+
20
+ def current_user
21
+ request_store_class&.audited_user
22
+ end
23
+
24
+ def current_user=(user)
25
+ request_store_class.audited_user = user if request_store_class&.respond_to?(:audited_user=)
26
+ end
27
+
28
+ def current_request_uuid
29
+ request_store_class&.request_uuid
30
+ end
31
+
32
+ def current_request_uuid=(request_uuid)
33
+ request_store_class.request_uuid = request_uuid if request_store_class&.respond_to?(:request_uuid=)
34
+ end
35
+
36
+ def current_remote_addr
37
+ request_store_class&.remote_address
38
+ end
39
+
40
+ def current_remote_addr=(remote_addr)
41
+ request_store_class.remote_address = remote_addr if request_store_class&.respond_to?(:remote_address=)
42
+ end
43
+
44
+ private
45
+
46
+ def request_store_class
47
+ ActiveVersion::RequestStore if ActiveVersion.const_defined?(:RequestStore)
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module ActionReporter
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
@@ -12,6 +12,7 @@ require "action_reporter/sentry_reporter"
12
12
  require "action_reporter/scout_apm_reporter"
13
13
  require "action_reporter/audited_reporter"
14
14
  require "action_reporter/paper_trail_reporter"
15
+ require "action_reporter/active_version_reporter"
15
16
 
16
17
  module ActionReporter
17
18
  module_function
@@ -24,7 +25,8 @@ module ActionReporter
24
25
  ActionReporter::SentryReporter,
25
26
  ActionReporter::ScoutApmReporter,
26
27
  ActionReporter::AuditedReporter,
27
- ActionReporter::PaperTrailReporter
28
+ ActionReporter::PaperTrailReporter,
29
+ ActionReporter::ActiveVersionReporter
28
30
  ].freeze
29
31
 
30
32
  # Get available reporters (auto-discovered + registered)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
@@ -93,6 +93,20 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '15'
96
+ - !ruby/object:Gem::Dependency
97
+ name: active_version
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1'
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: bundler
98
112
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +211,112 @@ dependencies:
197
211
  requirements:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
- version: '1'
214
+ version: '1.52'
201
215
  type: :development
202
216
  prerelease: false
203
217
  version_requirements: !ruby/object:Gem::Requirement
204
218
  requirements:
205
219
  - - "~>"
206
220
  - !ruby/object:Gem::Version
207
- version: '1'
221
+ version: '1.52'
222
+ - !ruby/object:Gem::Dependency
223
+ name: standard-custom
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.0'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '1.0'
236
+ - !ruby/object:Gem::Dependency
237
+ name: standard-performance
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '1.8'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '1.8'
250
+ - !ruby/object:Gem::Dependency
251
+ name: standard-rails
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '1.5'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '1.5'
264
+ - !ruby/object:Gem::Dependency
265
+ name: standard-rspec
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '0.3'
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '0.3'
278
+ - !ruby/object:Gem::Dependency
279
+ name: rubocop-rails
280
+ requirement: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '2.33'
285
+ type: :development
286
+ prerelease: false
287
+ version_requirements: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '2.33'
292
+ - !ruby/object:Gem::Dependency
293
+ name: rubocop-rspec
294
+ requirement: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '3.8'
299
+ type: :development
300
+ prerelease: false
301
+ version_requirements: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - "~>"
304
+ - !ruby/object:Gem::Version
305
+ version: '3.8'
306
+ - !ruby/object:Gem::Dependency
307
+ name: rubocop-thread_safety
308
+ requirement: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '0.7'
313
+ type: :development
314
+ prerelease: false
315
+ version_requirements: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: '0.7'
208
320
  - !ruby/object:Gem::Dependency
209
321
  name: appraisal
210
322
  requirement: !ruby/object:Gem::Requirement
@@ -245,6 +357,7 @@ files:
245
357
  - README.md
246
358
  - action_reporter.gemspec
247
359
  - lib/action_reporter.rb
360
+ - lib/action_reporter/active_version_reporter.rb
248
361
  - lib/action_reporter/audited_reporter.rb
249
362
  - lib/action_reporter/base.rb
250
363
  - lib/action_reporter/current.rb