waldit 0.0.12 → 0.0.14

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: a3cb369606cb9c2a97b853b3f0d219c015cc92fdf0fcbbdb8089de5292fcebd9
4
- data.tar.gz: d8a1c90d307333c38bae27e66164dbbd81f069b97bc6af390959802b073d6ca7
3
+ metadata.gz: 124c88d83186fe3fc61c3e9f2a2905eb8df5ea8468134ba64a005e0baf8be025
4
+ data.tar.gz: 19d6ba889487a8590d1fd9d2778d5ca041d6a538763cb99381946b8bef0bf349
5
5
  SHA512:
6
- metadata.gz: ef09522f4b9b1bb22794726625491a04784b402ff38f8da791349b36bed4fae5d5764e4c5493b6b571ee3b0b05350efb178b8793a3201ad0989851ae32e7e9d2
7
- data.tar.gz: 50b8c47faff3cd316f4dabd84221d9729484f41720d27d7768bae44539ec4058d840ca183e74eca9583119ecc8fe24c7429416460c392f6e76d43b1c24529cb8
6
+ metadata.gz: 6ac53c030b4ee7cfa5525b087635a0334b05d33047a8fb09050bd150551b31ce0f2f941ebacb337dc08188bbb6045b9548364b353c31e33022476501ee27eb5f
7
+ data.tar.gz: 37fc90bd861e4265b9b22e0dd5614e03764a7a4ef7679e2000d91524cd45ebd091359385d7a6455410c7952ba84c36c55a9ed82e696b2485a9f2697df4098db7
@@ -16,11 +16,7 @@ module Waldit
16
16
  end
17
17
 
18
18
  def add_context(added_context)
19
- if (context = self.context)
20
- context.merge!(added_context.as_json)
21
- else
22
- new_context(added_context)
23
- end
19
+ context&.merge!(added_context.as_json)
24
20
  end
25
21
 
26
22
  def new_context(context = {})
@@ -24,6 +24,7 @@ module Waldit
24
24
 
25
25
  add_index name, [:table_name, :primary_key, :transaction_id], unique: true
26
26
  add_index name, [:transaction_id, :lsn]
27
+ add_index name, [:action, :table_name, :commited_at]
27
28
  add_index name, :commited_at
28
29
  add_index name, :context, using: :gin, opclass: :jsonb_path_ops
29
30
  end
data/lib/waldit/record.rb CHANGED
@@ -2,21 +2,28 @@
2
2
 
3
3
  module Waldit
4
4
  module Record
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ default_scope { order(:committed_at) }
9
+ scope :from_table, -> table { where(table_name: table) }
10
+ scope :from_model, -> model { from_table(model.table_name) }
11
+ scope :for, -> record { from_model(record.class).where(primary_key: record.id) }
12
+ scope :with_context, -> ctx { where("context @> ?", ctx.to_json) }
13
+ end
14
+
5
15
  def new
6
16
  return self[:new] if self[:new]
7
-
8
17
  (self[:diff] || {}).transform_values { |_old, new| new }
9
18
  end
10
19
 
11
20
  def old
12
21
  return self[:old] if self[:old]
13
-
14
22
  (self[:diff] || {}).transform_values { |old, _new| old }
15
23
  end
16
24
 
17
25
  def diff
18
26
  return self[:diff] if self[:diff]
19
-
20
27
  (old.keys | new.keys).reduce({}) do |diff, key|
21
28
  old[key] != new[key] ? diff.merge(key => [old[key], new[key]]) : diff
22
29
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Waldit
4
- VERSION = "0.0.12"
4
+ VERSION = "0.0.14"
5
5
  end
@@ -119,10 +119,6 @@ module Waldit
119
119
  attributes.without(ignored_columns(table))
120
120
  end
121
121
 
122
- def max_transaction_size
123
- Waldit.max_transaction_size
124
- end
125
-
126
122
  def record
127
123
  Waldit.model
128
124
  end
data/lib/waldit.rb CHANGED
@@ -37,7 +37,6 @@ module Waldit
37
37
  end
38
38
 
39
39
  attr_accessor :ignored_columns
40
- attr_accessor :max_transaction_size
41
40
  attr_accessor :model
42
41
  attr_accessor :context_prefix
43
42
  end
@@ -55,8 +54,6 @@ module Waldit
55
54
 
56
55
  config.ignored_columns = -> table { %w[created_at updated_at] }
57
56
 
58
- config.max_transaction_size = 10_000
59
-
60
57
  config.model = Class.new(ActiveRecord::Base) do
61
58
  include Waldit::Record
62
59
  self.table_name = "waldit"
data/rbi/waldit.rbi CHANGED
@@ -2,7 +2,7 @@
2
2
  module Waldit
3
3
  extend T::Sig
4
4
  extend Waldit::Context
5
- VERSION = "0.0.12"
5
+ VERSION = "0.0.14"
6
6
 
7
7
  class << self
8
8
  sig { returns(String) }
@@ -17,9 +17,6 @@ module Waldit
17
17
  sig { returns(T.proc.params(table: String).returns(T::Array[String])) }
18
18
  attr_accessor :ignored_columns
19
19
 
20
- sig { returns(Integer) }
21
- attr_accessor :max_transaction_size
22
-
23
20
  sig { returns(T.class_of(ActiveRecord::Base)) }
24
21
  attr_accessor :model
25
22
  end
@@ -120,9 +117,6 @@ module Waldit
120
117
  sig { params(table: String).returns(T::Array[String]) }
121
118
  def ignored_columns(table); end
122
119
 
123
- sig { returns(Integer) }
124
- def max_transaction_size; end
125
-
126
120
  sig { returns(T.class_of(ActiveRecord::Base)) }
127
121
  def record; end
128
122
  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.12
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Navarro
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-08-23 00:00:00.000000000 Z
10
+ date: 2025-09-01 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: wal