You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by aj...@apache.org on 2007/03/16 10:39:04 UTC

svn commit: r518904 - in /incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model: RubyImplementation.cpp RubyImplementation.h

Author: ajborley
Date: Fri Mar 16 02:39:03 2007
New Revision: 518904

URL: http://svn.apache.org/viewvc?view=rev&rev=518904
Log:
Fix to ensure REXML::Document class is loaded when static method is called.

Modified:
    incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp
    incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp?view=diff&rev=518904&r1=518903&r2=518904
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp Fri Mar 16 02:39:03 2007
@@ -57,8 +57,10 @@
             {
             }
             
-            void RubyImplementation::loadClass()
-            {
+            VALUE RubyImplementation::getXMLDocumentClass()
+            { 
+                logentry();
+
                 // Initialize the Ruby runtime
                 if (!initialized)
                 {
@@ -71,10 +73,23 @@
                     rb_eval_string("require(\"rexml/document\")");
 
                     xmlDocumentClass =  rb_path2class("REXML::Document");
-                    
                     initialized = true;
                 }
-    
+
+                return xmlDocumentClass; 
+            }
+
+            void RubyImplementation::loadClass()
+            {
+                logentry();
+
+                // Ensure xmlDocumentClass is initialized
+                getXMLDocumentClass();
+ 
+                ID to_s = rb_intern("to_s");
+                VALUE xstr = rb_funcall(xmlDocumentClass, to_s, 0);
+                loginfo("Got Ruby Rexml class: %s", rb_string_value_cstr(&xstr));
+
                 // Load the specified Ruby script
                 if (script != "")
                 {

Modified: incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h?view=diff&rev=518904&r1=518903&r2=518904
==============================================================================
--- incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h (original)
+++ incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h Fri Mar 16 02:39:03 2007
@@ -88,7 +88,7 @@
                 /**
                  * Returns the Ruby REXML::Document class
                  */
-                 static VALUE getXMLDocumentClass() { return xmlDocumentClass; }
+                 static VALUE getXMLDocumentClass();
 
             private:
             



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org