Fixed for Perl 5.8.2.
[perl4caml.git] / wrappers / pl_URI.ml
1 (** Wrapper around Perl [URI] class.
2   *
3   * Copyright (C) 2003 Merjis Ltd.
4   *
5   * $Id: pl_URI.ml,v 1.3 2003-10-16 13:41:07 rich Exp $
6   *)
7
8 open Perl
9
10 let _ = eval "use URI"
11
12 class uri sv =
13
14 object (self)
15
16   method sv = sv
17
18   method scheme =
19     string_of_sv (call_method sv "scheme" [])
20   method set_scheme scheme =
21     call_method_void sv "scheme" [sv_of_string scheme]
22   method opaque =
23     string_of_sv (call_method sv "opaque" [])
24   method set_opaque opaque =
25     call_method_void sv "opaque" [sv_of_string opaque]
26   method path =
27     string_of_sv (call_method sv "path" [])
28   method set_path path =
29     call_method_void sv "path" [sv_of_string path]
30   method fragment =
31     string_of_sv (call_method sv "fragment" [])
32   method set_fragment fragment =
33     call_method_void sv "fragment" [sv_of_string fragment]
34   method as_string =
35     string_of_sv (call_method sv "as_string" [])
36   method canonical =
37     string_of_sv (call_method sv "canonical" [])
38   method abs base =
39     string_of_sv (call_method sv "abs" [sv_of_string base])
40   method rel base =
41     string_of_sv (call_method sv "rel" [sv_of_string base])
42
43 end
44
45 let new_ ?scheme str =
46   let args =
47     [sv_of_string str] @
48     match scheme with
49         None -> []
50       | Some scheme -> [sv_of_string scheme] in
51   let sv = call_class_method "URI" "new" args in
52   new uri sv