journaled 5.3.2 → 6.0.0

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: e7ae2973901a192db7c5a9a0fcb7f73d2ef45ce5cd61ce42d96dacd6a332e86e
4
- data.tar.gz: c8e8f7fd3b525fda4e248e30f62bd138b6b5030d5018db37e26cb488f1d5e9a5
3
+ metadata.gz: cdfecf071b843818742d6fedc649d57e793e9abbd18906b09245124327ac4705
4
+ data.tar.gz: d92147f78529cbdbeeed3216c4ab14d0cfbcad9d716f3bff4a3f8b6af99c99e7
5
5
  SHA512:
6
- metadata.gz: e45435869582fcb824ba3866437b62253f26e69166f1a07e42c4bd82ad8f50fd5fb299efe7eec19789c5e5e0572b073fb894abe5d9e110351ee7c0098c994851
7
- data.tar.gz: 0afdb4445ced380e4115fc581d76f3258414671fb43372e4a131ef498a65b99d9a71a557740a90276661a4e3787c12b3ec88dc31f6286612a5aa12565fc7be85
6
+ metadata.gz: eed184d251e7068985f9283bd8e4d855d547eef9b8abe090127eb46306984354583d7051dab90c78d8e351575467ea5a1c9213ffa210438cd016ea766caeb427
7
+ data.tar.gz: a25aee3b51b832a793a1a1168c9d58660f208787e0ee21af190a95e6b0c6d7de76dd285a2bccd8abf05c48ba3dd726ed9bf71be0b96eeca602ac103feb0d3d0e
data/README.md CHANGED
@@ -37,6 +37,21 @@ to use one of the following queue adapters:
37
37
  `ActiveJob::Base.queue_adapter` is not in the above list, it will raise an exception
38
38
  and prevent your application from performing unsafe journaling.**
39
39
 
40
+ The following configurations are __not supported__ by Journaled:
41
+
42
+ ```ruby
43
+ config.active_job.enqueue_after_transaction_commit = :always
44
+ config.active_job.enqueue_after_transaction_commit = true
45
+ ```
46
+
47
+ If you're using Rails 7.2 with the `:test` adapter, please use the following configuration:
48
+
49
+ ```ruby
50
+ config.active_job.enqueue_after_transaction_commit = :never
51
+ ```
52
+
53
+ This configuration isn't necessary for applications running Rails 8+.
54
+
40
55
  2. To integrate Journaled into your application, simply include the gem in your
41
56
  app's Gemfile.
42
57
 
@@ -91,7 +106,7 @@ app's Gemfile.
91
106
 
92
107
  Journaling provides a number of different configuation options that can be set in Ruby using an initializer. Those values are:
93
108
 
94
- #### `Journaled.default_stream_name `
109
+ #### `Journaled.default_stream_name`
95
110
 
96
111
  This is described in the "Installation" section above, and is used to specify which stream name to use.
97
112
 
data/Rakefile CHANGED
@@ -8,6 +8,9 @@ end
8
8
 
9
9
  Bundler::GemHelper.install_tasks
10
10
 
11
+ APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
12
+ load 'rails/tasks/engine.rake'
13
+
11
14
  require 'rubocop/rake_task'
12
15
  RuboCop::RakeTask.new
13
16
 
@@ -14,8 +14,7 @@ module Journaled
14
14
  raise KinesisTemporaryFailure
15
15
  end
16
16
 
17
- def perform(*events, **legacy_kwargs)
18
- events << legacy_kwargs if legacy_kwargs.present?
17
+ def perform(*events)
19
18
  @kinesis_records = events.map { |e| KinesisRecord.new(**e.delete_if { |_k, v| v.nil? }) }
20
19
 
21
20
  journal! if Journaled.enabled?
@@ -27,34 +27,32 @@ module Journaled::Changes
27
27
  end
28
28
  end
29
29
 
30
- if Rails::VERSION::MAJOR > 5 || (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 2)
31
- def delete(force: false)
32
- if force || self.class.journaled_attribute_names.empty?
33
- super()
34
- else
35
- raise(<<~ERROR)
36
- #delete aborted by Journaled::Changes.
30
+ def delete(force: false)
31
+ if force || self.class.journaled_attribute_names.empty?
32
+ super()
33
+ else
34
+ raise(<<~ERROR)
35
+ #delete aborted by Journaled::Changes.
37
36
 
