activejob-uniqueness 0.1.2 → 0.4.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.
data/.rubocop.yml DELETED
@@ -1,38 +0,0 @@
1
- AllCops:
2
- NewCops: enable
3
-
4
- Layout/LineLength:
5
- Max: 120
6
- Exclude:
7
- - spec/**/*
8
-
9
- Layout/MultilineMethodCallIndentation:
10
- Exclude:
11
- - spec/**/*
12
-
13
- Lint/AmbiguousBlockAssociation:
14
- Exclude:
15
- - spec/**/*
16
-
17
- Metrics/AbcSize:
18
- Exclude:
19
- - spec/**/*
20
-
21
- Metrics/BlockLength:
22
- Exclude:
23
- - activejob-uniqueness.gemspec
24
- - spec/**/*
25
-
26
- Metrics/MethodLength:
27
- Exclude:
28
- - spec/**/*
29
-
30
- Style/ClassAndModuleChildren:
31
- Exclude:
32
- - spec/**/*
33
-
34
- Style/Documentation:
35
- Enabled: false
36
-
37
- Style/RescueModifier:
38
- Enabled: false
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- ---
2
- dist: xenial
3
- language: ruby
4
- services:
5
- - redis-server
6
- cache: bundler
7
- rvm:
8
- - 2.5.8
9
- - 2.6.6
10
- - 2.7.1
11
- env:
12
- - ACTIVEJOB_VERSION="~> 4.2.11"
13
- - ACTIVEJOB_VERSION="~> 5.2.4"
14
- - ACTIVEJOB_VERSION="~> 6.0.3"
15
- - ACTIVEJOB_VERSION="~> 6.0.3" SIDEKIQ_VERSION="~> 6.0.0"
16
- jobs:
17
- exclude:
18
- - rvm: 2.7.1
19
- env: ACTIVEJOB_VERSION="~> 4.2.11"
20
-
21
- before_install: gem install bundler -v 1.17.3
22
- bundler_args: --jobs 3 --retry 3
data/Gemfile DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- # Specify your gem's dependencies in activejob-uniqueness.gemspec
8
- gemspec
9
-
10
- gem 'activejob', ENV.fetch('ACTIVEJOB_VERSION', '~> 4.2.11')
11
-
12
- if ENV['SIDEKIQ_VERSION']
13
- gem 'sidekiq', ENV.fetch('SIDEKIQ_VERSION')
14
- gem 'railties', ENV.fetch('ACTIVEJOB_VERSION')
15
- end
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task default: :spec
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'active_job/uniqueness/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'activejob-uniqueness'
9
- spec.version = ActiveJob::Uniqueness::VERSION
10
- spec.authors = ['Rustam Sharshenov']
11
- spec.email = ['rustam@sharshenov.com']
12
-
13
- spec.summary = 'Ensure uniqueness of your ActiveJob jobs'
14
- spec.description = 'Ensure uniqueness of your ActiveJob jobs'
15
- spec.homepage = 'https://github.com/veeqo/activejob-uniqueness'
16
- spec.license = 'MIT'
17
-
18
- if spec.respond_to?(:metadata)
19
- spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = spec.homepage
21
- spec.metadata['changelog_uri'] = 'https://github.com/veeqo/activejob-uniqueness/blob/master/CHANGELOG.md'
22
- end
23
-
24
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|\.rubocop.yml)/}) }
26
- end
27
- spec.require_paths = ['lib']
28
-
29
- spec.add_dependency 'activejob', '>= 4.2'
30
- spec.add_dependency 'redlock', '>= 1.2', '< 2'
31
-
32
- spec.add_development_dependency 'bundler'
33
- spec.add_development_dependency 'pry-byebug'
34
- spec.add_development_dependency 'rake'
35
- spec.add_development_dependency 'rspec', '~> 3.0'
36
- end
@@ -1,93 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveJob
4
- module Uniqueness
5
- module Patch
6
- def self.delete_sidekiq_job!(job)
7
- ActiveJob::Uniqueness.unlock!(
8
- job_class_name: job.fetch('wrapped'),
9
- arguments: job.fetch('args').first.fetch('arguments')
10
- )
11
- end
12
- end
13
- end
14
- end
15
-
16
- require 'sidekiq/api'
17
-
18
- Sidekiq.configure_server do |config|
19
- config.death_handlers << ->(job, _ex) do
20
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(job)
21
- end
22
- end
23
-
24
- module Sidekiq
25
- class SortedEntry
26
- module UniqueExtension
27
- def delete
28
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(item) if super
29
- item
30
- end
31
-
32
- private
33
-
34
- def remove_job
35
- super do |message|
36
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(Sidekiq.load_json(message))
37
- yield message
38
- end
39
- end
40
- end
41
-
42
- prepend UniqueExtension
43
- end
44
-
45
- class ScheduledSet
46
- module UniqueExtension
47
- def delete(score, job_id)
48
- entry = find_job(job_id)
49
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(entry.item) if super(score, job_id)
50
- entry
51
- end
52
- end
53
-
54
- prepend UniqueExtension
55
- end
56
-
57
- class Job
58
- module UniqueExtension
59
- def delete
60
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(item)
61
- super
62
- end
63
- end
64
-
65
- prepend UniqueExtension
66
- end
67
-
68
- class Queue
69
- module UniqueExtension
70
- def clear
71
- each(&:delete)
72
- super
73
- end
74
- end
75
-
76
- prepend UniqueExtension
77
- end
78
-
79
- class JobSet
80
- module UniqueExtension
81
- def clear
82
- each(&:delete)
83
- super
84
- end
85
-
86
- def delete_by_value(name, value)
87
- ActiveJob::Uniqueness::Patch.delete_sidekiq_job!(Sidekiq.load_json(value)) if super(name, value)
88
- end
89
- end
90
-
91
- prepend UniqueExtension
92
- end
93
- end