waldit 0.0.3 → 0.0.4

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: fb7ae260f6d1af42f4e6169084c7ba79de48cea93f44ff47be032f5764df23a6
4
- data.tar.gz: 7cf9d0c022ffbb457bcac4380ed635cd65d2df1db24faae5fbd169b50b5aa07c
3
+ metadata.gz: 81634f3ce5d00503e50882a14495a960dfc8fb1072b53c92e3cd2a08441666c9
4
+ data.tar.gz: b235c7ee87fda30c747db3a678a3b9f6c7b5f5b95861f998b037a63418bee29b
5
5
  SHA512:
6
- metadata.gz: b54045c2265401d420a276efddb20525b7b72e39d27c25e10da6a7a2c357805ea1956aed900d3c265f5cc88096dc402cd53ea52d0989eff8e3dd965d47c2ec75
7
- data.tar.gz: 8d86ba10a3c94e7ca87bb90a39957663b305f19b6b5a8bfb7062fdae89879b57c82d230989bfd49b5480738f63ca81bf9db7b1093406b730578498bfc001a862
6
+ metadata.gz: ad16ce87f467600879c9358540143cb1ad4eeeb1fe278472647aad21e28db4420a5238b13e6d70c02a65014d72251d54acfdfb0fe6c448191644871a28d4ef45
7
+ data.tar.gz: e932e94f85304d7b8f756a5fce3a3ba0e2c07ca302766e0f8ff3563b4acac9e14b7943ae0bcc3030ee68567571315e635fa172c02c945e70d68e45c46fba4d41
data/Rakefile CHANGED
@@ -3,10 +3,3 @@
3
3
  require "bundler/gem_tasks"
4
4
 
5
5
  task(:test) { sh "bundle exec rspec" }
6
-
7
- task default: %i[build]
8
-
9
- task("sig/waldit.rbi") { sh "bundle exec parlour" }
10
- task("rbi/waldit.rbs" => "sig/waldit.rbi") { sh "rbs prototype rbi rbi/waldit.rbi > sig/waldit.rbs" }
11
-
12
- Rake::Task["build"].enhance(["sig/waldit.rbi", "rbi/waldit.rbs"])
@@ -1,17 +1,7 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module Waldit
5
4
  module Context
6
- extend T::Sig
7
-
8
- Context = T.type_alias { T::Hash[T.any(String, Symbol), T.untyped] }
9
-
10
- sig do
11
- type_parameters(:U)
12
- .params(context: Context, block: T.proc.returns(T.type_parameter(:U)))
13
- .returns(T.type_parameter(:U))
14
- end
15
5
  def with_context(context, &block)
16
6
  current_context = self.context || {}
17
7
  Thread.current[:waldit_context] ||= []
@@ -21,12 +11,10 @@ module Waldit
21
11
  Thread.current[:waldit_context].pop
22
12
  end
23
13
 
24
- sig { returns(T.nilable(Context)) }
25
14
  def context
26
15
  Thread.current[:waldit_context]&.last
27
16
  end
28
17
 
29
- sig { params(added_context: Context).void }
30
18
  def add_context(added_context)
31
19
  if (context = self.context)
32
20
  context.merge!(added_context.as_json)
@@ -35,7 +23,6 @@ module Waldit
35
23
  end
36
24
  end
37
25
 
38
- sig { params(context: Context).void }
39
26
  def new_context(context = {})
40
27
  Thread.current[:waldit_context] ||= []
41
28
  Thread.current[:waldit_context].push(context.as_json)
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: ignore
3
2
 
4
3
  require "active_record/connection_adapters/postgresql_adapter"
5
4
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: false
3
2
 
4
3
  require "rails/railtie"
5
4
 
data/lib/waldit/record.rb CHANGED
@@ -1,19 +1,7 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module Waldit
5
4
  module Record
6
- extend T::Sig
7
- extend T::Helpers
8
- abstract!
9
-
10
- sig { abstract.returns(T::Hash[T.any(String, Symbol), T.untyped]) }
11
- def new; end
12
-
13
- sig { abstract.returns(T::Hash[T.any(String, Symbol), T.untyped]) }
14
- def old; end
15
-
16
- sig { returns(T::Hash[T.any(String, Symbol), [T.untyped, T.untyped]]) }
17
5
  def diff
18
6
  (old.keys | new.keys).reduce({}.with_indifferent_access) do |diff, key|
