platform/shared/rubyJVM/src/com/rho/RhoRuby.java in rhodes-1.2.2 vs platform/shared/rubyJVM/src/com/rho/RhoRuby.java in rhodes-1.4.0

- old
+ new

@@ -22,18 +22,23 @@ public static final RubyID serveID = RubyID.intern("serve_hash"); public static final RubyID serveIndexID = RubyID.intern("serve_index_hash"); public static final RubyID raiseRhoError = RubyID.intern("raise_rhoerror"); public static final RubyID initApp = RubyID.intern("init_app"); + public static final RubyID activateApp = RubyID.intern("activate_app"); + // public static final RubyID getStartPath = RubyID.intern("get_start_path"); // public static final RubyID getOptionsPath = RubyID.intern("get_options_path"); static RubyValue receiver; static RubyProgram mainObj; static RubyClass m_classRhoError; static RubyMethod m_RhoError_err_message; - + + static RubyClass m_classRhoMessages; + static RubyMethod m_RhoMessages_get_message; + public static final int ERR_NONE = 0; public static final int ERR_NETWORK = 1; public static final int ERR_REMOTESERVER = 2; public static final int ERR_RUNTIME = 3; public static final int ERR_UNEXPECTEDSERVERRESPONSE = 4; @@ -75,10 +80,24 @@ RubyValue res = m_RhoError_err_message.invoke( m_classRhoError, ObjectFactory.createInteger(nError), null ); return res.toStr(); } + + public static String getMessageText(String strName) + { + if ( m_classRhoMessages == null ) + { + RubyModule modRho = (RubyModule)RubyRuntime.ObjectClass.getConstant("Rho"); + m_classRhoMessages = (RubyClass)modRho.getConstant("RhoMessages"); + m_RhoMessages_get_message = m_classRhoMessages.findMethod( RubyID.intern("get_message") ); + } + + RubyValue res = m_RhoMessages_get_message.invoke( m_classRhoMessages, ObjectFactory.createString(strName), null ); + + return res.toStr(); + } public static void RhoRubyStart(String szAppPath){ String[] args = new String[0]; IRhoRubyHelper helper = null; @@ -96,11 +115,11 @@ //TODO: implement recursive dir creation RhoClassFactory.createFile().getDirPath("apps"); RhoClassFactory.createFile().getDirPath("apps/public"); RhoClassFactory.createFile().getDirPath("apps/public/db-files"); - }catch(Throwable exc){ + }catch(Exception exc){ LOG.ERROR("Cannot init ruby", exc); } try{ //Class mainRuby = Class.forName("xruby.ServeME.main"); @@ -114,16 +133,24 @@ RubyModule modRhom = (RubyModule)RubyRuntime.ObjectClass.getConstant("Rhom"); } /*}catch(ClassNotFoundException exc){ LOG.ERROR("Cannot create ServeME object", exc);*/ - }catch(Throwable exc){ + }catch(Exception exc){ LOG.ERROR("Cannot create ServeME object", exc); } } public static void RhoRubyInitApp(){ RubyAPI.callPublicNoArgMethod(receiver, null, initApp); + } + + public static void rho_ruby_activateApp(){ + RubyAPI.callPublicNoArgMethod(receiver, null, activateApp); + } + + public static boolean rho_ruby_isValid(){ + return receiver!= null; } public static void RhoRubyStop(){ receiver = null;