Просмотр исходного кода

update cowboy_http_rest:variances/2

Fix pattern in case statement that was intended
to strip away the first comma separating the
values in the variance header.

Update generation of variance list to use more
idiomatic erlang. Pattern match on list structure
over using erlang:length/1 to compute length.
Magnus Klaar 13 лет назад
Родитель
Сommit
2644a6cacc
1 измененных файлов с 15 добавлено и 15 удалено
  1. 15 15
      src/cowboy_http_rest.erl

+ 15 - 15
src/cowboy_http_rest.erl

@@ -398,20 +398,20 @@ not_acceptable(Req, State) ->
 %% @todo Does the order matter?
 variances(Req, State=#state{content_types_p=CTP,
 		languages_p=LP, charsets_p=CP}) ->
-	Variances = case length(CTP) of
-		0 -> [];
-		1 -> [];
-		_NCT -> [<<"Accept">>]
+	Variances = case CTP of
+		[] -> [];
+		[_] -> [];
+		[_|_] -> [<<"Accept">>]
 	end,
-	Variances2 = case length(LP) of
-		0 -> Variances;
-		1 -> Variances;
-		_NL -> [<<"Accept-Language">>|Variances]
+	Variances2 = case LP of
+		[] -> Variances;
+		[_] -> Variances;
+		[_|_] -> [<<"Accept-Language">>|Variances]
 	end,
-	Variances3 = case length(CP) of
-		0 -> Variances2;
-		1 -> Variances2;
-		_NC -> [<<"Accept-Charset">>|Variances2]
+	Variances3 = case CP of
+		[] -> Variances2;
+		[_] -> Variances2;
+		[_|_] -> [<<"Accept-Charset">>|Variances2]
 	end,
 	{Variances4, Req3, State2} = case call(Req, State, variances) of
 		no_call ->
@@ -420,12 +420,12 @@ variances(Req, State=#state{content_types_p=CTP,
 			{Variances3 ++ HandlerVariances, Req2,
 				State#state{handler_state=HandlerState}}
 	end,
-	case lists:flatten([[<<", ">>, V] || V <- Variances4]) of
+	case [[<<", ">>, V] || V <- Variances4] of
 		[] ->
 			resource_exists(Req3, State2);
-		[<<", ">>, Variances5] ->
+		[[<<", ">>, H]|Variances5] ->
 			{ok, Req4} = cowboy_http_req:set_resp_header(
-				<<"Variances">>, Variances5, Req3),
+				<<"Variances">>, [H|Variances5], Req3),
 			resource_exists(Req4, State2)
 	end.