Numerator v0.2.0 Numerator View Source

Documentation for Numerator.

Link to this section Summary

Link to this section Types

Link to this type

ellipsis_element()

View Source
ellipsis_element() :: %{type: :ellipsis}
Link to this type

page_element()

View Source
page_element() :: %{type: :page | :current, page: page()}
Link to this type

prev_next_element()

View Source
prev_next_element() :: %{type: :prev | :next, page: page() | :disabled}

Link to this section Functions

Link to this function

build(data, opts \\ [])

View Source
build(term(), keyword()) :: [element()]

Hello world.

Examples

iex> Numerator.build(2)
[
  %{type: :prev, page: 1},
  %{type: :next, page: 3}
]

iex> Numerator.build(%{page: 2, last: 6})
[
  %{type: :prev, page: 1},
  %{type: :page, page: 1},
  %{type: :current, page: 2},
  %{type: :page, page: 3},
  %{type: :page, page: 4},
  %{type: :page, page: 5},
  %{type: :page, page: 6},
  %{type: :next, page: 3}
]

iex> Numerator.build(%{page: 2, last: 7})
[
  %{type: :prev, page: 1},
  %{type: :page, page: 1},
  %{type: :current, page: 2},
  %{type: :page, page: 3},
  %{type: :page, page: 4},
  %{type: :page, page: 5},
  %{type: :ellipsis},
  %{type: :next, page: 3}
]

iex> Numerator.build(%{page: 1, last: 2}, prev_next_unavailable_mode: :disable)
[
  %{type: :prev, page: :disabled},
  %{type: :current, page: 1},
  %{type: :page, page: 2},
  %{type: :next, page: 2}
]

iex> Numerator.build(%{page: 2, last: 2}, prev_next_unavailable_mode: :disable)
[
  %{type: :prev, page: 1},
  %{type: :page, page: 1},
  %{type: :current, page: 2},
  %{type: :next, page: :disabled}
]

iex> Numerator.build(%{page: 2, last: 7}, show_last: true)
[
  %{type: :prev, page: 1},
  %{type: :page, page: 1},
  %{type: :current, page: 2},
  %{type: :page, page: 3},
  %{type: :page, page: 4},
  %{type: :page, page: 5},
  %{type: :page, page: 6},
  %{type: :page, page: 7},
  %{type: :next, page: 3}
]

iex> Numerator.build(%{page: 2, last: 9}, show_last: true)
[
  %{type: :prev, page: 1},
  %{type: :page, page: 1},
  %{type: :current, page: 2},
  %{type: :page, page: 3},
  %{type: :page, page: 4},
  %{type: :page, page: 5},
  %{type: :ellipsis},
  %{type: :page, page: 9},
  %{type: :next, page: 3}
]
Link to this function

from_opts(opts)

View Source
from_opts(keyword()) :: keyword()