Skip to content

Commit da6b48d

Browse files
committed
Change attachment parameter format to upcoming version of gen_smtp; elixir-refmt
1 parent 0ce70fb commit da6b48d

File tree

8 files changed

+901
-850
lines changed

8 files changed

+901
-850
lines changed

lib/mailman/attachment.ex

Lines changed: 693 additions & 682 deletions
Large diffs are not rendered by default.

lib/mailman/render.ex

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,21 @@ defmodule Mailman.Render do
100100
end
101101

102102
def parameters_for({:attachment, _body, attachment}) do
103-
[
104-
{"transfer-encoding", "base64"},
105-
{"content-type-params", []},
106-
{"disposition", attachment.disposition},
107-
{"disposition-params", [{"filename", attachment.file_name}]}
108-
]
103+
%{
104+
transfer_encoding: "base64",
105+
content_type_params: [],
106+
disposition: attachment.disposition,
107+
disposition_params: [{"filename", attachment.file_name}]
108+
}
109109
end
110110

111111
def parameters_for(_part) do
112-
[
113-
{"transfer-encoding", "quoted-printable"},
114-
{"content-type-params", []},
115-
{"disposition", "inline"},
116-
{"disposition-params", []}
117-
]
112+
%{
113+
transfer_encoding: "quoted-printable",
114+
content_type_params: [],
115+
disposition: "inline",
116+
disposition_params: [],
117+
}
118118
end
119119

120120
def headers_for({:plain, _body}), do: []

mix.exs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,21 @@ defmodule Mailman.Mixfile do
2020
[applications: [:ssl, :crypto, :eiconv, :gen_smtp, :httpotion]]
2121
end
2222

23+
# Note that :eiconv encoder/decoder is used by gen_smtp as well,
24+
# and will not be replaced by the newer iconv (see https://github.com/gen-smtp/gen_smtp/issues/95)
25+
#
26+
# If the eiconv NIF fails to compile, try updating rebar:
27+
#> mix local.rebar
28+
#> rm -rf deps
29+
#> rm -rf _build
30+
#> mix deps.get
31+
#> mix
32+
2333
# Returns the list of dependencies in the format:
2434
defp deps do
2535
[
2636
{:eiconv, "~> 1.0.0"},
27-
{:gen_smtp, "~> 0.14.0"},
37+
{:gen_smtp, "~> 0.15.0"},
2838
{:ex_doc, ">= 0.19.1", only: :dev},
2939
{:httpotion, "~> 3.1.0"},
3040
{:credo, "~> 0.10", only: [:dev, :test], runtime: false}

mix.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"earmark": {:hex, :earmark, "1.3.0", "17f0c38eaafb4800f746b457313af4b2442a8c2405b49c645768680f900be603", [:mix], [], "hexpm"},
55
"eiconv": {:hex, :eiconv, "1.0.0", "ee1e47ee37799a05beff7a68d61f63cccc93101833c4fb94b454c23b12a21629", [:rebar3], []},
66
"ex_doc": {:hex, :ex_doc, "0.19.1", "519bb9c19526ca51d326c060cb1778d4a9056b190086a8c6c115828eaccea6cf", [:mix], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.7", [hex: :makeup_elixir, repo: "hexpm", optional: false]}], "hexpm"},
7-
"gen_smtp": {:hex, :gen_smtp, "0.14.0", "39846a03522456077c6429b4badfd1d55e5e7d0fdfb65e935b7c5e38549d9202", [:rebar3], [], "hexpm"},
7+
"gen_smtp": {:hex, :gen_smtp, "0.15.0", "9f51960c17769b26833b50df0b96123605a8024738b62db747fece14eb2fbfcc", [:rebar3], [], "hexpm"},
88
"httpotion": {:hex, :httpotion, "3.1.0", "14d20d9b0ce4e86e253eb91e4af79e469ad949f57a5d23c0a51b2f86559f6589", [:mix], [{:ibrowse, "~> 4.4", [hex: :ibrowse, optional: false]}]},
99
"ibrowse": {:hex, :ibrowse, "4.4.0", "2d923325efe0d2cb09b9c6a047b2835a5eda69d8a47ed6ff8bc03628b764e991", [:rebar3], []},
1010
"jason": {:hex, :jason, "1.1.1", "d3ccb840dfb06f2f90a6d335b536dd074db748b3e7f5b11ab61d239506585eb2", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, optional: true]}]},

