lib/cacheflow.rb in cacheflow-0.1.0 vs lib/cacheflow.rb in cacheflow-0.1.1

- old
+ new

@@ -4,9 +4,48 @@ module Cacheflow def self.activate require "cacheflow/memcached" if defined?(Dalli) require "cacheflow/redis" if defined?(Redis) end + + def self.silenced? + Thread.current[:cacheflow_silenced] + end + + def self.silence + previous_value = silenced? + begin + Thread.current[:cacheflow_silenced] = true + yield + ensure + Thread.current[:cacheflow_silenced] = previous_value + end + end + + def self.silence_sidekiq! + ::Sidekiq.singleton_class.prepend(Cacheflow::Sidekiq::ClassMethods) + ::Sidekiq::Client.prepend(Cacheflow::Sidekiq::Client::InstanceMethods) + end + + module Sidekiq + module ClassMethods + def redis(*_) + Cacheflow.silence do + super + end + end + end + + module Client + module InstanceMethods + def push(*_) + Cacheflow.silence do + super + end + end + end + end + end end if defined?(Rails) require "cacheflow/railtie" else