X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=wrappers%2Fpl_WWW_Mechanize.ml;h=d5a23760bbbb6bc49e4f0a9d81a4375b8291d1da;hb=caee309c74f84ec2f76f64e1f416536f58fd720f;hp=2582b9da8aed522e47455e2f0267d22a8a420429;hpb=95114635aee7abc960959ed6502d11b4dc421e1a;p=perl4caml.git diff --git a/wrappers/pl_WWW_Mechanize.ml b/wrappers/pl_WWW_Mechanize.ml index 2582b9d..d5a2376 100644 --- a/wrappers/pl_WWW_Mechanize.ml +++ b/wrappers/pl_WWW_Mechanize.ml @@ -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