redis_queued_locks 1.16.2 → 1.17.0

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/project-overview.md +205 -0
  3. data/.claude/rules/acquirer.md +61 -0
  4. data/.claude/rules/arguments.md +59 -0
  5. data/.claude/rules/logic.md +57 -0
  6. data/.claude/rules/swarm.md +119 -0
  7. data/.claude/rules/tests.md +42 -0
  8. data/.claude/rules/type-checking.md +42 -0
  9. data/.claude/rules/visitors.md +64 -0
  10. data/.rubocop.rbs.yml +31 -0
  11. data/.rubocop.yml +3 -3
  12. data/.ruby-version +1 -1
  13. data/CHANGELOG.md +18 -0
  14. data/CLAUDE.md +31 -0
  15. data/README.md +19 -3
  16. data/Rakefile +31 -2
  17. data/github_ci/.keep +0 -0
  18. data/lib/redis_queued_locks/acquirer/acquire_lock/delay_execution.rb +2 -2
  19. data/lib/redis_queued_locks/acquirer/acquire_lock/try_to_lock.rb +1 -4
  20. data/lib/redis_queued_locks/acquirer/acquire_lock/yield_expire.rb +1 -1
  21. data/lib/redis_queued_locks/acquirer/acquire_lock.rb +0 -4
  22. data/lib/redis_queued_locks/acquirer/lock_series_poc/instr_visitor.rb +0 -2
  23. data/lib/redis_queued_locks/acquirer/lock_series_poc/log_visitor.rb +0 -1
  24. data/lib/redis_queued_locks/acquirer/lock_series_poc.rb +0 -2
  25. data/lib/redis_queued_locks/client.rb +145 -144
  26. data/lib/redis_queued_locks/config/dsl.rb +4 -10
  27. data/lib/redis_queued_locks/swarm/flush_zombies.rb +8 -6
  28. data/lib/redis_queued_locks/swarm/supervisor.rb +1 -1
  29. data/lib/redis_queued_locks/swarm/swarm_element/isolated.rb +166 -44
  30. data/lib/redis_queued_locks/swarm/swarm_element/threaded.rb +45 -47
  31. data/lib/redis_queued_locks/version.rb +2 -2
  32. data/redis_queued_locks.gemspec +1 -1
  33. data/sig/redis_queued_locks/swarm/flush_zombies.rbs +1 -1
  34. data/sig/redis_queued_locks/swarm/swarm_element/isolated.rbs +13 -5
  35. data/sig/redis_queued_locks/swarm/swarm_element/threaded.rbs +6 -6
  36. metadata +14 -5
  37. data/github_ci/ruby3.3.gemfile +0 -17
  38. data/github_ci/ruby3.3.gemfile.lock +0 -216
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis_queued_locks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.2
4
+ version: 1.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Ibragimov
@@ -35,17 +35,26 @@ executables: []
35
35
  extensions: []
36
36
  extra_rdoc_files: []
37
37
  files:
38
+ - ".claude/project-overview.md"
39
+ - ".claude/rules/acquirer.md"
40
+ - ".claude/rules/arguments.md"
41
+ - ".claude/rules/logic.md"
42
+ - ".claude/rules/swarm.md"
43
+ - ".claude/rules/tests.md"
44
+ - ".claude/rules/type-checking.md"
45
+ - ".claude/rules/visitors.md"
38
46
  - ".rspec"
47
+ - ".rubocop.rbs.yml"
39
48
  - ".rubocop.yml"
40
49
  - ".ruby-version"
41
50
  - CHANGELOG.md
51
+ - CLAUDE.md
42
52
  - CODE_OF_CONDUCT.md
43
53
  - LICENSE.txt
44
54
  - README.md
45
55
  - Rakefile
46
56
  - Steepfile
47
- - github_ci/ruby3.3.gemfile
48
- - github_ci/ruby3.3.gemfile.lock
57
+ - github_ci/.keep
49
58
  - lib/redis_queued_locks.rb
50
59
  - lib/redis_queued_locks/acquirer.rb
51
60
  - lib/redis_queued_locks/acquirer/acquire_lock.rb
@@ -176,14 +185,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
185
  requirements:
177
186
  - - ">="
178
187
  - !ruby/object:Gem::Version
179
- version: '3.3'
188
+ version: '4.0'
180
189
  required_rubygems_version: !ruby/object:Gem::Requirement
181
190
  requirements:
182
191
  - - ">="
183
192
  - !ruby/object:Gem::Version
184
193
  version: '0'
185
194
  requirements: []
186
- rubygems_version: 3.6.9
195
+ rubygems_version: 4.0.22
187
196
  specification_version: 4
188
197
  summary: Distributed locks with "prioritized lock acquisition queue" capabilities
