Skip to content

Commit c627abe

Browse files
Introduce mix format
What does this commit/MR/PR do ? - Introduce mix format Why is this commit/MR/PR needed ? - Linted/standardised code
1 parent aa8a46c commit c627abe

File tree

5 files changed

+79
-70
lines changed

5 files changed

+79
-70
lines changed

.formatter.exs

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
inputs: [
3+
"{lib,config,test}/**/*.{ex,exs}",
4+
"*.{ex,exs}"
5+
]
6+
]

config/config.exs

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use Mix.Config
22

3-
if Mix.env == :test do
4-
config :scrivener_list, Scrivener.Repo,
5-
adapter: Ecto.Adapters.Postgres
6-
end
3+
if Mix.env() == :test do
4+
config :scrivener_list, Scrivener.Repo, adapter: Ecto.Adapters.Postgres
5+
end

lib/scrivener/paginater/list.ex

+14-17
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,43 @@ defimpl Scrivener.Paginater, for: List do
33
alias Scrivener.Config
44
alias Scrivener.Page
55

6-
76
@doc ~s"""
87
Implementation of `Scrivener.Paginater` protocol to extend the `Scrivener.Paginater.paginate/2` function.
98
"""
10-
@spec paginate(any, map | Keyword.t) :: Scrivener.Page.t
9+
@spec paginate(any, map | Keyword.t()) :: Scrivener.Page.t()
1110
def paginate(entries, %Config{page_number: page_number, page_size: page_size}) do
12-
total_entries = length(entries)
13-
14-
%Page{
15-
page_size: page_size,
16-
page_number: page_number,
17-
entries: entries(entries, page_number, page_size),
18-
total_entries: total_entries,
19-
total_pages: total_pages(total_entries, page_size)
20-
}
11+
total_entries = length(entries)
12+
13+
%Page{
14+
page_size: page_size,
15+
page_number: page_number,
16+
entries: entries(entries, page_number, page_size),
17+
total_entries: total_entries,
18+
total_pages: total_pages(total_entries, page_size)
19+
}
2120
end
2221

23-
2422
defp entries(entries, page_number, page_size) do
2523
offset = page_size * (page_number - 1)
2624
Enum.slice(entries, offset, page_size)
2725
end
2826

29-
3027
defp total_pages(total_entries, page_size) do
3128
ceiling(total_entries / page_size)
3229
end
3330

34-
3531
defp ceiling(float) do
3632
t = trunc(float)
3733

3834
case float - t do
3935
neg when neg < 0 ->
4036
t
37+
4138
pos when pos > 0 ->
4239
t + 1
43-
_ -> t
40+
41+
_ ->
42+
t
4443
end
4544
end
46-
47-
4845
end

mix.exs

+20-26
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,39 @@ defmodule Scrivener.List.Mixfile do
77

88
def project do
99
[
10-
app: :scrivener_list,
11-
name: @name,
12-
version: @version,
13-
source_url: @source_url,
14-
homepage_url: @homepage_url,
15-
elixir: "~> 1.3",
16-
build_embedded: Mix.env == :prod,
17-
start_permanent: Mix.env == :prod,
18-
description: description(),
19-
package: package(),
20-
deps: deps(),
21-
docs: docs()
10+
app: :scrivener_list,
11+
name: @name,
12+
version: @version,
13+
source_url: @source_url,
14+
homepage_url: @homepage_url,
15+
elixir: "~> 1.3",
16+
build_embedded: Mix.env() == :prod,
17+
start_permanent: Mix.env() == :prod,
18+
description: description(),
19+
package: package(),
20+
deps: deps(),
21+
docs: docs()
2222
]
2323
end
2424

25-
2625
def application do
2726
[applications: [:logger, :scrivener_ecto]]
2827
end
2928

30-
3129
defp deps() do
3230
[
33-
{:scrivener_ecto, "~> 1.0 or ~> 2.0"},
34-
{:earmark, "~> 1.3", only: :dev},
35-
{:ex_doc, "~> 0.19", only: :dev}
31+
{:scrivener_ecto, "~> 1.0 or ~> 2.0"},
32+
{:earmark, "~> 1.3", only: :dev},
33+
{:ex_doc, "~> 0.19", only: :dev}
3634
]
3735
end
3836

39-
4037
defp description() do
4138
~S"""
4239
A scrivener/scrivener_ecto compatible extension that allows pagination of a list.
4340
"""
4441
end
4542

