journaled 5.2.0 → 5.3.1

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: 7fc4b493edc90534706cd22dbb1fae76cdacc693d95e44734f9ce92db2d0716c
4
- data.tar.gz: 46edc5873055e2a4e7ceae9f8dc63c558b331a821826803cd36aa971b42258f5
3
+ metadata.gz: 519a94ed5c16626bdd0d6494b510eb1768a86e1f04119857fd8add4b7d6ea5f5
4
+ data.tar.gz: 3f675a229c45fc08b71181be5d6934b44eea9e849a7bfeebabec553721833587
5
5
  SHA512:
6
- metadata.gz: 6c9871cbc8b6439f9d29e29bbc24068d2a25667eb42003bed42ca016505b463586b8b3bc0b4c33d2f130a76d5dbc70bf7815d41b992def7a8dc4f71e697113e8
7
- data.tar.gz: 6770fd7d6a3c92bce0122def374fa1a7e31f74c8a67d8ebeb9c2ccf5e1e02c616aae42274b5fd145e6cd59d6aa7e5b483dca134d8479822652e65c0bd7c1df84
6
+ metadata.gz: 0a1d76ef86b435424e0902dc499cc9f9984450da09f0783129d831fc62b4d31bf30651cc0d8cb074592887b12c3eba335f3d5580d22e6e398e1729e4ffa6e1ca
7
+ data.tar.gz: 93ddf98e9813da2bed0939aeb522806e5707d4f8563a46d595398e3edc8485b802c776cc14b95f3ec44e3aeb0eea25cc460d2b1b6cd3f9af84ac3f4a55e166cc
data/README.md CHANGED
@@ -682,6 +682,14 @@ This feature can be disabled conditionally:
682
682
  Journaled.transactional_batching_enabled = false
683
683
  ```
684
684
 
685
+ And can then be enabled via the following block:
686
+
687
+ ```ruby
688
+ Journaled.with_transactional_batching do
689
+ # your code
690
+ end
691
+ ```
692
+
685
693
  Backwards compatibility has been included for background jobs enqueued by
686
694
  version 4.0 and above, but **has been dropped for jobs emitted by versions prior
687
695
  to 4.0**. (Again, be sure to upgrade only one major version at a time.)
@@ -52,11 +52,8 @@ module Journaled
52
52
  private
53
53
 
54
54
  def zeitwerk_exclude!(name)
55
- if Object.const_defined?(name)
56
- name.constantize.skip_audit_log
57
- else
58
- Rails.autoloaders.main.on_load(name) { |klass, _path| klass.skip_audit_log }
59
- end
55
+ name.constantize.skip_audit_log if Object.const_defined?(name)
56
+ Rails.autoloaders.main.on_load(name) { |klass, _path| klass.skip_audit_log }
60
57
  end
61
58
 
62
59
  def classic_exclude!(name)
@@ -83,7 +80,7 @@ module Journaled
83
80
 
84
81
  def dup
85
82
  super.tap do |config|
86
- config.ignored_columns = ignored_columns.dup
83
+ config.ignored_columns = ignored_columns.dup # rubocop:disable Rails/IgnoredColumnsAssignment
87
84
  config.enqueue_opts = enqueue_opts.dup
88
85
  end
89
86
  end
@@ -2,11 +2,11 @@ module Journaled
2
2
  module Connection
3
3
  class << self
4
4
  def available?
5
- Journaled.transactional_batching_enabled && transaction_open?
5
+ Journaled.transactional_batching_enabled? && transaction_open?
6
6
  end
7
7
 
8
8
  def stage!(event)
9
- raise TransactionSafetyError, <<~MSG unless transaction_open?
9
+ raise TransactionSafetyError, <<~MSG unless available?
10
10
  Transaction not available! By default, journaled event batching requires an open database transaction.
11
11
  MSG
12
12
 
@@ -1,3 +1,3 @@
1
1
  module Journaled
2
- VERSION = "5.2.0".freeze
2
+ VERSION = "5.3.1".freeze
3
3
  end
data/lib/journaled.rb CHANGED
@@ -16,7 +16,19 @@ module Journaled
16
16
  mattr_accessor(:http_open_timeout) { 2 }
17
17
  mattr_accessor(:http_read_timeout) { 60 }
18
18
  mattr_accessor(:job_base_class_name) { 'ActiveJob::Base' }
19
- mattr_accessor(:transactional_batching_enabled) { true }
19
+ mattr_writer(:transactional_batching_enabled) { true }
20
+
21
+ def self.transactional_batching_enabled?
22
+ Thread.current[:journaled_transactional_batching_enabled] || @@transactional_batching_enabled
23
+ end
24
+
25
+ def self.with_transactional_batching
26
+ value_was = Thread.current[:journaled_transactional_batching_enabled]
27
+ Thread.current[:journaled_transactional_batching_enabled] = true
28
+ yield
29
+ ensure
30
+ Thread.current[:journaled_transactional_batching_enabled] = value_was
31
+ end
20
32
 
21
33
  def self.development_or_test?
22
34
  %w(development test).include?(Rails.env)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: journaled
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
4
+ version: 5.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Lipson
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-10-13 00:00:00.000000000 Z
14
+ date: 2023-05-19 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activejob