19
7
  old[key] != new[key] ? diff.merge(key => [old[key], new[key]]) : diff
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: false
3
2
 
4
3
  module Waldit
5
4
  module Sidekiq
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  module Waldit
5
- VERSION = "0.0.3"
4
+ VERSION = "0.0.4"
6
5
  end
@@ -1,13 +1,11 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  require "wal"
5
4
 
6
5
  module Waldit
7
6
  class Watcher < Wal::StreamingWatcher
8
- extend T::Sig
7
+ include Wal
9
8
 
10
- sig { params(event: T.any(InsertEvent, UpdateEvent, DeleteEvent)).void }
11
9
  def audit_event(event)
12
10
  return unless event.primary_key
13
11
 
@@ -68,7 +66,6 @@ module Waldit
68
66
  end
69
67
  end
70
68
 
71
- sig { override.params(events: T::Enumerator[Event]).void }
72
69
  def on_transaction_events(events)
73
70
  counter = 0
74
71
  catch :finish do
@@ -96,27 +93,22 @@ module Waldit
96
93
  end
97
94
  end
98
95
 
99
- sig { params(table: String).returns(T::Boolean) }
100
96
  def should_watch_table?(table)
101
97
  Waldit.watched_tables.call(table)
102
98
  end
103
99
 
104
- sig { params(prefix: String).returns(T::Boolean) }
105
100
  def valid_context_prefix?(prefix)
106
101
  prefix == Waldit.context_prefix
107
102
  end
108
103
 
109
- sig { params(table: String).returns(T::Array[String]) }
110
104
  def ignored_columns(table)
111
105
  Waldit.ignored_columns.call(table)
112
106
  end
113
107
 
114
- sig { returns(Integer) }
115
108
  def max_transaction_size
116
109
  Waldit.max_transaction_size
117
110
  end
118
111
 
119
- sig { returns(T.class_of(ActiveRecord::Base)) }
120
112
  def record
121
113
  Waldit.model
122
114
  end
data/lib/waldit.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # typed: true
3
2
 
4
3
  require_relative "waldit/version"
5
4
  require_relative "waldit/context"
@@ -8,19 +7,11 @@ require_relative "waldit/record"
8
7
  require_relative "waldit/watcher"
9
8
 
10
9
  module Waldit
11
- extend T::Sig
12
10
  extend Waldit::Context
13
11
 
14
12
  class << self
15
- extend T::Sig
16
-
17
- sig { returns(String) }
18
- attr_accessor :context_prefix
19
-
20
- sig { returns(T.proc.params(table: String).returns(T::Boolean)) }
21
13
  attr_reader :watched_tables
22
14
 
23
- sig { params(tables: T.any(T::Array[String], T.proc.params(table: String).returns(T::Boolean))).void }
24
15
  def watched_tables=(tables)
25
16
  case tables
26
17
  when Array
@@ -30,17 +21,12 @@ module Waldit
30
21
  end
31
22
  end
32
23
 
33
- sig { returns(T.proc.params(table: String).returns(T::Array[String])) }
34
24
  attr_accessor :ignored_columns
35
-
36
- sig { returns(Integer) }
37
25
  attr_accessor :max_transaction_size
38
-
39
- sig { returns(T.class_of(ActiveRecord::Base)) }
40
26
  attr_accessor :model
27
+ attr_accessor :context_prefix
41
28
  end
42
29
 
43
- sig { params(block: T.proc.params(config: T.class_of(Waldit)).void).void }
44
30
  def self.configure(&block)
45
31
  yield self
46
32
  end
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.3"
5
+ VERSION = "0.0.4"
6
6
 
7
7
  class << self
8
8
  sig { returns(String) }
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.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Navarro
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-07-02 00:00:00.000000000 Z
10
+ date: 2025-08-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: wal
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.0.2
18
+ version: 0.0.3
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.0.2
25
+ version: 0.0.3
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activerecord
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -37,62 +37,6 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '7'
40
- - !ruby/object:Gem::Dependency
41
- name: rbs
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :development
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: sorbet
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
- - !ruby/object:Gem::Dependency
69
- name: tapioca
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- type: :development
76
- prerelease: false
77
- version_requirements: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: parlour
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
40
  - !ruby/object:Gem::Dependency
97
41
  name: sidekiq
98
42
  requirement: !ruby/object:Gem::Requirement