Author: jsdelfino
Date: Tue Sep 12 02:25:31 2006
New Revision: 442540
URL: http://svn.apache.org/viewvc?view=rev&rev=442540
Log:
Added support for Ruby component property configuration
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/CalculatorClient.rb
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/DivideImpl.rb
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/sample.calculator.composite
Modified:
incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp?view=diff&rev=442540&r1=442539&r2=442540
==============================================================================
---
incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp
(original)
+++
incubator/tuscany/cpp/sca/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp
Tue Sep 12 02:25:31 2006
@@ -32,6 +32,9 @@
#include "tuscany/sca/ruby/model/RubyImplementation.h"
#include "tuscany/sca/ruby/model/RubyServiceBinding.h"
#include "tuscany/sca/ruby/RubyServiceProxy.h"
+#include "commonj/sdo/SDO.h"
+
+using commonj::sdo::PropertyList;
namespace tuscany
{
@@ -98,7 +101,33 @@
}
// Set all the configured properties
- //TODO
+ DataObjectPtr properties = component->getProperties();
+ PropertyList pl = properties->getInstanceProperties();
+ for (int i = 0; i < pl.size(); i++)
+ {
+ if (properties->isSet(pl[i]))
+ {
+ string varName = "@";
+ varName += pl[i].getName();
+ string cstr = properties->getCString(pl[i]);
+ VALUE propertyValue;
+ if (cstr == "true")
+ {
+ propertyValue = Qtrue;
+ }
+ else if (cstr == "false")
+ {
+ propertyValue = Qfalse;
+ }
+ else
+ {
+ //TODO use one of the rb_str_to_inum()
functions
+ // to convert a numeric value to a Ruby numeric
+ propertyValue = rb_str_new2(cstr.c_str());
+ }
+ rb_iv_set(instance, varName.c_str(),
propertyValue);
+ }
+ }
// Get the ID of the specified method
ID method = rb_intern(operation.getName().c_str());
Modified:
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/CalculatorClient.rb
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/CalculatorClient.rb?view=diff&rev=442540&r1=442539&r2=442540
==============================================================================
---
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/CalculatorClient.rb
(original)
+++
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/CalculatorClient.rb
Tue Sep 12 02:25:31 2006
@@ -25,6 +25,6 @@
print x
print "\n"
-x = calculator.div(4, 2)
+x = calculator.div(5, 2)
print x
print "\n"
Modified:
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/DivideImpl.rb
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/DivideImpl.rb?view=diff&rev=442540&r1=442539&r2=442540
==============================================================================
---
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/DivideImpl.rb
(original)
+++
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/DivideImpl.rb
Tue Sep 12 02:25:31 2006
@@ -19,13 +19,21 @@
class DivideImpl
+ attr_writer :round
+
def initialize()
print "Ruby - DivideImpl.initialize\n"
end
def divide(arg1, arg2)
- print "Ruby - DivideImpl.divide\n"
- arg1 / arg2
+ print "Ruby - DivideImpl.divide ", arg1, " / ", arg2, "\n"
+ res = arg1.to_f / arg2.to_f
+ if @round then
+ res = res.round
+ print "DivideImpl.divide rounding\n"
+ end
+ print "DivideImpl.divide ", res, "\n"
+ res
end
end
Modified:
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/sample.calculator.composite
URL:
http://svn.apache.org/viewvc/incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/sample.calculator.composite?view=diff&rev=442540&r1=442539&r2=442540
==============================================================================
---
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/sample.calculator.composite
(original)
+++
incubator/tuscany/cpp/sca/samples/RubyCalculator/sample.calculator/sample.calculator.composite
Tue Sep 12 02:25:31 2006
@@ -31,6 +31,7 @@
<component name="DivideComponent">
<implementation.ruby script="DivideImpl.rb" class="DivideImpl"/>
+ <property name="round">true</property>
</component>
</composite>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]