Added wrappers around other methods of WWW::Mechanize::Links.
[perl4caml.git] / wrappers / pl_WWW_Mechanize.ml
index 2582b9d..d5a2376 100644 (file)
@@ -2,7 +2,7 @@
   *
   * Copyright (C) 2004 Merjis Ltd.
   *
-  * $Id: pl_WWW_Mechanize.ml,v 1.2 2004-11-26 13:33:10 rich Exp $
+  * $Id: pl_WWW_Mechanize.ml,v 1.5 2005-05-19 11:10:18 rich Exp $
   *)
 
 open Perl
@@ -156,7 +156,9 @@ object (self)
     let sv = call_method sv "content" [] in
     string_of_sv sv
   (* method current_forms = *)
-  (* method links = *)
+  method links =
+    let svs = call_method_array sv "links" [] in
+    List.map (new www_mechanize_link) svs
   method is_html =
     let sv = call_method sv "is_html" [] in
     bool_of_sv sv
@@ -185,8 +187,40 @@ object (self)
 
 end
 
+and www_mechanize_link sv =
+
+object (self)
+
+  method sv = sv
+
+  method url =
+    let sv = call_method sv "url" [] in
+    string_of_sv sv
+
+  method text =
+    let sv = call_method sv "text" [] in
+    string_of_sv sv
+
+  method name =
+    let sv = call_method sv "name" [] in
+    string_of_sv sv
+
+  method tag =
+    let sv = call_method sv "tag" [] in
+    string_of_sv sv
+
+  method base =
+    let sv = call_method sv "base" [] in
+    string_of_sv sv
+
+end
+
 (* XXX Should be able to pass args to constructor of LWP::UserAgent. *)
 (* XXX WWW::Mechanize has additional parameters. *)
-let new_ () =
-  let sv = call_class_method "WWW::Mechanize" "new" [] in
+let new_ ?autocheck () =
+  let args = ref [] in
+  let may f = function None -> () | Some v -> f v in
+  may (fun v ->
+        args := sv_of_string "autocheck" :: sv_of_bool v :: !args) autocheck;
+  let sv = call_class_method "WWW::Mechanize" "new" !args in
   new www_mechanize sv