Added proper LGPL statements to all files.
[perl4caml.git] / wrappers / pl_Date_Format.ml
1 (** Wrapper around Perl [Date::Format] class. *)
2 (*  Copyright (C) 2003 Merjis Ltd.
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this library; see the file COPYING.  If not, write to
16     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17     Boston, MA 02111-1307, USA.
18
19     $Id: pl_Date_Format.ml,v 1.2 2008-03-01 13:02:21 rich Exp $
20   *)
21
22 open Perl
23
24 let _ = eval "use Date::Format qw()"
25
26 let language lang =
27   call_class_method_void "Date::Format" "language" [sv_of_string lang]
28
29 (* This is just provided for your convenience so you can pass the resulting
30  * list of SVs directly to the second argument of {!Pl_Date_Format.strftime}.
31  *)
32 let localtime () =
33   call_array ~fn:"localtime" []
34
35 let time2str ?zone templ time =
36   let args =
37     [sv_of_string templ; sv_of_float time] @
38     match zone with
39         None -> []
40       | Some zone -> [sv_of_string zone] in
41   string_of_sv (call ~fn:"Date::Format::time2str" args)
42
43 let strftime ?zone templ time =
44   let args =
45     (sv_of_string templ :: time) @
46     match zone with
47         None -> []
48       | Some zone -> [sv_of_string zone] in
49   string_of_sv (call ~fn:"Date::Format::strftime" args)
50
51 let ctime ?zone time =
52   let args =
53     [sv_of_float time] @
54     match zone with
55         None -> []
56       | Some zone -> [sv_of_string zone] in
57   string_of_sv (call ~fn:"Date::Format::ctime" args)
58
59 let asctime ?zone time =
60   let args =
61     [sv_of_float time] @
62     match zone with
63         None -> []
64       | Some zone -> [sv_of_string zone] in
65   string_of_sv (call ~fn:"Date::Format::asctime" args)