# Prob only with ruby

**URL:** <https://www.ruby-forum.com/t/prob-only-with-ruby/125401>\
**Category:** Ruby\
**Created:** [January 8, 2008, 9:11pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401 "2008-01-08T21:11:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 8, 2008, 9:11pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/1 "2008-01-08T21:11:12Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 8, 2008, 10:01pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/2 "2008-01-08T22:01:35Z")

</div>

On Jan 8, 2008 3:10 PM, Junkone [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 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

?

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 8, 2008, 11:02pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/3 "2008-01-08T23:02:00Z")

</div>

On Jan 8, 4:00 pm, John W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > 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
> 
> ?

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.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 8, 2008, 11:30pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/4 "2008-01-08T23:30:40Z")

</div>

On Tue, 8 Jan 2008 13:58:11 -0800 (PST)  
Junkone [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 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.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 9, 2008, 1:05am UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/5 "2008-01-09T01:05:32Z")

</div>

On Jan 8, 5:25 pm, Stefan S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > application.visible=1  
> > 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.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 8, 2008, 11:34pm UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/6 "2008-01-08T23:34:13Z")

</div>

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 S.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 9, 2008, 1:47am UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/7 "2008-01-09T01:47:02Z")

</div>

Hello,

Junkone wrote:

> > Instead, does the following script work?
> > 
> > analysis.setproperty(‘Filter’, 0, “market”, 3)
> > 
> > Regards,  
> > Masaki S.
> 
> 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 S.

---

<div class="post-metadata">

**Author:** ![Junkone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e274bd/32.png) [@Junkone](https://www.ruby-forum.com/u/Junkone)\
**Post date:** [January 9, 2008, 1:07am UTC](https://www.ruby-forum.com/t/prob-only-with-ruby/125401/8 "2008-01-09T01:07:18Z")

</div>

On Jan 8, 5:33 pm, Masaki S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > set application = CreateObject(“Broker.Application”)
> 
> Instead, does the following script work?
> 
> analysis.setproperty(‘Filter’, 0, “market”, 3)
> 
> Regards,  
> Masaki S.

bingo. analysis.setproperty(‘Filter’, 0, “market”, 4) works  
beautifylly. masaki is one smart. how did you figure it out. i am  
wondering.
