JavaEmbedUtils.newObjectAdapter().callMethod(object,"im");
----------------------------------------------------------
Key: JRUBY-5796
URL: http://jira.codehaus.org/browse/JRUBY-5796
Project: JRuby
Issue Type: Bug
Affects Versions: JRuby 1.6.1
Environment: Java 6, xp , JRuby 1.61
Reporter: Manfred Quasten
Assignee: Thomas E Enebo
I will use the Complex class from Ruby to calculate frequency response
characteristic and or Nyquist plots or what ever.
My java program will create a jruby script. The script will be executed for a
lot of frequencies in a defined range and the plots can be created ...
The script can look like this:
class IntegratingCircuit
attr_writer :v
def f(s)
@v/s
end
end
IntegratingCircuit.new()
final ScriptBuilder builder = new
RubyScriptBuilderImpl().withClassName("IntegratingCircuit").withWriteAccessor("v").withMethod("f(s)",
"@v/s");
final Ruby ruby = Ruby.newInstance();
final IRubyObject object= (IRubyObject) ruby.evalScriptlet(builder.build());
object.callMethod(ruby.getCurrentContext(), "v=" , new IRubyObject[]{
RubyFloat.newFloat(ruby, 100) });
IRubyObject result = object.callMethod(ruby.getCurrentContext(), "f", new
IRubyObject[]{ RubyFloat.newFloat(ruby, 1d)});
This code work, but my problem is, that s isn't a real number it should have
the type RubyComplex.
If i try to create a ComplexNumber it doesn't work :
IRubyObject object = JavaEmbedUtils.javaToRuby(ruby, 1d);
RubyComplex s = IJavaEmbedUtils.newObjectAdapter().callMethod(object,"im");
org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `im' for
0:Fixnum
An othe trial was , to do it like this:
RubyComplex s = RubyComplex.newInstance(ruby.getCurrentContext(),
RubyFloat.newFloat(ruby, 1d), RubyFloat.newFloat(ruby, 1d));
org.jruby.exceptions.RaiseException: (NoMethodError) undefined method `real?'
for 1.0:Float
Using irb the statement
pp 2.im() will give the result
Complex(0,2)
I workaround will be to execute a scriptlet Complex.new(s_re,s_im) but I think
it should work directly from java.
What is going wrong ?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email