Browse Source

Accept iodata() when building links

Loïc Hoguin 5 years ago
parent
commit
e6c6ded1ca
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/cow_link.erl

+ 6 - 2
src/cow_link.erl

@@ -355,7 +355,11 @@ resolve_test_() ->
 
 
 %% Build a link header.
 %% Build a link header.
 
 
--spec link([link()]) -> iodata().
+-spec link([#{
+	target := binary(),
+	rel := binary(),
+	attributes := [{binary(), binary()}]
+}]) -> iodata().
 link(Links) ->
 link(Links) ->
 	lists:join(<<", ">>, [do_link(Link) || Link <- Links]).
 	lists:join(<<", ">>, [do_link(Link) || Link <- Links]).
 
 
@@ -363,7 +367,7 @@ do_link(#{target := TargetURI, rel := Rel, attributes := Params}) ->
 	[
 	[
 		$<, TargetURI, <<">"
 		$<, TargetURI, <<">"
 		"; rel=\"">>, Rel, $",
 		"; rel=\"">>, Rel, $",
-		[[<<"; ">>, Key, <<"=\"">>, escape(Value, <<>>), $"]
+		[[<<"; ">>, Key, <<"=\"">>, escape(iolist_to_binary(Value), <<>>), $"]
 			|| {Key, Value} <- Params]
 			|| {Key, Value} <- Params]
 	].
 	].