test/attachments_test.exs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule AttachmentsTest do
22
use ExUnit.Case, async: true
33

44
test "#inline returns { :ok, attachment } when file exists" do
5-
{ :ok, attachment } = Mailman.Attachment.inline("test/data/blank.png")
5+
{:ok, attachment} = Mailman.Attachment.inline("test/data/blank.png")
66
assert is_map(attachment)
77
end
88

@@ -11,7 +11,6 @@ defmodule AttachmentsTest do
1111
{:error, _} = Mailman.Attachment.inline(file_path)
1212
end
1313

14-
1514
test "Attachment with a different disposition filename" do
1615
{:ok, attachment} = Mailman.Attachment.inline("test/data/blank.png", "another_name.png")
1716
assert attachment.file_name == "another_name.png"
@@ -26,14 +25,23 @@ defmodule AttachmentsTest do
2625
end
2726

2827
test "#mime_types returns the list of 648 types" do
29-
assert Enum.count(Mailman.Attachment.mime_types) == 648
28+
assert Enum.count(Mailman.Attachment.mime_types()) == 648
3029
end
3130

3231
test "mime type getter returns proper type" do
33-
assert Mailman.Attachment.mime_type_and_subtype_from_extension("image.gif") == {"image", "gif"}
34-
assert Mailman.Attachment.mime_type_and_subtype_from_extension("image.png") == {"image", "png"}
35-
assert Mailman.Attachment.mime_type_and_subtype_from_extension("invoice.pdf") == {"application", "pdf"}
36-
assert Mailman.Attachment.mime_type_and_subtype_from_extension("file.strange") == {"application", "octet-stream"}
37-
assert Mailman.Attachment.mime_type_and_subtype_from_extension("settings.mobileconfig") == {"application", "x-apple-aspen-config"}
32+
assert Mailman.Attachment.mime_type_and_subtype_from_extension("image.gif") ==
33+
{"image", "gif"}
34+
35+
assert Mailman.Attachment.mime_type_and_subtype_from_extension("image.png") ==
36+
{"image", "png"}
37+
38+
assert Mailman.Attachment.mime_type_and_subtype_from_extension("invoice.pdf") ==
39+
{"application", "pdf"}
40+
41+
assert Mailman.Attachment.mime_type_and_subtype_from_extension("file.strange") ==
42+
{"application", "octet-stream"}
43+
44+
assert Mailman.Attachment.mime_type_and_subtype_from_extension("settings.mobileconfig") ==
45+
{"application", "x-apple-aspen-config"}
3846
end
3947
end

test/config_test.exs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,4 @@ defmodule Mailman.ConfigTest do
4747
Application.delete_env(:mailman, :adapter)
4848
Application.delete_env(:mailman, :some_config)
4949
end
50-
5150
end

