From b99cc00732c495bca235e54a2badf7b9a5103b54 Mon Sep 17 00:00:00 2001 From: Declan McGrath Date: Tue, 27 Jun 2023 17:31:47 +0100 Subject: [PATCH 1/2] scr_ecto-103 | Improve options/configuration described in README. --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index 68514cf..94114dc 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,35 @@ page = |> MyApp.Repo.paginate(page: 2, page_size: 5) ``` +## Supported Options + +There are several options that can be supplied in a dedicated `options` keyword list arg. Here is an example of using `options`... + +```elixir +defmodule MyApp.Repo do + use Ecto.Repo, otp_app: :my_app, adapter: Ecto.Adapters.Postgres + use Scrivener, options: [allow_overflow_page_number: true] +end +``` + +Here is an explanation of the supported options... + +* `:allow_overflow_page_number` - If set to true then when you supply a page greater than the total pages, it will return an empty list for entries. If set to false then it will (silently) treat any supplied `page` arg as if it was equal to the total pages. Default is false. + +## Other Configuration + +The behaviour of Ecto Scrivener can also be optionally configured by passing things directly to the `use Scrivener` statement rather than via the `options` keyword list arg. For example... + +```elixir +defmodule MyApp.Module do + use Scrivener, page_size: 5, max_page_size: 100 +end +``` + +Here is an explanation of the directly configurable keys... + +* `:max_page_size` - This (silently) enforces a hard ceiling for the page size, even if you allow users of your application to specify page_size via query parameters. If not provided, there will be no limit to page size. + ## Installation Add `scrivener_ecto` to your `mix.exs` `deps`. From 89105cb3d1579f8aa8ff7c69e8f86967db85b1ab Mon Sep 17 00:00:00 2001 From: Declan McGrath Date: Wed, 13 Nov 2024 19:45:50 +0000 Subject: [PATCH 2/2] reinitialise checks