Class: DiscordRDA::CacheStore

Inherits:
Object
  • Object
show all
Defined in:
lib/discord_rda/cache/store.rb

Overview

Cache store interface. Implementations must provide get, set, delete, and clear methods.

Direct Known Subclasses

MemoryStore, RedisStore

Instance Method Summary collapse

Instance Method Details

#clearvoid

This method returns an undefined value.

Clear all cached values

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/discord_rda/cache/store.rb', line 40

def clear
  raise NotImplementedError
end

#delete(key) ⇒ void

This method returns an undefined value.

Delete a value from cache

Parameters:

  • key (String)

    Cache key

Raises:

  • (NotImplementedError)


27
28
29
# File 'lib/discord_rda/cache/store.rb', line 27

def delete(key)
  raise NotImplementedError
end

#exist?(key) ⇒ Boolean

Check if key exists

Parameters:

  • key (String)

    Cache key

Returns:

  • (Boolean)

    True if exists



34
35
36
# File 'lib/discord_rda/cache/store.rb', line 34

def exist?(key)
  !get(key).nil?
end

#get(key) ⇒ Object?

Get a value from cache

Parameters:

  • key (String)

    Cache key

Returns:

  • (Object, nil)

    Cached value or nil

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/discord_rda/cache/store.rb', line 11

def get(key)
  raise NotImplementedError
end

#keys(pattern) ⇒ Array<String>

Get keys matching a pattern

Parameters:

  • pattern (String, Regexp)

    Pattern to match

Returns:

  • (Array<String>)

    Matching keys

Raises:

  • (NotImplementedError)


54
55
56
# File 'lib/discord_rda/cache/store.rb', line 54

def keys(pattern)
  raise NotImplementedError
end

#mget(keys) ⇒ Hash

Get multiple values

Parameters:

  • keys (Array<String>)

    Cache keys

Returns:

  • (Hash)

    Key-value pairs



47
48
49
# File 'lib/discord_rda/cache/store.rb', line 47

def mget(keys)
  keys.to_h { |k| [k, get(k)] }
end

#set(key, value, ttl: nil) ⇒ void

This method returns an undefined value.

Set a value in cache

Parameters:

  • key (String)

    Cache key

  • value (Object)

    Value to cache

  • ttl (Integer) (defaults to: nil)

    Time to live in seconds

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/discord_rda/cache/store.rb', line 20

def set(key, value, ttl: nil)
  raise NotImplementedError
end