Module: Strum::CacheUtils::RedisStorage

Defined in:
lib/strum/cache_utils/redis_storage.rb

Overview

Redis storage

Class Method Summary collapse

Class Method Details

.const_missing(resource_name) ⇒ Object

rubocop: disable Metrics/MethodLength, Metrics/AbcSize



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/strum/cache_utils/redis_storage.rb', line 11

def self.const_missing(resource_name)
  const_set(resource_name.to_s.strip.capitalize, Class.new do
    include Singleton
    attr_reader :redis

    define_method :initialize do
      redis_url = ENV.fetch("#{resource_name.upcase}_CACHE_REDIS_URL", ENV.fetch("CACHE_REDIS_URL", nil))
      @redis = if redis_url
                 Strum::Cache.config.redis_class.new(url: redis_url)
               else
                 Strum::Cache.config.redis_class.new
               end
    end
  end)
end