Sha256: 52b935799e93a073235b4ab13b0ffb132ce7e9692aea79a9a6693c7757f7fbb8

Contents?: true

Size: 963 Bytes

Versions: 3

Compression:

Stored size: 963 Bytes

Contents

# frozen_string_literal: true

require 'redis_web_manager/engine'
require 'redis_web_manager/base'
require 'redis_web_manager/action'
require 'redis_web_manager/connection'
require 'redis_web_manager/info'
require 'redis_web_manager/data'
require 'redis'

module RedisWebManager
  mattr_accessor :redis, default: ::Redis.new
  mattr_accessor :lifespan, default: 15.days
  mattr_accessor :authenticate, default: nil

  class << self
    def configure
      yield self if block_given?
      check_attrs
    end

    private

    def check_attrs
      unless redis.is_a?(::Redis)
        raise ArgumentError, 'Invalid Redis instance, use like that Redis.new'
      end
      unless lifespan.is_a?(::ActiveSupport::Duration)
        raise ArgumentError, 'Invalid lifespan, use like that 15.days, 15.minutes etc'
      end
      valid = lifespan.to_i.positive?
      raise ArgumentError, 'Invalid lifespan, value must be greater than 0' unless valid
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redis_web_manager-0.2.1 lib/redis_web_manager.rb
redis_web_manager-0.2.0 lib/redis_web_manager.rb
redis_web_manager-0.1.8 lib/redis_web_manager.rb