Packages
indieweb
0.0.59
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.56
0.0.55
0.0.54
0.0.53
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
0.0.1
Collection of common IndieWeb utilites like authorship resolution, Webmention, post type discovery and IndieAuth.
Current section
Files
Jump to
Current section
Files
lib/indieweb/cache.ex
defmodule IndieWeb.Cache do
@moduledoc """
Provides the generic interface for handling caching logic for the IndieWeb library.
## Configuration
In order to change the underlying adapter used, set the `:cache` value in the
`:adapters` to an module that implements the behavior of `IndieWeb.Cache.Adapter`.
By default, `Cachex` by way of `IndieWeb.Cache.Adapters.Cachex` is used.
"""
@doc "Obtains an implementation of a `IndieWeb.Cache.Adapter` module."
@spec adapter() :: IndieWeb.Cache.Adapter.t()
def adapter(opts \\ []) do
opts
|> Keyword.get(:adapters, [])
|> Keyword.get(:cache, IndieWeb.Cache.Adapters.Cachex)
end
@doc "Fetches the value defined by `key` from the adapter; returning `value` if it doesn't exist."
@spec get(binary(), any(), keyword()) :: any()
def get(key, default_value \\ nil, options \\ []) do
adapter(options).get(key, default_value)
end
@doc "Removes the value of key `key` from the adapter."
@spec delete(binary(), keyword()) :: :ok | :error
def delete(key, options \\ []) do
adapter(options).delete(key)
end
@doc "Sets the key `key` with the value `value` to the adapter."
@spec set(binary(), any(), keyword(), keyword()) :: :ok | :error
def set(key, value, set_options \\ [], options \\ []) do
adapter(options).set(key, value, set_options)
end
end