test/data_encoding_test.exs

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ defmodule DataEncodingTest do
77
Litwo! Ojczyzno moja! Ty jesteś jak zdrowie.
88
99
Ile cię stracił. Dziś piękność twą w domu i czuł,
10-
że teraz Napoleon, człek mądry a
11-
potem najwyższych krajowych zamieszków. Dobra, całe wesoło, lecz w zastępstwie gospodarza, gdy je posłyszał, znikał nagle taż chętka, nie będziesz przy jego poznać nie miał wielką, i rozprawiali, nieco wylotów kontusza nalał
12-
węgrzyna i swoją ważność zarazem poznaje. jak światłość miesiąca. Nucąc chwyciła suknie, biegła bardzo szybko, suwała się ramieniu. Przeprosiwszy go powitać. Dawno domu lasami i Obuchowicz Piotrowski, Obolewski, Rożycki, Janowicz, Mirzejewscy, Brochocki i kłopotach, i zdrowie.
10+
że teraz Napoleon, człek mądry a
11+
potem najwyższych krajowych zamieszków. Dobra, całe wesoło, lecz w zastępstwie gospodarza, gdy je posłyszał, znikał nagle taż chętka, nie będziesz przy jego poznać nie miał wielką, i rozprawiali, nieco wylotów kontusza nalał
12+
węgrzyna i swoją ważność zarazem poznaje. jak światłość miesiąca. Nucąc chwyciła suknie, biegła bardzo szybko, suwała się ramieniu. Przeprosiwszy go powitać. Dawno domu lasami i Obuchowicz Piotrowski, Obolewski, Rożycki, Janowicz, Mirzejewscy, Brochocki i kłopotach, i zdrowie.
1313
1414
Nazywał się nagle, stronnicy Sokół na Francuza. oj, ten Bonapart czarował, no, tak mędrsi fircykom oprzeć się Soplica. wszyscy za pierwszym na świecie jeśli nasza młodzie wyjeżdża za duszę jego upadkiem domy i w klasztorze.
15-
Ciszę przerywał ale powiedzieć nie był zacietrzewiony jak refektarz, z nowych gości. W końcu, stawiła przed młodzieżą o ten Bonapart figurka! Bez Suworowa to mówiąc, że serce mu przed ganek zajechał któryś z woźnym
15+
Ciszę przerywał ale powiedzieć nie był zacietrzewiony jak refektarz, z nowych gości. W końcu, stawiła przed młodzieżą o ten Bonapart figurka! Bez Suworowa to mówiąc, że serce mu przed ganek zajechał któryś z woźnym
1616
17-
Protazym ze srebrnymi klamrami trzewiki peruka z których by to mówiąc, że serce niewinne ale nigdzie nie chciał, według nowej.
17+
Protazym ze srebrnymi klamrami trzewiki peruka z których by to mówiąc, że serce niewinne ale nigdzie nie chciał, według nowej.
1818
1919
"""
2020
end
@@ -24,31 +24,31 @@ Protazym ze srebrnymi klamrami trzewiki peruka z których by to mówiąc, że se
2424
Litwo! Ojczyzno moja! Ty jeste=C5=9B jak zdrowie. =
2525
2626
Ile ci=C4=99 straci=C5=82. Dzi=C5=9B pi=C4=99kno=C5=9B=C4=87 tw=C4=85 w=
27-
domu i czu=C5=82, =
28-
=C5=BCe teraz Napoleon, cz=C5=82ek m=C4=85dry a =
29-
potem najwy=C5=BCszych krajowych zamieszk=C3=B3w. Dobra, ca=C5=82e weso=C5=
30-
=82o, lecz w zast=C4=99pstwie gospodarza, gdy je pos=C5=82ysza=C5=82, znika=
31-
=C5=82 nagle ta=C5=BC ch=C4=99tka, nie b=C4=99dziesz przy jego pozna=C4=87 =
32-
nie mia=C5=82 wielk=C4=85, i rozprawiali, nieco wylot=C3=B3w kontusza nala=
33-
=C5=82 =
34-
w=C4=99grzyna i swoj=C4=85 wa=C5=BCno=C5=9B=C4=87 zarazem poznaje. jak =C5=
35-
=9Bwiat=C5=82o=C5=9B=C4=87 miesi=C4=85ca. Nuc=C4=85c chwyci=C5=82a suknie, =
36-
bieg=C5=82a bardzo szybko, suwa=C5=82a si=C4=99 ramieniu. Przeprosiwszy go =
37-
powita=C4=87. Dawno domu lasami i Obuchowicz Piotrowski, Obolewski, Ro=C5=BC
38-
ycki, Janowicz, Mirzejewscy, Brochocki i k=C5=82opotach, i zdrowie. =
27+
domu i czu=C5=82, =
28+
=C5=BCe teraz Napoleon, cz=C5=82ek m=C4=85dry a =
29+
potem najwy=C5=BCszych krajowych zamieszk=C3=B3w. Dobra, ca=C5=82e weso=C5=
30+
=82o, lecz w zast=C4=99pstwie gospodarza, gdy je pos=C5=82ysza=C5=82, znika=
31+
=C5=82 nagle ta=C5=BC ch=C4=99tka, nie b=C4=99dziesz przy jego pozna=C4=87 =
32+
nie mia=C5=82 wielk=C4=85, i rozprawiali, nieco wylot=C3=B3w kontusza nala=
33+
=C5=82 =
34+
w=C4=99grzyna i swoj=C4=85 wa=C5=BCno=C5=9B=C4=87 zarazem poznaje. jak =C5=
35+
=9Bwiat=C5=82o=C5=9B=C4=87 miesi=C4=85ca. Nuc=C4=85c chwyci=C5=82a suknie, =
36+
bieg=C5=82a bardzo szybko, suwa=C5=82a si=C4=99 ramieniu. Przeprosiwszy go =
37+
powita=C4=87. Dawno domu lasami i Obuchowicz Piotrowski, Obolewski, Ro=C5=BC
38+
ycki, Janowicz, Mirzejewscy, Brochocki i k=C5=82opotach, i zdrowie. =
3939
4040
Nazywa=C5=82 si=C4=99 nagle, stronnicy Sok=C3=B3=C5=82 na Francuza. oj,=
41-
ten Bonapart czarowa=C5=82, no, tak m=C4=99drsi fircykom oprze=C4=87 si=C4=
42-
=99 Soplica. wszyscy za pierwszym na =C5=9Bwiecie je=C5=9Bli nasza m=C5=82o=
43-
dzie wyje=C5=BCd=C5=BCa za dusz=C4=99 jego upadkiem domy i w klasztorze. =
44-
Cisz=C4=99 przerywa=C5=82 ale powiedzie=C4=87 nie by=C5=82 zacietrzewiony j=
45-
ak refektarz, z nowych go=C5=9Bci. W ko=C5=84cu, stawi=C5=82a przed m=C5=82=
46-
odzie=C5=BC=C4=85 o ten Bonapart figurka! Bez Suworowa to m=C3=B3wi=C4=85c,=
47-
=C5=BCe serce mu przed ganek zajecha=C5=82 kt=C3=B3ry=C5=9B z wo=C5=BAnym =
41+
ten Bonapart czarowa=C5=82, no, tak m=C4=99drsi fircykom oprze=C4=87 si=C4=
42+
=99 Soplica. wszyscy za pierwszym na =C5=9Bwiecie je=C5=9Bli nasza m=C5=82o=
43+
dzie wyje=C5=BCd=C5=BCa za dusz=C4=99 jego upadkiem domy i w klasztorze. =
44+
Cisz=C4=99 przerywa=C5=82 ale powiedzie=C4=87 nie by=C5=82 zacietrzewiony j=
45+
ak refektarz, z nowych go=C5=9Bci. W ko=C5=84cu, stawi=C5=82a przed m=C5=82=
46+
odzie=C5=BC=C4=85 o ten Bonapart figurka! Bez Suworowa to m=C3=B3wi=C4=85c,=
47+
=C5=BCe serce mu przed ganek zajecha=C5=82 kt=C3=B3ry=C5=9B z wo=C5=BAnym =
4848
49-
Protazym ze srebrnymi klamrami trzewiki peruka z kt=C3=B3rych by to m=C3=B3=
50-
wi=C4=85c, =C5=BCe serce niewinne ale nigdzie nie chcia=C5=82, wed=C5=82ug =
51-
nowej.
49+
Protazym ze srebrnymi klamrami trzewiki peruka z kt=C3=B3rych by to m=C3=B3=
50+
wi=C4=85c, =C5=BCe serce niewinne ale nigdzie nie chcia=C5=82, wed=C5=82ug =
51+
nowej.
5252
5353
"""
5454
end
@@ -63,12 +63,11 @@ nowej.
6363

6464
test "#quotes_from/1 returns text with lines not longer than 76 characters" do
6565
# Enum.each String.split(DataEncoding.quoted_from(testing_string), "\n"), fn(l) ->
66-
# assert String.length(l) <= 76
67-
#end
66+
# assert String.length(l) <= 76
67+
# end
6868
end
6969

7070
test "#quoted_from/1 replaces spaces and tabs at the end of the line properly" do
71-
#assert DataEncoding.quoted_from("Lorem ipsum \ndolor sit amet\t\nYYyyyy") == "Lorem ipsum=20\r\ndolor sit amet=09\r\nYYyyyy"
71+
# assert DataEncoding.quoted_from("Lorem ipsum \ndolor sit amet\t\nYYyyyy") == "Lorem ipsum=20\r\ndolor sit amet=09\r\nYYyyyy"
7272
end
73-
7473
end

0 commit comments

Comments
 (0)