0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00

Use calendar date and time types exported since R14B04

Removes the cowboy_clock:date/0, time/0 and datetime/0 exported types.
This commit is contained in:
Loïc Hoguin 2011-12-26 10:13:30 +01:00
parent 52c177fa6f
commit 156c84ff29
4 changed files with 16 additions and 27 deletions

View file

@ -53,7 +53,11 @@ CHANGELOG
More specifically, /bits was replaced by /binary. More specifically, /bits was replaced by /binary.
* Rename the type cowboy_dispatcher:path_tokens/0 to :tokens/0 * Rename the type cowboy_dispatcher:path_tokens/0 to tokens/0
* Remove the cowboy_clock:date/0, time/0 and datetime/0 types
The calendar module exports those same types properly since R14B04.
* Add cacertfile configuration option to cowboy_ssl_transport * Add cacertfile configuration option to cowboy_ssl_transport

View file

@ -25,23 +25,8 @@
-export([init/1, handle_call/3, handle_cast/2, -export([init/1, handle_call/3, handle_cast/2,
handle_info/2, terminate/2, code_change/3]). %% gen_server. handle_info/2, terminate/2, code_change/3]). %% gen_server.
%% @todo Use calendar types whenever they get exported.
-type year() :: non_neg_integer().
-type month() :: 1..12.
-type day() :: 1..31.
-type hour() :: 0..23.
-type minute() :: 0..59.
-type second() :: 0..59.
-type daynum() :: 1..7.
-type date() :: {year(), month(), day()}.
-type time() :: {hour(), minute(), second()}.
-type datetime() :: {date(), time()}.
-export_type([date/0, time/0, datetime/0]).
-record(state, { -record(state, {
universaltime = undefined :: undefined | datetime(), universaltime = undefined :: undefined | calendar:datetime(),
rfc1123 = <<>> :: binary(), rfc1123 = <<>> :: binary(),
tref = undefined :: undefined | timer:tref() tref = undefined :: undefined | timer:tref()
}). }).
@ -74,7 +59,7 @@ rfc1123() ->
%% %%
%% This format is used in the <em>'Set-Cookie'</em> header sent with %% This format is used in the <em>'Set-Cookie'</em> header sent with
%% HTTP responses. %% HTTP responses.
-spec rfc2109(datetime()) -> binary(). -spec rfc2109(calendar:datetime()) -> binary().
rfc2109(LocalTime) -> rfc2109(LocalTime) ->
{{YYYY,MM,DD},{Hour,Min,Sec}} = {{YYYY,MM,DD},{Hour,Min,Sec}} =
case calendar:local_time_to_universal_time_dst(LocalTime) of case calendar:local_time_to_universal_time_dst(LocalTime) of
@ -145,7 +130,8 @@ code_change(_OldVsn, State, _Extra) ->
%% Internal. %% Internal.
-spec update_rfc1123(binary(), undefined | datetime(), datetime()) -> binary(). -spec update_rfc1123(binary(), undefined | calendar:datetime(),
calendar:datetime()) -> binary().
update_rfc1123(Bin, Now, Now) -> update_rfc1123(Bin, Now, Now) ->
Bin; Bin;
update_rfc1123(<< Keep:23/binary, _/bits >>, update_rfc1123(<< Keep:23/binary, _/bits >>,
@ -184,7 +170,7 @@ pad_int(X) when X < 10 ->
pad_int(X) -> pad_int(X) ->
list_to_binary(integer_to_list(X)). list_to_binary(integer_to_list(X)).
-spec weekday(daynum()) -> <<_:24>>. -spec weekday(1..7) -> <<_:24>>.
weekday(1) -> <<"Mon">>; weekday(1) -> <<"Mon">>;
weekday(2) -> <<"Tue">>; weekday(2) -> <<"Tue">>;
weekday(3) -> <<"Wed">>; weekday(3) -> <<"Wed">>;
@ -193,7 +179,7 @@ weekday(5) -> <<"Fri">>;
weekday(6) -> <<"Sat">>; weekday(6) -> <<"Sat">>;
weekday(7) -> <<"Sun">>. weekday(7) -> <<"Sun">>.
-spec month(month()) -> <<_:24>>. -spec month(1..12) -> <<_:24>>.
month( 1) -> <<"Jan">>; month( 1) -> <<"Jan">>;
month( 2) -> <<"Feb">>; month( 2) -> <<"Feb">>;
month( 3) -> <<"Mar">>; month( 3) -> <<"Mar">>;

View file

@ -23,7 +23,7 @@
-type kv() :: {Name::binary(), Value::binary()}. -type kv() :: {Name::binary(), Value::binary()}.
-type kvlist() :: [kv()]. -type kvlist() :: [kv()].
-type cookie_option() :: {max_age, integer()} -type cookie_option() :: {max_age, integer()}
| {local_time, {cowboy_clock:date(), cowboy_clock:time()}} | {local_time, calendar:datetime()}
| {domain, binary()} | {path, binary()} | {domain, binary()} | {path, binary()}
| {secure, true | false} | {http_only, true | false}. | {secure, true | false} | {http_only, true | false}.
-export_type([kv/0, kvlist/0, cookie_option/0]). -export_type([kv/0, kvlist/0, cookie_option/0]).
@ -171,13 +171,12 @@ quote(V0) ->
V V
end. end.
-spec add_seconds(integer(), cowboy_clock:datetime()) -spec add_seconds(integer(), calendar:datetime()) -> calendar:datetime().
-> cowboy_clock:datetime().
add_seconds(Secs, LocalTime) -> add_seconds(Secs, LocalTime) ->
Greg = calendar:datetime_to_gregorian_seconds(LocalTime), Greg = calendar:datetime_to_gregorian_seconds(LocalTime),
calendar:gregorian_seconds_to_datetime(Greg + Secs). calendar:gregorian_seconds_to_datetime(Greg + Secs).
-spec age_to_cookie_date(integer(), cowboy_clock:datetime()) -> binary(). -spec age_to_cookie_date(integer(), calendar:datetime()) -> binary().
age_to_cookie_date(Age, LocalTime) -> age_to_cookie_date(Age, LocalTime) ->
cowboy_clock:rfc2109(add_seconds(Age, LocalTime)). cowboy_clock:rfc2109(add_seconds(Age, LocalTime)).

View file

@ -42,8 +42,8 @@
%% Cached resource calls. %% Cached resource calls.
etag :: undefined | no_call | binary(), etag :: undefined | no_call | binary(),
last_modified :: undefined | no_call | cowboy_clock:datetime(), last_modified :: undefined | no_call | calendar:datetime(),
expires :: undefined | no_call | cowboy_clock:datetime() expires :: undefined | no_call | calendar:datetime()
}). }).
-include("include/http.hrl"). -include("include/http.hrl").