journaled 5.3.2 → 6.1.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: 462ff8ded176fdce16a0bafb2418f688f3a5ccf51f420e236f0a309b092701de
4
+ data.tar.gz: 7e98b4717bd113aad953752aa6145984b6a474724985bbe53f0bee9c5ffd8596
5
5
  SHA512:
6
- metadata.gz: e45435869582fcb824ba3866437b62253f26e69166f1a07e42c4bd82ad8f50fd5fb299efe7eec19789c5e5e0572b073fb894abe5d9e110351ee7c0098c994851
7
- data.tar.gz: 0afdb4445ced380e4115fc581d76f3258414671fb43372e4a131ef498a65b99d9a71a557740a90276661a4e3787c12b3ec88dc31f6286612a5aa12565fc7be85
6
+ metadata.gz: 26d5cc25cc1b0077e570894258dfb904c78814c8f8b79f1a35b26a6471b82835e477af8bec8bd42dbf5a1b04af07509352c5f7862d1d59a0d5392e33dac88471
7
+ data.tar.gz: 5ea7fcfbd043dbaf3cc762abaeb80bc7de35e9e4e44f260fbde912118cffff766928502cd79f38a6b2ae42a263465fa7973fd268a6c1747038fe4bfef9328bbf
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.1.0"
5
5
  end
metadata CHANGED
@@ -1,17 +1,16 @@
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.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Lipson
8
8
  - Corey Alexander
9
9
  - Cyrus Eslami
10
10
  - John Mileham
11
- autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2024-04-29 00:00:00.000000000 Z
13
+ date: 1980-01-02 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: activejob
@@ -89,14 +88,20 @@ dependencies:
89
88
  requirements:
90
89
  - - ">="
91
90
  - !ruby/object:Gem::Version
92
- version: '5.2'
91
+ version: '7.2'
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '8.1'
93
95
  type: :runtime
94
96
  prerelease: false
95
97
  version_requirements: !ruby/object:Gem::Requirement
96
98
  requirements:
97
99
  - - ">="
98
100
  - !ruby/object:Gem::Version
99
- version: '5.2'
101
+ version: '7.2'
102
+ - - "<"
103
+ - !ruby/object:Gem::Version
104
+ version: '8.1'
100
105
  - !ruby/object:Gem::Dependency
101
106
  name: appraisal
102
107
  requirement: !ruby/object:Gem::Requirement
@@ -181,20 +186,6 @@ dependencies:
181
186
  - - ">="
182
187
  - !ruby/object:Gem::Version
183
188
  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
189
  - !ruby/object:Gem::Dependency
199
190
  name: timecop
200
191
  requirement: !ruby/object:Gem::Requirement
@@ -312,15 +303,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
303
  requirements:
313
304
  - - ">="
314
305
  - !ruby/object:Gem::Version
315
- version: '2.6'
306
+ version: '3.2'
316
307
  required_rubygems_version: !ruby/object:Gem::Requirement
317
308
  requirements:
318
309
  - - ">="
319
310
  - !ruby/object:Gem::Version
320
311
  version: '0'
321
312
  requirements: []
322
- rubygems_version: 3.5.9
323
- signing_key:
313
+ rubygems_version: 3.6.8
324
314
  specification_version: 4
325
315
  summary: Journaling for Betterment apps.
326
316
  test_files: []