<HTML ><HEAD ><TITLE >Ruby $B$G$N(B XML-RPC $B$N;H$$J}(B</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.54"><LINK REL="HOME" TITLE="XML-RPC HOWTO" HREF="index.html"><LINK REL="PREVIOUS" TITLE="Microsoft .NET $B$G$N(B XML-RPC $B$N;H$$J}(B" HREF="xmlrpc-howto-dotnet.html"><LINK REL="NEXT" TITLE="$BFH<+E*$J8@8l$G$N(B XML-RPC $B$N;H$$J}(B" HREF="xmlrpc-howto-proprietary.html"></HEAD ><BODY CLASS="SECTION" BGCOLOR="#FFFFFF" TEXT="#000000" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >XML-RPC HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="xmlrpc-howto-dotnet.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="xmlrpc-howto-proprietary.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECTION" ><H1 CLASS="SECTION" ><A NAME="XMLRPC-HOWTO-RUBY" >12. Ruby $B$G$N(B XML-RPC $B$N;H$$J}(B</A ></H1 ><P ><EM >(XML-RPC HOWTO $B$N$3$N>O$O(B Michael Neumann $B$,5$A0$h$/(B $BDs6!$7$F$/$l$^$7$?!#(B)</EM ></P ><P ><A HREF="http://www.ruby-lang.org/" TARGET="_top" >Ruby</A > $B$O%*%V%8%'(B $B%/%H;X8~%9%/%j%W%H8@8l$G$9!#4{$KF|K\$G$OB?$/$N0&9%<T$,$*$j!"B>=j$G$b(B $B?M5$$,=P$D$D$"$j$^$9!#(B</P ><P >Ruby $B$G(B XML-RPC $B$r;H$&$K$O!"=i$a$K5HED@5?M$N(B xmlparser $B%b%8%e!<(B $B%k(B (James Clark $B$N(B expat parser $BMQ%i%C%Q!<(B) $B$r%$%s%9%H!<%k$7$J$1$l$P(B $B$J$j$^$;$s!#$3$l$O(B <A HREF="http://www.ruby-lang.org/en/raa.html" TARGET="_top" >Ruby Application Archive</A > $B$G8+$D$1$i$l$^$9!#(B</P ><P >$B$=$7$F<!$N%3%^%s%I$r;H$C$F(B <A HREF="http://www.s-direktnet.de/homepages/neumann/xmlrpc4r/index.html" TARGET="_top" >xmlrpc4r</A > $B$r%$%s%9%H!<%k$7$J$1$l$P$J$j$^$;$s!#(B</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >bash$ tar -xvzf xmlrpc4r-1_2.tar.gz bash$ cd xmlrpc4r-1_2 bash$ su root -c "ruby install.rb"</PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="SECTION" ><H2 CLASS="SECTION" ><A NAME="XMLRPC-HOWTO-RUBY-CLIENT" >12.1. Ruby $B%/%i%$%"%s%H(B</A ></H2 ><P >$BC1=c$J(B Ruby $B%/%i%$%"%s%H$r<($7$^$9(B -</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >require "xmlrpc/client" # Make an object to represent the XML-RPC server. server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php") # Call the remote server and get our result result = server.call("sample.sumAndDifference", 5, 3) sum = result["sum"] difference = result["difference"] puts "Sum: #{sum}, Difference: #{difference}"</PRE ></FONT ></TD ></TR ></TABLE ></DIV ><DIV CLASS="SECTION" ><H2 CLASS="SECTION" ><A NAME="XMLRPC-HOWTO-RUBY-SERVER" >12.2. Ruby $B%5!<%P(B</A ></H2 ><P >$BC1=c$J(B Ruby $B%5!<%P$r<($7$^$9(B -</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >require "xmlrpc/server" s = XMLRPC::CGIServer.new s.add_hanlder("sample.sumAndDifference") do |a,b| { "sum" => a + b, "difference" => a - b } end s.serve</PRE ></FONT ></TD ></TR ></TABLE ><P >$B$^$?!"<!$N$h$&$K=q$/$3$H$b$G$-$^$9!#(B</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >require "xmlrpc/server" s = XMLRPC::CGIServer.new class MyHandler def sumAndDifference(a, b) { "sum" => a + b, "difference" => a - b } end end s.add_handler("sample", MyHandler.new) s.serve</PRE ></FONT ></TD ></TR ></TABLE ><P >$B$I$A$i$N%5!<%P$bFHN)7?$G<B9T$9$k$K$O!"%W%m%0%i%`$NFs9TL\$r(B </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >s = XMLRPC::Server.new(8080)</PRE ></FONT ></TD ></TR ></TABLE ><P >$B$K=q$-$+$($F$/$@$5$$!#(B</P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="xmlrpc-howto-dotnet.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="xmlrpc-howto-proprietary.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Microsoft .NET $B$G$N(B XML-RPC $B$N;H$$J}(B</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >$BFH<+E*$J8@8l$G$N(B XML-RPC $B$N;H$$J}(B</TD ></TR ></TABLE ></DIV ></BODY ></HTML >