From: x1 Date: 2006-12-19T12:43:57+09:00 Subject: DRb, Ruby & JRuby - Questions & Issues / dynamic method calls # I overview after these examples to ease the pain :-) @@connection = Java::Connect(usr,pass) # This works: @@connection.getForeignListing.getListing(1441).getStreet #=> 123 Candy Ln. # This works: @@connection.send("getForeignListing").send("getListing", 1441).send("getStreet") #=> 123 Candy Ln. # This works: def test(a,b,c,d) return @@connection.send(a).send(b,c).send(d) end test("getForeignListing", "getListing", 1441, "getStreet") ------------------------------------------------ # Does not work: def test(a,b,c) return @@connection.send(a).send(b).send(c) end test("getForeignListing", ["getListing", 1441], "getStreet") test.rb:4:in `send': ["getListing", 5053500] is not a symbol (TypeError) ------------------------------------------------ In summary, I've managed to hook the working versions above within a class for a DRb server. The ultimate goal, is to create a generic DRb method that client input into into method-syntax that the connection can interpret. For example, as mentioned above, this works: @@connection.getForeignListing.getListing(1441).getStreet I'd like to create a method in the DRb server that could accept something like: java_call = "getForeignListing.getListing(1441).getStreet" @@connection.send(java_call) This would allow me to dynamically manage the java methods via DRb. Thanks so much for your input.