Sha256: c911debce4b9e174a9ada114d719d75cf0241a396b154fe74ce6ed98bc03bd46

Contents?: true

Size: 1007 Bytes

Versions: 6

Compression:

Stored size: 1007 Bytes

Contents

# frozen_string_literal: true

module Loco
  class Config
    CONFIGURATION = Struct.new :silence_logger, :notifications_size, :app_name, :redis_instance

    cattr_accessor(:silence_logger) { false }
    cattr_accessor(:notifications_size) { 100 }
    cattr_accessor(:app_name) { 'loco' }
    cattr_accessor(:redis_instance) { nil }

    def self.configure(config)
      self.silence_logger = config.silence_logger if config.silence_logger
      self.notifications_size = config.notifications_size if config.notifications_size
      self.app_name = config.app_name if config.app_name
      configure_redis config.redis_instance
    ensure
      true
    end

    def self.configure_redis(redis_instance)
      if redis_instance
        self.redis_instance = redis_instance
        return
      end
      return unless defined? Redis

      Redis.current.get 'random_redis_key'
      self.redis_instance = Redis.current
    rescue Redis::CannotConnectError
      self.redis_instance = nil
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
loco-rails-6.1.0 lib/loco/config.rb
loco-rails-6.0.0 lib/loco/config.rb
loco-rails-5.0.0 lib/loco/config.rb
loco-rails-4.1.1 lib/loco/config.rb
loco-rails-4.1.0 lib/loco/config.rb
loco-rails-4.0.0 lib/loco/config.rb