prob only with ruby

J

Junkone

Hello
i am using ole automation to drive some of my processes. the following
code would run properly in other languages like vbscript. but it fails
only in ruby
application = WIN32OLE.new("Broker.Application")


analysis=application.analysis()

analysis.Filter(0, "market") = 3 # use nasdaq only << ruby
does not allow setting values like this. it errors syntax error,
unexpected '=', expecting $end. however this assignmetn is valid in
vbscript for the same object. is there any other way of doing it.
 
J

John Wells

Hello
i am using ole automation to drive some of my processes. the following
code would run properly in other languages like vbscript. but it fails
only in ruby
application = WIN32OLE.new("Broker.Application")


analysis=application.analysis()

analysis.Filter(0, "market") = 3 # use nasdaq only << ruby
does not allow setting values like this. it errors syntax error,
unexpected '=', expecting $end. however this assignmetn is valid in
vbscript for the same object. is there any other way of doing it.

I'm not a vbscript guy, but did you try:

myvar = analysis.Filter(0, "market")
myvar = 3

?
 
J

Junkone

I'm not a vbscript guy, but did you try:

myvar = analysis.Filter(0, "market")
myvar = 3

?

Nope. it does not work
b=analysis.Filter(0, "market") #= 3 # use nasdaq only
b=3
It does not change anything at all.
However if i ran a similar code in vbscript, it does the magic.

set application = CreateObject("Broker.Application")
application.visible=1
set analysis=application.analysis()
analysis.Filter( 0, "market" ) = 3

so something is wrong with the way ruby does automation.
 
S

Stefan Schmiedl

Nope. it does not work
b=analysis.Filter(0, "market") #= 3 # use nasdaq only
b=3
It does not change anything at all.
However if i ran a similar code in vbscript, it does the magic.

set application = CreateObject("Broker.Application")
application.visible=1
set analysis=application.analysis()
analysis.Filter( 0, "market" ) = 3

so something is wrong with the way ruby does automation.

Maybe the library does not know about the default property,
which VB uses...

So assuming that you're assigning the .Value property, try

analysis.Filter(0, "market").Value = 3

in ruby.

I wonder ... does

p analysis.Filter(0, "market").methods

return any useful information?

s.
 
M

Masaki Suketa

Hello,
Nope. it does not work
b=analysis.Filter(0, "market") #= 3 # use nasdaq only
b=3
It does not change anything at all.
However if i ran a similar code in vbscript, it does the magic.

set application = CreateObject("Broker.Application")
application.visible=1
set analysis=application.analysis()
analysis.Filter( 0, "market" ) = 3

so something is wrong with the way ruby does automation.

Ruby does not support the following syntax, so Win32OLE
does not support.
analysis.Filter( 0, "market" ) = 3

Instead, does the following script work?

analysis.setproperty('Filter', 0, "market", 3)

Regards,
Masaki Suketa
 
J

Junkone

Maybe the library does not know about the default property,
which VB uses...

So assuming that you're assigning the .Value property, try

  analysis.Filter(0, "market").Value = 3

in ruby.

I wonder ... does

  p analysis.Filter(0, "market").methods

return any useful information?

s.

it does something useful within the application. thats why i use it.
it configures one of the windows within the app.
 
J

Junkone

Hello,

Junkone wrote:

 > Nope. it does not work
 > b=analysis.Filter(0, "market") #= 3  # use nasdaq only
 >        b=3
 > It does not change anything at all.
 > However if i ran a similar code in vbscript, it does the magic.
 >
 > set application = CreateObject("Broker.Application")
 > application.visible=1
 > set analysis=application.analysis()
 > analysis.Filter( 0, "market" ) = 3
 >
 > so something is wrong with the way ruby does automation.
 >

Ruby does not support the following syntax, so Win32OLE
does not support.
 > analysis.Filter( 0, "market" ) = 3

Instead, does the following script work?

   analysis.setproperty('Filter', 0, "market", 3)

   Regards,
   Masaki Suketa

bingo. analysis.setproperty('Filter', 0, "market", 4) works
beautifylly. masaki is one smart. how did you figure it out. i am
wondering.
 
M

Masaki Suketa

Hello,
bingo. analysis.setproperty('Filter', 0, "market", 4) works
beautifylly. masaki is one smart. how did you figure it out. i am
wondering.

Because I'm a maintainor of Win32OLE. :)
To support property setting with argument like Filter,
WIN32OLE#setproperty method is provided.

Regards,
Masaki Suketa
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,274
Messages
2,571,373
Members
48,065
Latest member
SusannaSpe

Latest Threads

Top