require 'logger'
class RedisLock
  class Configuration
    class RedisNotSet < StandardError; end
    def redis=(hash = {})
      @redis = hash
    end

    def redis
      fail RedisNotSet, "[#{self.class}] redis connection setup is not set" unless @redis
      if @redis.respond_to?(:call)
        return @redis.call
      else
        self.redis_instance = @redis
        @redis_instance
      end
    end


    def logger=(logger)
      @logger = logger
    end

    def logger
      @logger ? @logger : Logger.new(STDOUT)
    end

    private

    def redis_instance=(args)
      @redis_instance ||= Redis.new(args)
    end
  end
end