Skip to content

Commit

Permalink
Format with mix format
Browse files Browse the repository at this point in the history
  • Loading branch information
drewolson committed Jan 18, 2018
1 parent 0b43384 commit ddbf57f
Show file tree
Hide file tree
Showing 13 changed files with 106 additions and 79 deletions.
6 changes: 6 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[
inputs: [
"{lib,config,test}/**/*.{ex,exs}",
"mix.exs"
]
]
7 changes: 5 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
language: elixir
otp_release:
- 20.1
- 20.2
elixir:
- 1.5.2
- 1.6.0
before_script:
- export SCRIVENER_ECTO_DB_USER=postgres
- MIX_ENV=test mix db.reset
script:
- mix test
- mix format --check-formatted
2 changes: 1 addition & 1 deletion config/config.exs
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
use Mix.Config

import_config "#{Mix.env}.exs"
import_config "#{Mix.env()}.exs"
3 changes: 1 addition & 2 deletions config/test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,4 @@ config :scrivener_ecto, Scrivener.Ecto.Repo,
database: "scrivener_test",
username: System.get_env("SCRIVENER_ECTO_DB_USER") || System.get_env("USER")

config :logger, :console,
level: :error
config :logger, :console, level: :error
4 changes: 2 additions & 2 deletions lib/scrivener/paginater/atom.ex
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
defimpl Scrivener.Paginater, for: Atom do
@moduledoc false

@spec paginate(atom, Scrivener.Config.t) :: Scrivener.Page.t
@spec paginate(atom, Scrivener.Config.t()) :: Scrivener.Page.t()
def paginate(atom, config) do
atom
|> Ecto.Queryable.to_query
|> Ecto.Queryable.to_query()
|> Scrivener.Paginater.paginate(config)
end
end
38 changes: 24 additions & 14 deletions lib/scrivener/paginater/ecto/query.ex
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,17 @@ defimpl Scrivener.Paginater, for: Ecto.Query do

@moduledoc false

@spec paginate(Ecto.Query.t, Scrivener.Config.t) :: Scrivener.Page.t
def paginate(query, %Config{page_size: page_size, page_number: page_number, module: repo, caller: caller, options: options}) do
total_entries = Keyword.get_lazy(options, :total_entries, fn -> total_entries(query, repo, caller) end)
@spec paginate(Ecto.Query.t(), Scrivener.Config.t()) :: Scrivener.Page.t()
def paginate(query, %Config{
page_size: page_size,
page_number: page_number,
module: repo,
caller: caller,
options: options
}) do
total_entries =
Keyword.get_lazy(options, :total_entries, fn -> total_entries(query, repo, caller) end)

total_pages = total_pages(total_entries, page_size)
page_number = min(total_pages, page_number)

Expand Down Expand Up @@ -42,20 +50,22 @@ defimpl Scrivener.Paginater, for: Ecto.Query do
end

defp prepare_select(
%{
group_bys: [
%Ecto.Query.QueryExpr{
expr: [
{{:., [], [{:&, [], [source_index]}, field]}, [], []} | _
]
} | _
]
} = query
) do
%{
group_bys: [
%Ecto.Query.QueryExpr{
expr: [
{{:., [], [{:&, [], [source_index]}, field]}, [], []} | _
]
}
| _
]
} = query
) do
query
|> exclude(:select)
|> select([x: source_index], struct(x, ^[field]))
end

defp prepare_select(query) do
query
|> exclude(:select)
Expand All @@ -70,6 +80,6 @@ defimpl Scrivener.Paginater, for: Ecto.Query do
defp total_pages(0, _), do: 1

defp total_pages(total_entries, page_size) do
(total_entries / page_size) |> Float.ceil |> round
(total_entries / page_size) |> Float.ceil() |> round
end
end
4 changes: 2 additions & 2 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ defmodule Scrivener.Ecto.Mixfile do
app: :scrivener_ecto,
version: "1.3.0",
elixir: "~> 1.3",
elixirc_paths: elixirc_paths(Mix.env),
elixirc_paths: elixirc_paths(Mix.env()),
package: package(),
description: "Paginate your Ecto queries with Scrivener",
deps: deps(),
Expand All @@ -32,7 +32,7 @@ defmodule Scrivener.Ecto.Mixfile do

def application do
[
applications: applications(Mix.env)
applications: applications(Mix.env())
]
end

Expand Down
12 changes: 7 additions & 5 deletions mix.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
%{"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [], [], "hexpm"},
"db_connection": {:hex, :db_connection, "1.1.2", "2865c2a4bae0714e2213a0ce60a1b12d76a6efba0c51fbda59c9ab8d1accc7a8", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
%{
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [], [], "hexpm"},
"db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"decimal": {:hex, :decimal, "1.4.1", "ad9e501edf7322f122f7fc151cce7c2a0c9ada96f2b0155b8a09a795c2029770", [:mix], [], "hexpm"},
"dialyxir": {:hex, :dialyxir, "0.5.1", "b331b091720fd93e878137add264bac4f644e1ddae07a70bf7062c7862c4b952", [:mix], [], "hexpm"},
"dialyze": {:hex, :dialyze, "0.2.1"},
"earmark": {:hex, :earmark, "1.2.3", "206eb2e2ac1a794aa5256f3982de7a76bf4579ff91cb28d0e17ea2c9491e46a4", [:mix], [], "hexpm"},
"ecto": {:hex, :ecto, "2.2.6", "3fd1067661d6d64851a0d4db9acd9e884c00d2d1aa41cc09da687226cf894661", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"earmark": {:hex, :earmark, "1.2.4", "99b637c62a4d65a20a9fb674b8cffb8baa771c04605a80c911c4418c69b75439", [:mix], [], "hexpm"},
"ecto": {:hex, :ecto, "2.2.8", "a4463c0928b970f2cee722cd29aaac154e866a15882c5737e0038bbfcf03ec2c", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
"ex_doc": {:hex, :ex_doc, "0.18.1", "37c69d2ef62f24928c1f4fdc7c724ea04aecfdf500c4329185f8e3649c915baf", [:mix], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"},
"ex_spec": {:hex, :ex_spec, "1.0.0", "b1e791072fecbf80c725adf45e7cbdf3d96af3765638a1f1547824706ece4bc9", [:mix], []},
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"},
"postgrex": {:hex, :postgrex, "0.13.3", "c277cfb2a9c5034d445a722494c13359e361d344ef6f25d604c2353185682bfc", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
"scrivener": {:hex, :scrivener, "2.4.0", "c9431804b13ac6a5c4b01eb32188c1ff926898a2d684244d021706841f022e66", [:mix], [], "hexpm"}}
"scrivener": {:hex, :scrivener, "2.4.0", "c9431804b13ac6a5c4b01eb32188c1ff926898a2d684244d021706841f022e66", [:mix], [], "hexpm"},
}
Loading

0 comments on commit ddbf57f

Please sign in to comment.