waldit 0.0.6 → 0.0.7

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: e8e8ecb8b8fc2c3c4b855fb06b204d858b7cfbf24f12dc016b4c3f5ca10849a2
4
- data.tar.gz: b72218c4df4b396e497f1aa9d96fd159305fabb7faf0d481392044536da5141a
3
+ metadata.gz: f5c8f24220664dba4cbdda331668fff84cfdf94fa0bc12eb0632613cc83e65c0
4
+ data.tar.gz: ad904cc5fa30b2a7de5a5b9844242be0a7fb568695106035956996f84e889731
5
5
  SHA512:
6
- metadata.gz: 5471e11fa41cb7c3576dba2e0c1095ee3b2a7b7fd4eda88cd46e10523cf54ecdcda5a2d3470fdb9e97f3aebc066ce84bba7aa63be8507a0f0e37927b6604520f
7
- data.tar.gz: 11dd782e95115cb77e8df0bed87f4dd8422454f5ef6ce84c35b9fe39af931c9855b37b07685cb3833ace964757c7d81b3d64a55a23330b52177ada7b60dd7ea8
6
+ metadata.gz: 9fe4ef8b61035be5b3be5a531e3db9f4bf2b12bf419e00655694a378f2020a627a2f98d497ab9c4db79ca48129f23209a6685f0ae2a513c8c97110b81142cb6b
7
+ data.tar.gz: 495601d9aed573a7e2bde43f8a1a85d33209aca29485868c540a9b1fe729092fcb2a7a491c7553ef6544a89909fe278ae6e275d48a705a73ed2ed35fc0109389
@@ -17,8 +17,13 @@ module Waldit
17
17
  include ::Sidekiq::ServerMiddleware
18
18
 
19
19
  def call(job_instance, job, queue, &block)
20
- context = deserialize_context(job) || {}
21
- Waldit.with_context(context.merge(background_job: job_instance.class.to_s), &block)
20
+ background_job = case job["class"]
21
+ in "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
22
+ job["args"][0]["job_class"]
23
+ in klass
24
+ klass
25
+ end
26
+ Waldit.with_context((deserialize_context(job) || {}).merge(background_job:), &block)
22
27
  end
23
28
 
24
29
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Waldit
4
- VERSION = "0.0.6"
4
+ VERSION = "0.0.7"
5
5
  end
@@ -44,14 +44,19 @@ module Waldit
44
44
  when CommitTransactionEvent
45
45
  record.where(transaction_id: event.transaction_id).update_all(commited_at: event.timestamp)
46
46
 
47
- log_new = tables.filter { |table| Waldit.store_changes.call(table).include? :new }
48
- log_old = tables.filter { |table| Waldit.store_changes.call(table).include? :old }
49
- log_diff = tables.filter { |table| Waldit.store_changes.call(table).include? :diff }
50
- record.where(transaction_id: event.transaction_id).update_all(<<~SQL)
51
- new = CASE WHEN table_name = ANY (ARRAY[#{log_new.map { |table| "'#{table}'" }.join(",")}]::varchar[]) THEN new ELSE null END,
52
- old = CASE WHEN table_name = ANY (ARRAY[#{log_old.map { |table| "'#{table}'" }.join(",")}]::varchar[]) THEN old ELSE null END,
47
+ changes = [:old, :new, :diff]
48
+ .map { |diff| [diff, tables.filter { |table| Waldit.store_changes.call(table).include? diff }] }
49
+ .to_h
50
+
51
+ log_new = (changes[:new] || []).map { |table| "'#{table}'" }.join(",")
52
+ log_old = (changes[:old] || []).map { |table| "'#{table}'" }.join(",")
53
+ log_diff = (changes[:diff] || []).map { |table| "'#{table}'" }.join(",")
54
+
55
+ record.where(transaction_id: event.transaction_id, action: "update").update_all(<<~SQL)
56
+ new = CASE WHEN table_name = ANY (ARRAY[#{log_new}]::varchar[]) THEN new ELSE null END,
57
+ old = CASE WHEN table_name = ANY (ARRAY[#{log_old}]::varchar[]) THEN old ELSE null END,
53
58
  diff =
54
- CASE WHEN table_name = ANY (ARRAY[#{log_diff.map { |table| "'#{table}'" }.join(",")}]::varchar[]) THEN (
59
+ CASE WHEN table_name = ANY (ARRAY[#{log_diff}]::varchar[]) THEN (
55
60
  SELECT
56
61
  jsonb_object_agg(
57
62
  coalesce(old_kv.key, new_kv.key),
data/lib/waldit.rb CHANGED
@@ -27,10 +27,10 @@ module Waldit
27
27
  case changes
28
28
  when Symbol
29
29
  changes = [changes].to_set
30
- @store_changes = -> { changes }
30
+ @store_changes = -> table { changes }
31
31
  when Array
32
32
  changes = changes.map(&:to_sym).to_set
33
- @store_changes = -> { changes }
33
+ @store_changes = -> table { changes }
34
34
  else
35
35
  @store_changes = changes
36
36
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waldit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Navarro
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-08-12 00:00:00.000000000 Z
10
+ date: 2025-08-21 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: wal