Similarly, invent a J::RubyLandProxy, which is the superclass of J::SM::RubyLandProxy. Neither of these classes are useful in themselves, without an engine-specific subclass providing the real implementation... but their separate existence should simplify documenting the user-relevant API.
I've changed the way we build, and in the process made things (temporarily, I hope) a lot less cross-platform. Rather than doing our own dance, I've switched everything to use rake-compiler (rake/extensiontask), which removed a lot of code. I've also removed anything related to platforms or cross-compilation: The build assumes Mac OS X, though it might work on other Unixish systems. Wider support will be back at some point.