Skip to content

Commit 8a658ea

Browse files
committed
Refactor
1 parent bbef004 commit 8a658ea

File tree

5 files changed

+20
-22
lines changed

5 files changed

+20
-22
lines changed

lib/mudbrick.ex

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,16 @@ defmodule Mudbrick do
115115
|> Integer.to_string(16)
116116
|> String.pad_leading(4, "0")
117117
end
118+
119+
def join(a, separator \\ " ")
120+
121+
def join(tuple, separator) when is_tuple(tuple) do
122+
tuple
123+
|> Tuple.to_list()
124+
|> join(separator)
125+
end
126+
127+
def join(list, separator) do
128+
Enum.map_join(list, separator, &Mudbrick.Object.from/1)
129+
end
118130
end

lib/mudbrick/content_stream.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ defmodule Mudbrick.ContentStream do
121121
"BT\n",
122122
content_stream.operations
123123
|> Enum.reverse()
124-
|> Enum.map_join("\n", &Mudbrick.Object.from/1),
124+
|> Mudbrick.join("\n"),
125125
"\nET"
126126
]
127127
)

lib/mudbrick/font/cmap.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ defmodule Mudbrick.Font.CMap do
2020
12 dict begin
2121
begincmap
2222
/CIDSystemInfo
23-
<< /Registry (Adobe)
24-
/Ordering (UCS)
25-
/Supplement 0
23+
<</Registry (Adobe)
24+
/Ordering (UCS)
25+
/Supplement 0
2626
>> def
2727
/CMapName /Adobe-Identity-UCS def
2828
/CMapType 2 def

lib/mudbrick/serialisation/object.ex

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,7 @@ end
6666

6767
defimpl Mudbrick.Object, for: List do
6868
def from(list) do
69-
[
70-
?[,
71-
list
72-
|> Enum.map(&Mudbrick.Object.from(&1))
73-
|> Enum.intersperse(?\s),
74-
?]
75-
]
69+
[?[, Mudbrick.join(list), ?]]
7670
end
7771
end
7872

@@ -94,12 +88,6 @@ defimpl Mudbrick.Object, for: Map do
9488
end
9589

9690
defp format_kvs(kvs) do
97-
kvs
98-
|> Enum.map(fn {k, v} -> pair(k, v) end)
99-
|> Enum.intersperse("\n ")
100-
end
101-
102-
defp pair(k, v) do
103-
[Mudbrick.Object.from(k), ?\s, Mudbrick.Object.from(v)]
91+
Enum.map_join(kvs, "\n ", &Mudbrick.join/1)
10492
end
10593
end

test/mudbrick/content_stream_test.exs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ defmodule Mudbrick.ContentStreamTest do
66
alias Mudbrick.ContentStream.Tj
77
alias Mudbrick.Font
88
alias Mudbrick.Indirect
9-
alias Mudbrick.Object
109

1110
@font_data System.fetch_env!("FONT_LIBRE_BODONI_REGULAR") |> File.read!()
1211

@@ -110,8 +109,7 @@ defmodule Mudbrick.ContentStreamTest do
110109
ops
111110
|> Enum.take(n)
112111
|> Enum.reverse()
113-
|> Enum.map_join("\n", fn op ->
114-
Object.from(op) |> to_string()
115-
end)
112+
|> Mudbrick.join("\n")
113+
|> to_string()
116114
end
117115
end

0 commit comments

Comments
 (0)