Browse Source

Introduce cowboy_http:media_type/2

Anthony Ramine 13 years ago
parent
commit
b184b3588d
1 changed files with 16 additions and 7 deletions
  1. 16 7
      src/cowboy_http.erl

+ 16 - 7
src/cowboy_http.erl

@@ -70,13 +70,9 @@ list(Data, Fun, Acc) ->
 %% @doc Parse a media range.
 -spec media_range(binary(), fun()) -> any().
 media_range(Data, Fun) ->
-	token_ci(Data,
-		fun (_Rest, <<>>) -> {error, badarg};
-			(<< $/, Rest/bits >>, Type) -> token_ci(Rest,
-				fun (_Rest2, <<>>) -> {error, badarg};
-					(Rest2, SubType) ->
-						media_range_params(Rest2, Fun, Type, SubType, [])
-				end)
+	media_type(Data,
+		fun (Rest, Type, SubType) ->
+			media_range_params(Rest, Fun, Type, SubType, [])
 		end).
 
 -spec media_range_params(binary(), fun(), binary(), binary(),
@@ -114,6 +110,19 @@ media_range_param_value(Data, Fun, Type, SubType, Acc, Attr) ->
 				Type, SubType, [{Attr, Value}|Acc])
 		end).
 
+%% @doc Parse a media type.
+-spec media_type(binary(), fun()) -> any().
+media_type(Data, Fun) ->
+	token_ci(Data,
+		fun (_Rest, <<>>) -> {error, badarg};
+			(<< $/, Rest/bits >>, Type) ->
+				token_ci(Rest,
+					fun (_Rest2, <<>>) -> {error, badarg};
+						(Rest2, SubType) -> Fun(Rest2, Type, SubType)
+					end);
+			(_Rest, _Type) -> {error, badarg}
+		end).
+
 -spec accept_ext(binary(), fun(), binary(), binary(),
 	[{binary(), binary()}], 0..1000,
 	[{binary(), binary()} | binary()]) -> any().