journaled 5.3.2 → 6.0.0

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: 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.