Susanta Datta wrote:
Jean, Thanks a lot. I'm writing a meshup sample using SCA. Here I'm using one composite written in Ruby which requires ""rubygem".

regards
Susanta

Cool!

I did a little more testing, as I really wanted to see a Ruby gem in action before declaring victory. Here's what I did:

I installed JRuby 1.0.1.

From the command line, ran jirb gem install progressbar, the progressbar Gem got installed under <jruby-install>/lib/ruby/gems

I copied <jruby-install>/lib/ruby/gems to $HOME/.jruby/lib/ruby/gems. I'm running Linux, on Windows the .jruby home directory is probably somewhere under Documents And Settings.

I changed SubtractServiceImpl.rb in the Tuscany calculator-script sample as follows:
require 'rubygems'
require 'progressbar'

def subtract(n1, n2)

   bar = ProgressBar.new("Example progress", 50)
   total = 0
   until total >= 50
     sleep(rand(2)/2.0)
     increment = (rand(6) + 3)
     bar.inc(increment)
     total += increment
   end
   print "\n"

   return n1 - n2
end

Ran the calculator sample and saw:
Example progr: 14% |ooooo | ETA: 00:00:00 Example progr: 20% |oooooooo | ETA: 00:00:02 Example progr: 36% |oooooooooooooo | ETA: 00:00:01 Example progr: 48% |ooooooooooooooooooo | ETA: 00:00:01 Example progr: 64% |ooooooooooooooooooooooooo | ETA: 00:00:00 Example progr: 80% |oooooooooooooooooooooooooooooooo | ETA: 00:00:00 Example progr: 96% |oooooooooooooooooooooooooooooooooooooo | ETA: 00:00:00 Example progr: 100% |oooooooooooooooooooooooooooooooooooooooo| ETA: 00:00:00
3 - 2=1.0

So I can confirm that Ruby Gems should work if you follow similar steps.

Let me know how it goes... Thanks.

----- Original Message ----- From: "Jean-Sebastien Delfino" <[EMAIL PROTECTED]>
To: <tuscany-user@ws.apache.org>
Sent: Thursday, September 27, 2007 4:44 PM
Subject: Re: adding rubygem as dependency in ruby file


Jean-Sebastien Delfino wrote:
Susanta Datta wrote:
Hi, my composite has a ruby implementation. In my Ruby file I require "rubygems" and some other ruby files. How do I set those folder and files in my sca java project ? I tried with calculator script in eclipse IDE. I works fine but if I add new a "require rubygems" in the .rb file I get an error <unknown>:19: no such file to load -- rubygems (LoadError).

Any idea where and how do I configure Ruby dependencies in the java sca project under eclipse?

thanks a lot Susanta


I am looking into this. To test what happens with "require" statements I changed one of our scripting samples: http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-script/src/main/resources/calculator/SubtractServiceImpl.rb

and added a "require" as follows:
require 'rexml/document'
include REXML

def subtract(n1, n2)
   doc = Document.new <<-eof
     <Hello xmlns="http://test";>
       <name>Foo</name>
     </Hello>
   eof
   print doc
   return n1 - n2
end

and it works, I'm getting:
<Hello xmlns='http://test'>
 <name>Foo</name>
</Hello>
3 - 2=1.0

REXML is part of the jruby distribution. Next, I'm going to try to require another .rb file in the same project and will let u know what I find.


I made a small change to our JRuby integration code to add the path to the rubygems hiding inside jruby-complete-1.0.jar to the Jruby loadpath. I also made a small change to improve the Exception reporting, you should now see the JRuby exception messages.

The changes are available in SVN revision r580145 of the Tuscany trunk, see: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/engines/TuscanyJRubyScriptEngine.java?view=diff&r1=580144&r2=580145&pathrev=580145

This should allow you to "require 'rubygems'".

You may also have to configure your environment as described in the JRuby Gotchas section there: http://www.headius.com/jrubywiki/index.php/Java_Integration#Embedding_with_Bean_Scripting_Framework

Why gems are you using? Any Rails by any chance? I think it would be really cool to show Rails working with SCA...

Hope this helps.

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to