Class: Amorail::StoreAdapters::MemoryStoreAdapter

Inherits:
AbstractStoreAdapter show all
Defined in:
lib/amorail/store_adapters/memory_store_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractStoreAdapter

#update_refresh

Constructor Details

#initialize(**options) ⇒ MemoryStoreAdapter

Returns a new instance of MemoryStoreAdapter.

Raises:

  • (ArgumentError)


8
9
10
11
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 8

def initialize(**options)
  raise ArgumentError, 'Memory store doesn\'t support any options' if options.any?
  @storage = Hash.new { |hh, kk| hh[kk] = {} }
end

Instance Attribute Details

#storageObject (readonly)

Returns the value of attribute storage.



6
7
8
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 6

def storage
  @storage
end

Instance Method Details

#access_expired?(key) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 31

def access_expired?(key)
  storage[key][:expiration] && Time.now.to_i >= storage[key][:expiration]
end

#fetch_access(secret) ⇒ Object



13
14
15
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 13

def fetch_access(secret)
  value_if_not_expired(secret)
end

#persist_access(secret, token, refresh_token, expiration) ⇒ Object



17
18
19
20
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 17

def persist_access(secret, token, refresh_token, expiration)
  access_token = { token: token, refresh_token: refresh_token, expiration: expiration }
  storage.store(secret, access_token)
end

#update_access(secret, token, refresh_token, expiration) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/amorail/store_adapters/memory_store_adapter.rb', line 22

def update_access(secret, token, refresh_token, expiration)
  update_access_fields(
    secret,
    token: token,
    refresh_token: refresh_token,
    expiration: expiration
  )
end