sidekiq-unique-jobs 3.0.2 → 3.0.5

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.

Potentially problematic release.


This version of sidekiq-unique-jobs might be problematic. Click here for more details.

Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +36 -0
  3. data/.travis.yml +0 -2
  4. data/Appraisals +2 -1
  5. data/CHANGELOG.md +4 -4
  6. data/Gemfile +1 -3
  7. data/README.md +2 -2
  8. data/Rakefile +6 -4
  9. data/gemfiles/sidekiq_2.15.gemfile +1 -3
  10. data/gemfiles/sidekiq_2.16.gemfile +1 -3
  11. data/gemfiles/sidekiq_2.17.gemfile +1 -3
  12. data/gemfiles/sidekiq_3.0.gemfile +1 -3
  13. data/gemfiles/sidekiq_develop.gemfile +2 -4
  14. data/lib/sidekiq_unique_jobs.rb +27 -0
  15. data/lib/sidekiq_unique_jobs/config.rb +47 -0
  16. data/lib/sidekiq_unique_jobs/connectors.rb +16 -0
  17. data/lib/sidekiq_unique_jobs/connectors/redis_pool.rb +10 -0
  18. data/lib/sidekiq_unique_jobs/connectors/sidekiq_redis.rb +9 -0
  19. data/lib/sidekiq_unique_jobs/connectors/testing.rb +10 -0
  20. data/lib/{sidekiq-unique-jobs → sidekiq_unique_jobs}/middleware.rb +3 -3
  21. data/lib/sidekiq_unique_jobs/middleware/client/strategies/testing_inline.rb +25 -0
  22. data/lib/sidekiq_unique_jobs/middleware/client/strategies/unique.rb +72 -0
  23. data/lib/sidekiq_unique_jobs/middleware/client/unique_jobs.rb +48 -0
  24. data/lib/{sidekiq-unique-jobs → sidekiq_unique_jobs}/middleware/server/unique_jobs.rb +14 -13
  25. data/lib/sidekiq_unique_jobs/payload_helper.rb +42 -0
  26. data/lib/{sidekiq-unique-jobs → sidekiq_unique_jobs}/testing.rb +2 -2
  27. data/lib/{sidekiq-unique-jobs → sidekiq_unique_jobs}/version.rb +1 -1
  28. data/sidekiq-unique-jobs.gemspec +12 -11
  29. data/spec/lib/.sidekiq_testing_enabled_spec.rb.swp +0 -0
  30. data/spec/lib/client_spec.rb +56 -44
  31. data/spec/lib/middleware/server/unique_jobs_spec.rb +16 -16
  32. data/spec/lib/sidekiq_testing_enabled_spec.rb +90 -8
  33. data/spec/lib/unlock_order_spec.rb +3 -3
  34. data/spec/spec_helper.rb +5 -6
  35. data/spec/support/my_worker.rb +3 -3
  36. data/spec/support/sidekiq_meta.rb +3 -6
  37. data/spec/support/unique_worker.rb +3 -3
  38. metadata +35 -13
  39. data/lib/sidekiq-unique-jobs.rb +0 -11
  40. data/lib/sidekiq-unique-jobs/config.rb +0 -35
  41. data/lib/sidekiq-unique-jobs/middleware/client/unique_jobs.rb +0 -101
  42. data/lib/sidekiq-unique-jobs/payload_helper.rb +0 -30
@@ -1,30 +0,0 @@
1
- module SidekiqUniqueJobs
2
- class PayloadHelper
3
- def self.get_payload(klass, queue, *args)
4
- unique_on_all_queues = false
5
- if SidekiqUniqueJobs::Config.unique_args_enabled?
6
- worker_class = klass.constantize
7
- args = yield_unique_args(worker_class, *args)
8
- unique_on_all_queues = worker_class.get_sidekiq_options['unique_on_all_queues']
9
- end
10
- md5_arguments = {:class => klass, :args => args}
11
- md5_arguments[:queue] = queue unless unique_on_all_queues
12
- "#{SidekiqUniqueJobs::Config.unique_prefix}:#{Digest::MD5.hexdigest(Sidekiq.dump_json(md5_arguments))}"
13
- end
14
-
15
- def self.yield_unique_args(worker_class, args)
16
- unique_args = worker_class.get_sidekiq_options['unique_args']
17
- filtered_args = if unique_args
18
- case unique_args
19
- when Proc
20
- unique_args.call(args)
21
- when Symbol
22
- worker_class.send(unique_args, *args) if worker_class.respond_to?(unique_args)
23
- end
24
- end
25
- filtered_args || args
26
- rescue NameError # if we can't instantiate the class, we just fallback to not filtering args
27
- args
28
- end
29
- end
30
- end