On 10/11/2010 05:39 AM, Josh Mcdade wrote:
> I have server model classes that definitely need DRbUndumped.  Except
> for the methods that return an array.  I would rather it return an array
> that is NOT wrapped in a DRbObject, and everything else still be a
> DRbObject.
>
> Here is a client/server example: http://pastie.org/1211949
>
> The main reason I need this is because I'm integrating a remote backend
> implemented in Ruby with a Java front-end, written in Java and using
> JSR223 w/ JRuby to grab the objects.  The DRbObject will map to the
> appropriate interfaces, except when the DRbObject is an Array.  The Java
> application only knows the DRbObject as a org.jruby.RubyObject and it
> cannot be cast to SomeArray[] for instance.
>
> I'm asking this in the Ruby forum because the DRbObject behavior is the
> same in Ruby/JRuby, I just need it for JRuby purposes.
>
> I tried patching DRbObject, but I've had no success.  Here is my
> attempt:
>
> http://pastie.org/1212829

If you add this line to the client:

DRb.start_service

then your #each call works. The array stays on the server, however, and 
each iteration involves a message to and from the server to get the 
array entry's DRbObject. This would be inefficient for a large array, 
unless your round-trip latency is small.

What do you actually want to get back on the client side? An array of 
DRbUndumped proxies to RemoteObj instances on the server, or an array of 
copies of Remote Obj?