lib/redlock/testing.rb in redlock-1.1.0 vs lib/redlock/testing.rb in redlock-1.2.0
- old
+ new
@@ -1,35 +1,45 @@
module Redlock
class Client
- attr_writer :testing_mode
+ class << self
+ attr_accessor :testing_mode
+ end
+ def testing_mode=(mode)
+ warn 'DEPRECATION WARNING: Instance-level `testing_mode` has been removed, and this ' +
+ 'setter will be removed in the future. Please set the testing mode on the `Redlock::Client` ' +
+ 'instead, e.g. `Redlock::Client.testing_mode = :bypass`.'
+
+ self.class.testing_mode = mode
+ end
+
alias_method :try_lock_instances_without_testing, :try_lock_instances
def try_lock_instances(resource, ttl, options)
- if @testing_mode == :bypass
+ if self.class.testing_mode == :bypass
{
validity: ttl,
resource: resource,
value: options[:extend] ? options[:extend].fetch(:value) : SecureRandom.uuid
}
- elsif @testing_mode == :fail
+ elsif self.class.testing_mode == :fail
false
else
try_lock_instances_without_testing resource, ttl, options
end
end
alias_method :unlock_without_testing, :unlock
def unlock(lock_info)
- unlock_without_testing lock_info unless @testing_mode == :bypass
+ unlock_without_testing lock_info unless self.class.testing_mode == :bypass
end
class RedisInstance
alias_method :load_scripts_without_testing, :load_scripts
def load_scripts
- load_scripts_without_testing
+ load_scripts_without_testing unless Redlock::Client.testing_mode == :bypass
rescue Redis::CommandError
# FakeRedis doesn't have #script, but doesn't need it either.
raise unless defined?(::FakeRedis)
rescue NoMethodError
raise unless defined?(::MockRedis)