Sha256: be2dc6db9ba343ce7699c2830e7cd668e70f6c09e58d4600c5f4b9de1b4ccdad

Contents?: true

Size: 825 Bytes

Versions: 76

Compression:

Stored size: 825 Bytes

Contents

module ShopifyApp
  class SessionRepository
    class ConfigurationError < StandardError; end

    class << self
      def storage=(storage)
        @storage = storage

        unless storage.nil? || self.storage.respond_to?(:store) && self.storage.respond_to?(:retrieve)
          raise ArgumentError, "storage must respond to :store and :retrieve"
        end
      end

      def retrieve(id)
        storage.retrieve(id)
      end

      def store(session)
        storage.store(session)
      end

      def storage
        load_storage || raise(ConfigurationError.new("ShopifySessionRepository.storage is not configured!"))
      end

      private

      def load_storage
        return unless @storage
        @storage.respond_to?(:safe_constantize) ? @storage.safe_constantize : @storage
      end
    end
  end
end

Version data entries

76 entries across 76 versions & 1 rubygems

Version Path
shopify_app-11.6.0 lib/shopify_app/session/session_repository.rb
shopify_app-11.5.1 lib/shopify_app/session/session_repository.rb
shopify_app-11.4.0 lib/shopify_app/session/session_repository.rb
shopify_app-11.3.2 lib/shopify_app/session/session_repository.rb
shopify_app-11.3.1 lib/shopify_app/session/session_repository.rb
shopify_app-11.3.0 lib/shopify_app/session/session_repository.rb
shopify_app-11.2.0 lib/shopify_app/session/session_repository.rb
shopify_app-11.1.0 lib/shopify_app/session/session_repository.rb
shopify_app-11.0.2 lib/shopify_app/session/session_repository.rb
shopify_app-11.0.1 lib/shopify_app/session/session_repository.rb
shopify_app-11.0.0 lib/shopify_app/session/session_repository.rb
shopify_app-10.0.0 lib/shopify_app/session/session_repository.rb
shopify_app-9.0.4 lib/shopify_app/session/session_repository.rb
shopify_app-9.0.3 lib/shopify_app/session/session_repository.rb
shopify_app-9.0.2 lib/shopify_app/session/session_repository.rb
shopify_app-9.0.1 lib/shopify_app/session/session_repository.rb
shopify_app-9.0.0 lib/shopify_app/session/session_repository.rb
shopify_app-8.6.1 lib/shopify_app/session/session_repository.rb
shopify_app-8.6.0 lib/shopify_app/session/session_repository.rb
shopify_app-8.5.1 lib/shopify_app/session/session_repository.rb