I'm implementing a module Foo, with classes Foo::W, Foo::X, Foo::Y, and
Foo::Z. For various reasons, it is easier to code key parts of Foo::W and
Foo::X in C, but the remainder of the code is easier to write in
Ruby. Most applications that use this module will need all four
classes. What's the best way to lay out the code for use? I assume that
there should be a top-level Foo.rb that users can require and that
requires the appropriate .so and .rb files, but is it worth having

  require "Foo/W.so"
  require "Foo/X.so"
  require "Foo/W.rb"
  require "Foo/X.rb"
  require "Foo/Y.rb"
  require "Foo/Z.rb"

in Foo.rb? If so, how does one write an extconf.rb to build W.so and X.so
in the same directory? (Or am I forced to keep the sources for those two
in separate directories, or hand-edit the Makefile?)

-- 
Robert Au                           myshkin+ruby / durak.net