38
- Call #destroy instead to ensure journaling or invoke #delete(force: true)
39
- to override and skip journaling.
40
- ERROR
41
- end
37
+ Call #destroy instead to ensure journaling or invoke #delete(force: true)
38
+ to override and skip journaling.
39
+ ERROR
42
40
  end
41
+ end
43
42
 
44
- def update_columns(attributes, opts = { force: false })
45
- unless opts[:force] || self.class.journaled_attribute_names.empty?
46
- conflicting_journaled_attribute_names = self.class.journaled_attribute_names & attributes.keys.map(&:to_sym)
47
- raise(<<~ERROR) if conflicting_journaled_attribute_names.present?
48
- #update_columns aborted by Journaled::Changes due to journaled attributes:
43
+ def update_columns(attributes, opts = { force: false })
44
+ unless opts[:force] || self.class.journaled_attribute_names.empty?
45
+ conflicting_journaled_attribute_names = self.class.journaled_attribute_names & attributes.keys.map(&:to_sym)
46
+ raise(<<~ERROR) if conflicting_journaled_attribute_names.present?
47
+ #update_columns aborted by Journaled::Changes due to journaled attributes:
49
48
 
50
- #{conflicting_journaled_attribute_names.join(', ')}
49
+ #{conflicting_journaled_attribute_names.join(', ')}
51
50
 
52
- Call #update instead to ensure journaling or invoke #update_columns
53
- with additional arg `{ force: true }` to override and skip journaling.
54
- ERROR
55
- end
56
- super(attributes)
51
+ Call #update instead to ensure journaling or invoke #update_columns
52
+ with additional arg `{ force: true }` to override and skip journaling.
53
+ ERROR
57
54
  end
55
+ super(attributes)
58
56
  end
59
57
 
60
58
  class_methods do
@@ -70,18 +68,16 @@ module Journaled::Changes
70
68
  journaled_enqueue_opts.merge!(enqueue_with)
71
69
  end
72
70
 
73
- if Rails::VERSION::MAJOR > 5 || (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 2)
74
- def delete(id_or_array, opts = { force: false })
75
- if opts[:force] || journaled_attribute_names.empty?
76
- where(primary_key => id_or_array).delete_all(force: true)
77
- else
78
- raise(<<~ERROR)
79
- .delete aborted by Journaled::Changes.
71
+ def delete(id_or_array, opts = { force: false })
72
+ if opts[:force] || journaled_attribute_names.empty?
73
+ where(primary_key => id_or_array).delete_all(force: true)
74
+ else
75
+ raise(<<~ERROR)
76
+ .delete aborted by Journaled::Changes.
80
77
 
81
- Call .destroy(id_or_array) instead to ensure journaling or invoke
82
- .delete(id_or_array, force: true) to override and skip journaling.
83
- ERROR
84
- end
78
+ Call .destroy(id_or_array) instead to ensure journaling or invoke
79
+ .delete(id_or_array, force: true) to override and skip journaling.
80
+ ERROR
85
81
  end
86
82
  end
87
83
  end
@@ -75,8 +75,7 @@ module Journaled
75
75
  end
76
76
 
77
77
  def encrypted_column?(key)
78
- key.to_s.end_with?('_crypt', '_hmac') ||
79
- (Rails::VERSION::MAJOR >= 7 && record.encrypted_attribute?(key))
78
+ key.to_s.end_with?('_crypt', '_hmac') || record.encrypted_attribute?(key)
80
79
  end
81
80
 
82
81
  def filter_params
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if Rails::VERSION::MAJOR > 5 || (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 2)
4
- require 'journaled/relation_change_protection'
5
- ActiveRecord::Relation.class_eval { prepend Journaled::RelationChangeProtection }
6
- end
3
+ require 'journaled/relation_change_protection'
4
+ ActiveRecord::Relation.class_eval { prepend Journaled::RelationChangeProtection }
@@ -39,7 +39,7 @@ module Journaled
39
39
  class << self
