Sha256: 7c2ef4ba5f0390fa5a18f98baa7d8e986fa45ae45a0176bd4f1a2cb8610c7e00

Contents?: true

Size: 760 Bytes

Versions: 33

Compression:

Stored size: 760 Bytes

Contents

module AmaLayout
  module Notifications
    class RedisStore < AbstractStore
      delegate :clear, to: :base

      attr_accessor :base

      def initialize(opts = {})
        self.base = ActiveSupport::Cache.lookup_store(
          :redis_store,
          opts.merge(raw: true)
        )
      end

      def get(key, opts = {})
        if opts.fetch(:default, false)
          base.fetch(key) { opts[:default] }
        else
          base.read(key)
        end
      end

      def set(key, value, opts = {})
        base.write(key, value, opts) == 'OK'
      end

      def delete(key, opts = {})
        base.delete(key, opts) == 1
      end

      def transaction
        base.data.multi do
          yield self
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
ama_layout-11.3.1 lib/ama_layout/notifications/redis_store.rb
ama_layout-11.3.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-11.2.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-11.1.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-10.2.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-10.1.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-10.0.1 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.5.3 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.5.2 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.5.1 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.5.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.4.1 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.4.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.3.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.2.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.1.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-9.0.0 lib/ama_layout/notifications/redis_store.rb
ama_layout-8.0.2 lib/ama_layout/notifications/redis_store.rb
ama_layout-8.0.1 lib/ama_layout/notifications/redis_store.rb
ama_layout-8.0.0 lib/ama_layout/notifications/redis_store.rb