module SieveCache::CacheBase(K, V)
Direct including types
Defined in:
sieve_cache.crInstance Method Summary
-
#[](key : K)
Get value by key, raise KeyError if key is not found
-
#[]=(key : K, value : V)
Set key-value into cache
-
#[]?(key : K) : V | Nil
Get value by key, return nil if key is not found
-
#cap : UInt32
Get the capacity of the cache
-
#clear
Clear cache
-
#del(key : K, & : K -> )
Delete value by key, call the block if key is not found
-
#del(key : K) : V | Nil
Delete value by key, return deleted value or nil (if key is not found)
-
#empty? : Bool
Check cache is empty?
-
#full? : Bool
Check cache is full?
-
#get(key : K, & : K -> )
Get value by key, call the block if key is not found
-
#get(key : K, fallback : V) : V
Get value by key, return fallback value if key is no found
-
#get_or_set(key : K, & : K -> V) : V
Get value by key, call the block to get value to set into cache if key is not found
-
#get_or_set(key : K, value : V) : V
Get value by key, set key-value into cache if key is not found
-
#has?(key : K) : Bool
Check cache if has key?
-
#len : UInt32
Get the length of the cache
-
#set(key : K, value : V)
Set key-value to cache
Instance Method Detail
Delete value by key, call the block if key is not found
deleted_value = cache.del("foo") { nil }
Delete value by key, return deleted value or nil (if key is not found)
deleted_value_or_nil = cache.del("foo")
Get value by key, call the block if key is not found
value = cache.get("foo") { |k| raise "Key: #{k} not found" }
Get value by key, return fallback value if key is no found
value = cache.get("foo", "bar")
p! value # => "bar"
Get value by key, call the block to get value to set into cache if key is not found
value = cache.get_or_set("foo") { |k| "new value of key: #{k}" }
p! value # => "new value of key: foo"
p! cache["foo"] # => "new value of key: foo"
Get value by key, set key-value into cache if key is not found
value = cache.get_or_set("foo", "bar")
p! value # => "bar"
Set key-value to cache
cache.set("foo", "bar")
cache.set("foo", "baz")