[Xapian-devel] Ruby bindings now pass all smoketests

Paul Legato plegato at nks.net
Sat Apr 22 19:05:06 BST 2006

Olly Betts wrote:
> The Makefile.am patch got applied to the wrong Makefile.am, and
> my configure test was broken.  Also, now there's a xapian.rb we need
> to find out where to install that.

Ruby will load required files from a number of directories by default 
(it varies by distribution, but you can see the defaults on your system 
by running "puts $:" from within irb.) Users can also specify -I /path/ 
with their invocation of the Ruby interpreter to add paths, or they can 
give a full pathname to xapian.rb when they require it..

> I've renamed the .so to _xapian.so because otherwise I don't see how
> xapian.rb can load xapian.so once both are installed, but perhaps I'm
> missing some subtlety (none of the Ruby modules installed on my dev-box
> have a .so and .rb with the same basename).  Or perhaps there's a
> Ruby convention for how to name the .so in this situation.

I like the underscore idea, because it emphasizes to users that they 
shouldn't try to require the .so file directly, but should rather use 
xapian.rb. There is one problem -- Ruby tries to initialize shared 
objects by calling an Init_<objectname> function. So when I require 
_xapian, it tries to call Init__xapian, which doesn't exist.

I can't get the configure script to work here. It rejects my version of 
SWIG (1.3.29 is not yet available in Debian Unstable). So, this issue 
may well be fixed when building the correct way. :) I've renamed things 
in rebuild.sh to use the underscore when generating, but it still 
doesn't work. For now, I will change it to "require 'xapian.so'" 
explicitly (since Ruby is not smart enough to not try to include 
xapian.rb from within itself.)

> Anyway, here's a patch:

Now committed to SVN. Thanks!

> It'd be good to have Ruby versions of simpleindex and simplesearch
> which would provide a more real world test, and serve as good examples
> (the other bindings all have versions).

Sounds good. I will get some examples going.



--    Paul Legato, Senior Software Engineer     --
---       Networked Knowledge Systems          ---
----   P.O. Box 20772 Tampa, FL. 33622-0772   ----
----- (813)594-0064 Voice  (813)594-0045 FAX -----
------           plegato at nks.net            ------

-----   This email bound by the following:   -----
---- http://www.nks.net/email_disclaimer.html ----

More information about the Xapian-devel mailing list