Packages
indieweb
0.0.19
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 in Koype.
## Configuration
In order to change the underlying adapter used, set the `:cache_adapter` value to an
implementation 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,
do:
Application.get_env(
:indieweb,
:cache_adapter,
IndieWeb.Cache.Adapters.Cachex
)
@doc "Fetches the value defined by `key` from the adapter; returning `value` if it doesn't exist."
@spec get(binary(), any()) :: any() | nil
def get(key, value \\ nil), do: adapter().get(key) || value
@doc "Removes the value of key `key` from the adapter."
@spec delete(binary()) :: :ok | :error
def delete(key), do: adapter().delete(key)
@doc "Sets the key `key` with the value `value` to the adapter."
@spec set(binary(), any(), keyword()) :: :ok | :error
def set(key, value, options \\ []), do: adapter().set(key, value, options)
end