que-unique 1.1.0 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea8fcf7460687578d7e50d3d3535553ba829579d61fdbe081908a8d45b31284e
4
- data.tar.gz: 4b822366ff0088d4670a4b6aafa70ee2a9a7a56cb5a5465c68949d80bf7337d0
3
+ metadata.gz: 190128804ed1f6eebb078c53eafad450dd4ac250e928035950cef22d19cd219b
4
+ data.tar.gz: 9ffcef6c846cd5805aca5abe1a2d569bfffdb7372e9e83670c39b0a5c851b9b5
5
5
  SHA512:
6
- metadata.gz: 18f4717b0b0d33529aacf8bed1573517f95848a1df0f9fb5a354e381a52b2a8b48cad3bda63edb07f049a47f6647710d934737d79960fae60168f2c1c7bfa125
7
- data.tar.gz: c039e4c58d44fae4e06a81a021202870fc0e0e2915a01fbd1945d83b46448b6c2cd186d96110ecb2a089ddbc8c2dc2d89d51169bec61dcb91ed7ba761be2a875
6
+ metadata.gz: a0fecc160423b939979d352b08dca730f0493a663c9815f1cdf776b37760e0345564a600c872dc084a37202b55c11dbd58a673e2f043b854db935986870d19af
7
+ data.tar.gz: 5da43b172697c587f6f2c66dbbb26c93887731b892a574dd30553d3b8cc91b47a452b07109fde044ab02db49b174f61422f4f5af3af1643669eccfec3789a36a
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support"
3
4
  require "active_record"
4
5
  require_relative "constants"
5
6
 
@@ -10,7 +11,7 @@ module Que
10
11
  module TransactionClassMethods
11
12
  def transaction(...)
12
13
  start_que_unique_handled_transaction
13
- super(...)
14
+ super
14
15
  ensure
15
16
  end_que_unique_handled_transaction
16
17
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Que
4
4
  module Unique
5
- VERSION = "1.1.0"
5
+ VERSION = "1.3.0"
6
6
  end
7
7
  end
data/lib/que/unique.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/concern'
3
+ require "active_support/concern"
4
4
  require "que"
5
5
  require_relative "unique/version"
6
6
  require_relative "unique/constants"
@@ -14,7 +14,7 @@ module Que
14
14
 
15
15
  included do
16
16
  singleton_class.class_eval do
17
- def enqueue_before_unique(*args)
17
+ def enqueue_before_unique(*args, **kwargs)
18
18
  thread_local_hash = Thread.current[Que::Unique::THREAD_LOCAL_KEY]
19
19
  unless thread_local_hash
20
20
  raise "UniqueQueJob #{self} being scheduled outside a transaction"
@@ -22,15 +22,17 @@ module Que
22
22
 
23
23
  # Once the args are canonicalised, we convert it to a JSON string to match against.
24
24
  canonicalised_args = args.map { |arg| Que::Unique.canonicalise_que_unique_arg(arg) }
25
- args_key = { self => canonicalised_args }.to_json
25
+ canonicalised_kwargs = Que::Unique.canonicalise_que_unique_arg(kwargs)
26
+ cache_key = { self => [canonicalised_args, canonicalised_kwargs] }.to_json
27
+
26
28
  # If this is already known then don't enqueue it again. Otherwise, add it to the last
27
29
  # element of the array.
28
- if thread_local_hash.key?(args_key)
29
- ::Rails.logger.debug "Que::Unique - #{self} - Already scheduled: #{args_key}"
30
+ if thread_local_hash.key?(cache_key)
31
+ ::Rails.logger.debug "Que::Unique - #{self} - Already scheduled: #{cache_key}"
30
32
  else
31
- ::Rails.logger.debug "Que::Unique - #{self} - Enqueuing #{args_key}"
32
- thread_local_hash[args_key] = true
33
- enqueue_after_unique(*canonicalised_args)
33
+ ::Rails.logger.debug "Que::Unique - #{self} - Enqueuing #{cache_key}"
34
+ thread_local_hash[cache_key] = true
35
+ enqueue_after_unique(*args, **kwargs)
34
36
  end
35
37
  end
36
38
 
metadata CHANGED
@@ -1,55 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-unique
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bamboo Engineering
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-04-18 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: rails
13
+ name: que
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">"
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '6.0'
18
+ version: '2.0'
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '8.0'
21
+ version: 3.0.0
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
- - - ">"
26
+ - - ">="
28
27
  - !ruby/object:Gem::Version
29
- version: '6.0'
28
+ version: '2.0'
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '8.0'
31
+ version: 3.0.0
33
32
  - !ruby/object:Gem::Dependency
34
- name: que
33
+ name: rails
35
34
  requirement: !ruby/object:Gem::Requirement
36
35
  requirements:
37
- - - ">="
36
+ - - ">"
38
37
  - !ruby/object:Gem::Version
39
- version: '0.14'
38
+ version: '6.0'
40
39
  - - "<"
41
40
  - !ruby/object:Gem::Version
42
- version: 3.0.0
41
+ version: '9.0'
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
46
45
  requirements:
47
- - - ">="
46
+ - - ">"
48
47
  - !ruby/object:Gem::Version
49
- version: '0.14'
48
+ version: '6.0'
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
- version: 3.0.0
51
+ version: '9.0'
53
52
  - !ruby/object:Gem::Dependency
54
53
  name: appraisal
55
54
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +77,20 @@ dependencies:
78
77
  - - ">="
79
78
  - !ruby/object:Gem::Version
80
79
  version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: concurrent-ruby
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '='
85
+ - !ruby/object:Gem::Version
86
+ version: 1.3.4
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - '='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.3.4
81
94
  - !ruby/object:Gem::Dependency
82
95
  name: database_cleaner
83
96
  requirement: !ruby/object:Gem::Requirement
@@ -106,6 +119,20 @@ dependencies:
106
119
  - - ">="
107
120
  - !ruby/object:Gem::Version
108
121
  version: '0'
122
+ - !ruby/object:Gem::Dependency
123
+ name: mutex_m
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
109
136
  - !ruby/object:Gem::Dependency
110
137
  name: pg
111
138
  requirement: !ruby/object:Gem::Requirement
@@ -218,7 +245,6 @@ dependencies:
218
245
  - - ">="
219
246
  - !ruby/object:Gem::Version
220
247
  version: '0'
221
- description:
222
248
  email:
223
249
  - dev@bambooloans.com
224
250
  executables: []
@@ -237,7 +263,6 @@ metadata:
237
263
  source_code_uri: https://github.com/bambooengineering/que-unique
238
264
  changelog_uri: https://github.com/bambooengineering/que-unique/CHANGELOG.md
239
265
  rubygems_mfa_required: 'true'
240
- post_install_message:
241
266
  rdoc_options: []
242
267
  require_paths:
243
268
  - lib
@@ -252,8 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
277
  - !ruby/object:Gem::Version
253
278
  version: '0'
254
279
  requirements: []
255
- rubygems_version: 3.3.26
256
- signing_key:
280
+ rubygems_version: 3.6.7
257
281
  specification_version: 4
258
282
  summary: A gem that removes duplicates when multiple copies of a que job are enqueued.
259
283
  test_files: []