189
198
  based on the Redis Database.
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec path: '..'
6
-
7
- gem 'activesupport'
8
- gem 'armitage-rubocop'
9
- gem 'bundler'
10
- gem 'pry'
11
- gem 'rake'
12
- gem 'rbs'
13
- gem 'rspec'
14
- gem 'rspec-retry' # NOTE: temporary decision for non-refactored tests
15
- gem 'simplecov'
16
- gem 'simplecov-lcov'
17
- gem 'steep'
@@ -1,216 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- redis_queued_locks (1.15.1)
5
- redis-client (~> 0.20)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- activesupport (8.1.0)
11
- base64
12
- bigdecimal
13
- concurrent-ruby (~> 1.0, >= 1.3.1)
14
- connection_pool (>= 2.2.5)
15
- drb
16
- i18n (>= 1.6, < 2)
17
- json
18
- logger (>= 1.4.2)
19
- minitest (>= 5.1)
20
- securerandom (>= 0.3)
21
- tzinfo (~> 2.0, >= 2.0.5)
22
- uri (>= 0.13.1)
23
- armitage-rubocop (1.75.7.7)
24
- rubocop (= 1.75.7)
25
- rubocop-capybara (= 2.22.1)
26
- rubocop-factory_bot (= 2.27.1)
27
- rubocop-on-rbs (= 1.7.0)
28
- rubocop-performance (= 1.25.0)
29
- rubocop-rails (= 2.32.0)
30
- rubocop-rake (= 0.7.1)
31
- rubocop-rspec (= 3.6.0)
32
- rubocop-rspec_rails (= 2.31.0)
33
- rubocop-thread_safety (= 0.7.2)
34
- ast (2.4.3)
35
- base64 (0.3.0)
36
- bigdecimal (3.3.1)
37
- coderay (1.1.3)
38
- concurrent-ruby (1.3.5)
39
- connection_pool (2.5.4)
40
- csv (3.3.5)
41
- diff-lcs (1.6.2)
42
- docile (1.4.1)
43
- drb (2.2.3)
44
- ffi (1.17.2)
45
- ffi (1.17.2-aarch64-linux-gnu)
46
- ffi (1.17.2-aarch64-linux-musl)
47
- ffi (1.17.2-arm-linux-gnu)
48
- ffi (1.17.2-arm-linux-musl)
49
- ffi (1.17.2-arm64-darwin)
50
- ffi (1.17.2-x86-linux-gnu)
51
- ffi (1.17.2-x86-linux-musl)
52
- ffi (1.17.2-x86_64-darwin)
53
- ffi (1.17.2-x86_64-linux-gnu)
54
- ffi (1.17.2-x86_64-linux-musl)
55
- fileutils (1.7.3)
56
- i18n (1.14.7)
57
- concurrent-ruby (~> 1.0)
58
- json (2.15.1)
59
- language_server-protocol (3.17.0.5)
60
- lint_roller (1.1.0)
61
- listen (3.9.0)
62
- rb-fsevent (~> 0.10, >= 0.10.3)
63
- rb-inotify (~> 0.9, >= 0.9.10)
64
- logger (1.7.0)
65
- method_source (1.1.0)
66
- minitest (5.26.0)
67
- mutex_m (0.3.0)
68
- parallel (1.27.0)
69
- parser (3.3.9.0)
70
- ast (~> 2.4.1)
71
- racc
72
- prism (1.6.0)
73
- pry (0.15.2)
74
- coderay (~> 1.1)
75
- method_source (~> 1.0)
76
- racc (1.8.1)
77
- rack (3.2.3)
78
- rainbow (3.1.1)
79
- rake (13.3.0)
80
- rb-fsevent (0.11.2)
81
- rb-inotify (0.11.1)
82
- ffi (~> 1.0)
83
- rbs (3.9.5)
84
- logger
85
- redis-client (0.26.1)
86
- connection_pool
87
- regexp_parser (2.11.3)
88
- rspec (3.13.2)
89
- rspec-core (~> 3.13.0)
90
- rspec-expectations (~> 3.13.0)
91
- rspec-mocks (~> 3.13.0)
92
- rspec-core (3.13.6)
93
- rspec-support (~> 3.13.0)
94
- rspec-expectations (3.13.5)
95
- diff-lcs (>= 1.2.0, < 2.0)
96
- rspec-support (~> 3.13.0)
97
- rspec-mocks (3.13.6)
98
- diff-lcs (>= 1.2.0, < 2.0)
99
- rspec-support (~> 3.13.0)
100
- rspec-retry (0.6.2)
101
- rspec-core (> 3.3)
102
- rspec-support (3.13.6)
103
- rubocop (1.75.7)
104
- json (~> 2.3)
105
- language_server-protocol (~> 3.17.0.2)
106
- lint_roller (~> 1.1.0)
107
- parallel (~> 1.10)
108
- parser (>= 3.3.0.2)
109
- rainbow (>= 2.2.2, < 4.0)
110
- regexp_parser (>= 2.9.3, < 3.0)
111
- rubocop-ast (>= 1.44.0, < 2.0)
112
- ruby-progressbar (~> 1.7)
113
- unicode-display_width (>= 2.4.0, < 4.0)
114
- rubocop-ast (1.47.1)
115
- parser (>= 3.3.7.2)
116
- prism (~> 1.4)
117
- rubocop-capybara (2.22.1)
118
- lint_roller (~> 1.1)
119
- rubocop (~> 1.72, >= 1.72.1)
120
- rubocop-factory_bot (2.27.1)
121
- lint_roller (~> 1.1)
122
- rubocop (~> 1.72, >= 1.72.1)
123
- rubocop-on-rbs (1.7.0)
124
- lint_roller (~> 1.1)
125
- rbs (~> 3.5)
126
- rubocop (>= 1.72.1, < 2.0)
127
- zlib
128
- rubocop-performance (1.25.0)
129
- lint_roller (~> 1.1)
130
- rubocop (>= 1.75.0, < 2.0)
131
- rubocop-ast (>= 1.38.0, < 2.0)
132
- rubocop-rails (2.32.0)
133
- activesupport (>= 4.2.0)
134
- lint_roller (~> 1.1)
135
- rack (>= 1.1)
136
- rubocop (>= 1.75.0, < 2.0)
137
- rubocop-ast (>= 1.44.0, < 2.0)
138
- rubocop-rake (0.7.1)
139
- lint_roller (~> 1.1)
140
- rubocop (>= 1.72.1)
141
- rubocop-rspec (3.6.0)
142
- lint_roller (~> 1.1)
143
- rubocop (~> 1.72, >= 1.72.1)
144
- rubocop-rspec_rails (2.31.0)
145
- lint_roller (~> 1.1)
146
- rubocop (~> 1.72, >= 1.72.1)
147
- rubocop-rspec (~> 3.5)
148
- rubocop-thread_safety (0.7.2)
149
- lint_roller (~> 1.1)
150
- rubocop (~> 1.72, >= 1.72.1)
151
- ruby-progressbar (1.13.0)
152
- securerandom (0.4.1)
153
- simplecov (0.22.0)
154
- docile (~> 1.1)
155
- simplecov-html (~> 0.11)
156
- simplecov_json_formatter (~> 0.1)
157
- simplecov-html (0.13.2)
158
- simplecov-lcov (0.9.0)
159
- simplecov_json_formatter (0.1.4)
160
- steep (1.10.0)
161
- activesupport (>= 5.1)
162
- concurrent-ruby (>= 1.1.10)
163
- csv (>= 3.0.9)
164
- fileutils (>= 1.1.0)
165
- json (>= 2.1.0)
166
- language_server-protocol (>= 3.17.0.4, < 4.0)
167
- listen (~> 3.0)
168
- logger (>= 1.3.0)
169
- mutex_m (>= 0.3.0)
170
- parser (>= 3.1)
171
- rainbow (>= 2.2.2, < 4.0)
172
- rbs (~> 3.9)
173
- securerandom (>= 0.1)
174
- strscan (>= 1.0.0)
175
- terminal-table (>= 2, < 5)
176
- uri (>= 0.12.0)
177
- strscan (3.1.5)
178
- terminal-table (4.0.0)
179
- unicode-display_width (>= 1.1.1, < 4)
180
- tzinfo (2.0.6)
181
- concurrent-ruby (~> 1.0)
182
- unicode-display_width (3.2.0)
183
- unicode-emoji (~> 4.1)
184
- unicode-emoji (4.1.0)
185
- uri (1.0.4)
186
- zlib (3.2.1)
187
-
188
- PLATFORMS
189
- aarch64-linux-gnu
190
- aarch64-linux-musl
191
- arm-linux-gnu
192
- arm-linux-musl
193
- arm64-darwin
194
- ruby
195
- x86-linux-gnu
196
- x86-linux-musl
197
- x86_64-darwin
198
- x86_64-linux-gnu
199
- x86_64-linux-musl
200
-
201
- DEPENDENCIES
202
- activesupport
203
- armitage-rubocop
204
- bundler
205
- pry
206
- rake
207
- rbs
208
- redis_queued_locks!
209
- rspec
210
- rspec-retry
211
- simplecov
212
- simplecov-lcov
213
- steep
214
-
215
- BUNDLED WITH
216
- 2.7.2