Sha256: 7b085262625e979a13c929ddc86272898683d002faeecec67db9dafe1ce8c3a3

Contents?: true

Size: 1.04 KB

Versions: 9

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module FmRest
  module TokenStore
    autoload :Base,         "fmrest/token_store/base"
    autoload :Memory,       "fmrest/token_store/memory"
    autoload :Null,         "fmrest/token_store/null"
    autoload :ActiveRecord, "fmrest/token_store/active_record"
    autoload :Moneta,       "fmrest/token_store/moneta"
    autoload :Redis,        "fmrest/token_store/redis"
    autoload :ShortMemory,  "fmrest/token_store/short_memory"

    TOKEN_STORE_INTERFACE = [:load, :store, :delete].freeze

    private

    def token_store
      @token_store ||=
        if TOKEN_STORE_INTERFACE.all? { |method| token_store_option.respond_to?(method) }
          token_store_option
        elsif token_store_option.kind_of?(Class)
          if token_store_option.respond_to?(:instance)
            token_store_option.instance
          else
            token_store_option.new
          end
        else
          FmRest::TokenStore::Memory.new
        end
    end

    def token_store_option
      raise NotImplementedError
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fmrest-core-0.23.1 lib/fmrest/token_store.rb
fmrest-core-0.23.0 lib/fmrest/token_store.rb
fmrest-core-0.22.0 lib/fmrest/token_store.rb
fmrest-core-0.21.0 lib/fmrest/token_store.rb
fmrest-core-0.21.0.rc1 lib/fmrest/token_store.rb
fmrest-core-0.20.0 lib/fmrest/token_store.rb
fmrest-core-0.20.0.rc1 lib/fmrest/token_store.rb
fmrest-core-0.19.0 lib/fmrest/token_store.rb
fmrest-core-0.19.0.rc1 lib/fmrest/token_store.rb