Sha256: 1e415e7ea8ca96684509606fdd00b12fd517a67e942a917b21ee498d502e77ea
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module Sidekiq::Apriori module Worker def self.included(base) base.class_eval do include Sidekiq::Worker if defined?(Sidekiq::Worker) ## Prepend is only available for ruby > 2.0.0 # version = RUBY_VERSION.split(/\./).map(&:to_i) rescue [] prepend ClassMethods if version.first > 1 end end end module ClassMethods def perform(*args) super(*args) rescue ArgumentError => err raise err unless has_priority?(args.last) super(*args[0..-2]) end def has_priority?(options) return false unless hashlike?(options) stringify_keys(options).has_key?('priority') end private :has_priority? def stringify_keys(hashish) duplicate = hashish.dup if hashlike?(hashish) duplicate.keys.each do |key| duplicate[key.to_s] = duplicate.delete(key) end end duplicate end private :stringify_keys def hashlike?(hashish) [ :keys, :has_key?, :[] ]. map { |method| hashish.respond_to?(method) }.all? end private :hashlike? end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-apriori-0.1.1 | lib/sidekiq-apriori/worker.rb |
sidekiq-apriori-0.0.3 | lib/sidekiq-apriori/worker.rb |