acts_as_trackable 0.3.5 → 0.4.1

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: 2623637f234be4b6be06bec2a38947c891bd89cc3aba99eaced1736a6c040826
4
- data.tar.gz: 8a041906500d6d1cdb731d1a9bf3a159c8ce9f987f473c5e28c91f3b8862308e
3
+ metadata.gz: 69a6aa75568eb589a8c65044e6ea53fb3acf026554bd81515767b1a41ff8817f
4
+ data.tar.gz: e2dc8735530dbb20a63c21d5fd714f3cb8fe8b7895908804294db9ac8675f197
5
5
  SHA512:
6
- metadata.gz: 728468a85b94691918746d04944ed394dc36300fe8d088570c62194c55576fcc3c763bcd4f162a9a2077a8552641e8b082e86d599c8ea319aa99818747c7ab45
7
- data.tar.gz: ca898ee6035174aa73d020a39ce32151e1eadc04c6546eacb2b571fd58ab6b175c39063ab40d3fe3c22370ada606848e52cfda8b0d1f6b1e003e73d790dac45a
6
+ metadata.gz: 63a6c3ed2c204153d4d14dbf60cffd5183dfb18d3aae4afd78deb7a42d9c127d5d9e2f10a7113897ea6ad89290a5f80078132f86daba6eb2c2619e38dc8004d2
7
+ data.tar.gz: 2c2914f5a6e1146dbe602a5ef25ab611d1415790aeb4bb3b9f24b7d9c9d9e6e44b4ced964402856ce1e558ac2ccbe2e3cae0685bc4bcc203bbb3ca3aa84c9eb3
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ acts_as_trackable-*.gem
data/Gemfile CHANGED
@@ -3,8 +3,6 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
  gem 'activerecord', '~> 7.2', '>= 7.2.2'
5
5
  gem 'activesupport', '~> 7.2', '>= 7.2.2'
6
- gem 'nokogiri', '~> 1.16', '>= 1.16.7'
7
- gem 'rake', '~> 13.2', '>= 13.2.1'
8
6
 
9
7
  group :test do
10
8
  gem 'sqlite3', '~> 2.2'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- acts_as_trackable (0.3.5)
4
+ acts_as_trackable (0.4.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -66,9 +66,9 @@ GEM
66
66
  crass (~> 1.0.2)
67
67
  nokogiri (>= 1.12.0)
68
68
  minitest (5.25.5)
69
- nokogiri (1.18.8-arm64-darwin)
69
+ nokogiri (1.18.9-arm64-darwin)
70
70
  racc (~> 1.4)
71
- nokogiri (1.18.8-x86_64-darwin)
71
+ nokogiri (1.18.9-x86_64-darwin)
72
72
  racc (~> 1.4)
73
73
  pp (0.6.2)
74
74
  prettyprint
@@ -109,7 +109,7 @@ GEM
109
109
  sqlite3 (2.6.0-arm64-darwin)
110
110
  sqlite3 (2.6.0-x86_64-darwin)
111
111
  stringio (3.1.5)
112
- thor (1.3.2)
112
+ thor (1.4.0)
113
113
  timeout (0.4.3)
114
114
  tzinfo (2.0.6)
115
115
  concurrent-ruby (~> 1.0)
@@ -125,8 +125,6 @@ DEPENDENCIES
125
125
  activesupport (~> 7.2, >= 7.2.2)
126
126
  acts_as_trackable!
127
127
  generator_spec
128
- nokogiri (~> 1.16, >= 1.16.7)
129
- rake (~> 13.2, >= 13.2.1)
130
128
  sqlite3 (~> 2.2)
131
129
 
132
130
  BUNDLED WITH
data/changelog.md CHANGED
@@ -1,4 +1,11 @@
1
1
  # acts_as_trackable Changelog
2
+ ## Version: 0.4.0
3
+ ### Patch
4
+ - Upgraded dependencies to patch CVE-2025-6021, CVE-2025-6170, CVE-2025-49794, CVE-2025-49795, CVE-2025-49796, and CVE-2025-54314.
5
+ ## Version: 0.4.0
6
+ ### Minor
7
+ - Performance Improvement: The `object_activity` method now memoizes results.
8
+ - Migration Required: Replace `Preloader` calls with `includes(:object_activity)` for bulk loading.
2
9
  ## Version: 0.3.5
3
10
  ### Patch
4
11
  - Upgraded dependencies to patch CVE-2022-44571
@@ -9,9 +9,27 @@ module Trackable
9
9
  has_one :object_activity, as: :object, dependent: :destroy
10
10
 
11
11
  define_method :object_activity do
12
- ObjectActivity.find_by('object_id = ? AND (object_type = ? OR object_type = ?)', id, self.class.name, self.class.base_class.name)
12
+ # Return cached value if already set
13
+ return @object_activity if defined?(@object_activity)
14
+
15
+ # If the association is preloaded use it
16
+ if association(:object_activity).loaded?
17
+ loaded = association(:object_activity).target
18
+
19
+ if loaded&.object_id == id &&
20
+ [self.class.name, self.class.base_class.name].include?(loaded.object_type)
21
+ @object_activity = loaded
22
+ end
23
+ end
24
+
25
+ # Fallback to DB query if not preloaded or not matched
26
+ @object_activity ||= ObjectActivity.find_by(
27
+ object_id: id,
28
+ object_type: [self.class.name, self.class.base_class.name]
29
+ )
13
30
  end
14
31
 
32
+
15
33
  delegate :created_by, :updated_by, to: :object_activity, allow_nil: true
16
34
 
17
35
  after_commit :log_object_activity, on: %i[create update], if: -> { modifier.present? }
@@ -1,3 +1,3 @@
1
1
  module ActsAsTrackable
2
- VERSION = '0.3.5'.freeze
2
+ VERSION = '0.4.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_trackable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmad Keewan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-06-13 00:00:00.000000000 Z
12
+ date: 2025-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: generator_spec