46-
4743
defp package() do
4844
[
4945
maintainers: ["Stephen Moloney"],
@@ -59,13 +55,11 @@ defmodule Scrivener.List.Mixfile do
5955

6056
defp docs do
6157
[
62-
main: "README.md",
63-
extra_section: "GUIDE",
64-
extras: [
65-
"README.md": [path: "README.md", title: "GUIDE"]
66-
]
58+
main: "README.md",
59+
extra_section: "GUIDE",
60+
extras: [
61+
"README.md": [path: "README.md", title: "GUIDE"]
62+
]
6763
]
6864
end
69-
70-
7165
end

test/scrivener_list_test.exs

+36-23
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
11
defmodule Scrivener.ListTest do
22
use Scrivener.List.TestCase
3-
@languages ["C#", "C++", "Clojure", "Elixir", "Erlang", "Go", "JAVA", "JavaScript", "Lisp",
4-
"PHP", "Perl", "Python", "Ruby", "Rust", "SQL"]
3+
4+
@languages [
5+
"C#",
6+
"C++",
7+
"Clojure",
8+
"Elixir",
9+
"Erlang",
10+
"Go",
11+
"JAVA",
12+
"JavaScript",
13+
"Lisp",
14+
"PHP",
15+
"Perl",
16+
"Python",
17+
"Ruby",
18+
"Rust",
19+
"SQL"
20+
]
521
@total_entries length(@languages)
622
@config %Scrivener.Config{page_number: 2, page_size: 4}
723

8-
924
describe "paginate when using a repo module" do
1025
test "can paginate a list using a Repo module - 1" do
1126
page = Scrivener.Repo.paginate(@languages)
@@ -14,7 +29,7 @@ defmodule Scrivener.ListTest do
1429
assert page.page_number == 1
1530
assert page.entries == ["C#", "C++", "Clojure", "Elixir", "Erlang"]
1631
assert page.total_entries == @total_entries
17-
assert page.total_pages == Float.ceil(length(@languages)/5)
32+
assert page.total_pages == Float.ceil(length(@languages) / 5)
1833
end
1934

2035
test "can paginate a list using a Repo module - 2" do
@@ -25,7 +40,7 @@ defmodule Scrivener.ListTest do
2540
assert page.page_size == 5
2641
assert page.entries == ["C#", "C++", "Clojure"]
2742
assert page.total_entries == 3
28-
assert page.total_pages == Float.ceil(length(languages)/5)
43+
assert page.total_pages == Float.ceil(length(languages) / 5)
2944
end
3045

3146
test "can paginate a list when provided the current page and page size as a params map" do
@@ -35,7 +50,7 @@ defmodule Scrivener.ListTest do
3550
assert page.page_number == 2
3651
assert page.entries == ["Elixir", "Erlang", "Go"]
3752
assert page.total_entries == @total_entries
38-
assert page.total_pages == Float.ceil(length(@languages)/3)
53+
assert page.total_pages == Float.ceil(length(@languages) / 3)
3954
end
4055

4156
test "can paginate a list when only provided with the page size as a keyword list
@@ -45,7 +60,7 @@ defmodule Scrivener.ListTest do
4560
assert page.page_size == 3
4661
assert page.page_number == 1
4762
assert page.entries == ["C#", "C++", "Clojure"]
48-
assert page.total_pages == Float.ceil(length(@languages)/3)
63+
assert page.total_pages == Float.ceil(length(@languages) / 3)
4964
assert page.total_entries == @total_entries
5065
end
5166

@@ -56,23 +71,23 @@ defmodule Scrivener.ListTest do
5671
assert page.page_size == 5
5772
assert page.page_number == 2
5873
assert page.entries == ["Go", "JAVA", "JavaScript", "Lisp", "PHP"]
59-
assert page.total_pages == Float.ceil(length(@languages)/5)
74+
assert page.total_pages == Float.ceil(length(@languages) / 5)
6075
assert page.total_entries == @total_entries
6176
end
6277

6378
test "can respect a max_page_size configuration" do
6479
page = Scrivener.Repo.paginate(@languages, page: 2, page_size: 200)
6580

6681
assert page.page_size < 200
67-
assert page.page_size == 10 # this is the max_page_size set in the Repo `use` statement.
82+
# this is the max_page_size set in the Repo `use` statement.
83+
assert page.page_size == 10
6884
assert page.page_number == 2
69-
assert page.entries == ["Perl", "Python", "Ruby", "Rust", "SQL"]
70-
assert page.total_pages == Float.ceil(length(@languages)/10)
85+
assert page.entries == ["Perl", "Python", "Ruby", "Rust", "SQL"]
86+
assert page.total_pages == Float.ceil(length(@languages) / 10)
7187
assert page.total_entries == @total_entries
7288
end
7389
end
7490

75-
7691
describe "paginate without using a repo module" do
7792
test "can paginate a list when passed a Scrivener.Config. t directly - 1" do
7893
page = Scrivener.paginate(@languages, @config)
@@ -81,7 +96,7 @@ defmodule Scrivener.ListTest do
8196
assert page.page_size == 4
8297
assert page.entries == ["Erlang", "Go", "JAVA", "JavaScript"]
8398
assert page.total_entries == @total_entries
84-
assert page.total_pages == Float.ceil(length(@languages)/4)
99+
assert page.total_pages == Float.ceil(length(@languages) / 4)
85100
end
86101

87102
test "can paginate a list when passed a Scrivener.Config. t directly - 2" do
@@ -92,7 +107,7 @@ defmodule Scrivener.ListTest do
92107
assert page.page_size == 4
93108
assert page.entries == []
94109
assert page.total_entries == 3
95-
assert page.total_pages == Float.ceil(length(languages)/4)
110+
assert page.total_pages == Float.ceil(length(languages) / 4)
96111
end
97112

98113
test "can paginate a list when provided the current page and page size as a params map" do
@@ -102,7 +117,7 @@ defmodule Scrivener.ListTest do
102117
assert page.page_number == 2
103118
assert page.entries == ["Elixir", "Erlang", "Go"]
104119
assert page.total_entries == @total_entries
105-
assert page.total_pages == Float.ceil(length(@languages)/3)
120+
assert page.total_pages == Float.ceil(length(@languages) / 3)
106121
end
107122

108123
test "can paginate a list when provided the current page and page size as a keyword list" do
@@ -111,7 +126,7 @@ defmodule Scrivener.ListTest do
111126
assert page.page_size == 3
112127
assert page.page_number == 2
113128
assert page.entries == ["Elixir", "Erlang", "Go"]
114-
assert page.total_pages == Float.ceil(length(@languages)/3)
129+
assert page.total_pages == Float.ceil(length(@languages) / 3)
115130
assert page.total_entries == @total_entries
116131
end
117132

@@ -122,7 +137,7 @@ defmodule Scrivener.ListTest do
122137
assert page.page_size == 3
123138
assert page.page_number == 1
124139
assert page.entries == ["C#", "C++", "Clojure"]
125-
assert page.total_pages == Float.ceil(length(@languages)/3)
140+
assert page.total_pages == Float.ceil(length(@languages) / 3)
126141
assert page.total_entries == @total_entries
127142
end
128143

@@ -132,8 +147,8 @@ defmodule Scrivener.ListTest do
132147

133148
assert page.page_size == 10
134149
assert page.page_number == 2
135-
assert page.entries == [ "Perl", "Python", "Ruby", "Rust", "SQL"]
136-
assert page.total_pages == Float.ceil(length(@languages)/10)
150+
assert page.entries == ["Perl", "Python", "Ruby", "Rust", "SQL"]
151+
assert page.total_pages == Float.ceil(length(@languages) / 10)
137152
assert page.total_entries == @total_entries
138153
end
139154

@@ -143,7 +158,7 @@ defmodule Scrivener.ListTest do
143158
assert page.page_size == 10
144159
assert page.page_number == 2
145160
assert page.entries == ["Perl", "Python", "Ruby", "Rust", "SQL"]
146-
assert page.total_pages == Float.ceil(length(@languages)/10)
161+
assert page.total_pages == Float.ceil(length(@languages) / 10)
147162
assert page.total_entries == @total_entries
148163
end
149164

@@ -153,10 +168,8 @@ defmodule Scrivener.ListTest do
153168
refute page.page_size < 200
154169
assert page.page_number == 2
155170
assert page.entries == []
156-
assert page.total_pages == Float.ceil(length(@languages)/200)
171+
assert page.total_pages == Float.ceil(length(@languages) / 200)
157172
assert page.total_entries == @total_entries
158173
end
159174
end
160-
161-
162175
end

0 commit comments

Comments
 (0)