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