40
40
  def exclude_classes!
41
41
  excluded_classes.each do |name|
42
- if Rails::VERSION::MAJOR >= 6 && Rails.autoloaders.zeitwerk_enabled?
42
+ if Rails.autoloaders.zeitwerk_enabled?
43
43
  zeitwerk_exclude!(name)
44
44
  else
45
45
  classic_exclude!(name)
@@ -2,12 +2,12 @@
2
2
 
3
3
  module Journaled::RelationChangeProtection
4
4
  def update_all(updates, opts = { force: false }) # rubocop:disable Metrics/AbcSize
5
- unless opts[:force] || !@klass.respond_to?(:journaled_attribute_names) || @klass.journaled_attribute_names.empty?
5
+ unless opts[:force] || !model.respond_to?(:journaled_attribute_names) || model.journaled_attribute_names.empty?
6
6
  conflicting_journaled_attribute_names = case updates
7
7
  when Hash
8
- @klass.journaled_attribute_names & updates.keys.map(&:to_sym)
8
+ model.journaled_attribute_names & updates.keys.map(&:to_sym)
9
9
  when String
10
- @klass.journaled_attribute_names.select do |a|
10
+ model.journaled_attribute_names.select do |a|
11
11
  updates.match?(/\b(?<!')#{a}(?!')\b/)
12
12
  end
13
13
  else
@@ -26,7 +26,7 @@ module Journaled::RelationChangeProtection
26
26
  end
27
27
 
28
28
  def delete_all(force: false)
29
- if force || !@klass.respond_to?(:journaled_attribute_names) || @klass.journaled_attribute_names.empty?
29
+ if force || !model.respond_to?(:journaled_attribute_names) || model.journaled_attribute_names.empty?
30
30
  super()
31
31
  else
32
32
  raise(<<~ERROR)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Journaled
4
- VERSION = "5.3.2"
4
+ VERSION = "6.0.0"
5
5
  end
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.3.2
4
+ version: 6.0.0
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: 2024-04-29 00:00:00.000000000 Z
14
+ date: 2025-01-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activejob
@@ -89,14 +89,20 @@ dependencies:
89
89
  requirements:
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: '5.2'
92
+ version: '7.0'
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: '8.1'
93
96
  type: :runtime
94
97
  prerelease: false
95
98
  version_requirements: !ruby/object:Gem::Requirement
96
99
  requirements:
97
100
  - - ">="
98
101
  - !ruby/object:Gem::Version
99
- version: '5.2'
102
+ version: '7.0'
103
+ - - "<"
104
+ - !ruby/object:Gem::Version
105
+ version: '8.1'
100
106
  - !ruby/object:Gem::Dependency
101
107
  name: appraisal
102
108
  requirement: !ruby/object:Gem::Requirement
@@ -181,20 +187,6 @@ dependencies:
181
187
  - - ">="
182
188
  - !ruby/object:Gem::Version
183
189
  version: '0'
184
- - !ruby/object:Gem::Dependency
185
- name: sqlite3
186
- requirement: !ruby/object:Gem::Requirement
187
- requirements:
188
- - - "~>"
189
- - !ruby/object:Gem::Version
190
- version: '1.4'
191
- type: :development
192
- prerelease: false
193
- version_requirements: !ruby/object:Gem::Requirement
194
- requirements:
195
- - - "~>"
196
- - !ruby/object:Gem::Version
197
- version: '1.4'
198
190
  - !ruby/object:Gem::Dependency
199
191
  name: timecop
200
192
  requirement: !ruby/object:Gem::Requirement
@@ -312,14 +304,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
304
  requirements:
313
305
  - - ">="
314
306
  - !ruby/object:Gem::Version
315
- version: '2.6'
307
+ version: '3.2'
316
308
  required_rubygems_version: !ruby/object:Gem::Requirement
317
309
  requirements:
318
310
  - - ">="
319
311
  - !ruby/object:Gem::Version
320
312
  version: '0'
321
313
  requirements: []
322
- rubygems_version: 3.5.9
314
+ rubygems_version: 3.5.23
323
315
  signing_key:
324
316
  specification_version: 4
325
317
  summary: Journaling for Betterment apps.