# `CookieJar`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L1)

CookieJar is here to store your cookie

# `label`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L163)

# `label`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L164)

# `new`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L162)

# `peek`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L33)

```elixir
@spec peek(GenServer.server()) :: map()
```

See what's in the cookie jar, the individual cookies

## Examples

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.peek(jar)
    %{}
    iex> CookieJar.put(jar, {"name", "john doe"})
    iex> CookieJar.peek(jar)
    %{"name" => "john doe"}

# `peek`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L41)

```elixir
@spec peek(GenServer.server(), String.t()) :: map()
```

See what's in the cookie jar, the individual cookies available to a URI

# `pour`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L124)

```elixir
@spec pour(GenServer.server(), list() | map()) :: :ok
```

Pour cookies into a cookie jar

## Examples

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.peek(jar)
    %{}
    iex> CookieJar.pour(jar, %{"a" => 1, "b" => 2})
    iex> CookieJar.peek(jar)
    %{"a" => 1, "b" => 2}

# `pour`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L132)

```elixir
@spec pour(GenServer.server(), list(), String.t()) :: :ok
```

Pour cookies into a cookie jar, using cookie strings and a uri string

# `put`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L89)

```elixir
@spec put(GenServer.server(), CookieJar.Cookie.t() | {term(), term()}) :: :ok
```

Put cookie into a cookie jar

## Examples

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.peek(jar)
    %{}
    iex> CookieJar.put(jar, {"a", 1})
    iex> CookieJar.put(jar, {"b", 2})
    iex> CookieJar.to_string(jar)
    "a=1; b=2"

# `put_new`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L107)

```elixir
@spec put_new(GenServer.server(), CookieJar.Cookie.t() | {term(), term()}) :: :ok
```

Put *new* cookie into a cookie jar

## Examples

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.peek(jar)
    %{}
    iex> CookieJar.put(jar, {"a", 1})
    iex> CookieJar.put_new(jar, {"a", 3})
    iex> CookieJar.to_string(jar)
    "a=1"

# `smash`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L165)

# `start_link`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L18)

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

Create a new cookie jar

## Examples

    CookieJar.start_link
    # or
    CookieJar.new

# `stop`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L158)

```elixir
@spec stop(GenServer.server()) :: :ok
```

Destroy a cookie jar

## Examples

    CookieJar.stop(jar)
    # or
    CookieJar.smash(jar)

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.stop(jar)
    iex> Process.alive?(jar)
    false

# `to_string`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L63)

```elixir
@spec to_string(GenServer.server()) :: String.t()
```

Get the cookies in Cookie format

## Examples

    CookieJar.to_string(jar)
    # or
    CookieJar.label(jar)

    iex> {:ok, jar} = CookieJar.new
    iex> CookieJar.to_string(jar)
    ""
    iex> CookieJar.put(jar, {"a", 1})
    iex> CookieJar.put(jar, {"b", 2})
    iex> CookieJar.to_string(jar)
    "a=1; b=2"

# `to_string`
[🔗](https://github.com/princemaple/cookie_jar/blob/v1.1.0/lib/cookie_jar.ex#L71)

```elixir
@spec to_string(GenServer.server(), String.t()) :: String.t()
```

Get the cookies in Cookie format for the given URI

---

*Consult [api-reference.md](api-reference.md) for complete listing*
