Java/Scripting/JRuby

Материал из Java эксперт
Перейти к: навигация, поиск

Working With JRuby

   <source lang="java">

import java.io.BufferedReader; import java.io.FileReader; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class MainClass {

 public static void main(String[] args) throws Exception {
   ScriptEngineManager manager = new ScriptEngineManager();
   ScriptEngine engine = manager.getEngineByName("jruby");
   engine.eval(new BufferedReader(new FileReader("r.rb")));
   Invocable invocable = (Invocable) engine;
   Object tempconverter = invocable.invokeFunction("getTempConverter");
   double degreesCelsius = (Double) invocable.invokeMethod(tempconverter, "f2c", 98.6);
   System.out.println(degreesCelsius);
   double degreesFahrenheit = (Double) invocable.invokeMethod(tempconverter, "c2f",100.0);
   System.out.println(degreesFahrenheit);
 }

} //////////////

  1. TempConverter.rb

class TempConverter

 def c2f(degrees)
   degrees*9.0/5.0+32
 end
 def f2c(degrees)
   (degrees-32)*5.0/9.0
 end

end def getTempConverter

 TempConverter.new

end

</source>