[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Overloading in ruby

Tomas Kejzlar

2/23/2007 2:13:00 PM

Hi,

I've been doing some Ruby code interfacing with Windows COM objects and
I've ran into this problem:

I have a COM object method say object.Value(name) which - when i call it
with appropriate "name" value returns some value.

The problem is that the same is used (according to that COM lib
documentation) for setting data to the object - i should write
object.Value(name) = value and it should set the value.

However I have not found a way to do this in Ruby - it gives me (and I
can fully understand why) syntax error when I try to set data to the
object.

Does anybody know if this can be done using Ruby and possibly how?

Thanks, Tom.

--
Posted via http://www.ruby-....

3 Answers

Jano Svitok

2/23/2007 2:49:00 PM

0

On 2/23/07, Tomas Kejzlar <tomas.kejzlar@gmail.com> wrote:
> Hi,
>
> I've been doing some Ruby code interfacing with Windows COM objects and
> I've ran into this problem:
>
> I have a COM object method say object.Value(name) which - when i call it
> with appropriate "name" value returns some value.
>
> The problem is that the same is used (according to that COM lib
> documentation) for setting data to the object - i should write
> object.Value(name) = value and it should set the value.
>
> However I have not found a way to do this in Ruby - it gives me (and I
> can fully understand why) syntax error when I try to set data to the
> object.
>
> Does anybody know if this can be done using Ruby and possibly how?
>
> Thanks, Tom.

try:

object.Value[name] = value

or: have a look at WIN32OLE docs and see if setproperty or invoke
could do what you want

or: post the exact code possibly with the links to the lib documentation.

I'm not good enough to guess a general case, but I've been playing
with COM a bit so I might be able to guess the particular case.

J.

Tomas Kejzlar

2/23/2007 3:04:00 PM

0

Jan,

thanks very much. Setproperty did the trick for me.

Tom.


Jan Svitok wrote:
> or: have a look at WIN32OLE docs and see if setproperty or invoke
> could do what you want
>

--
Posted via http://www.ruby-....

Kyle Schmitt

2/23/2007 5:47:00 PM

0

When calling methods on com objects in vbscript (ugh! pain ouch ouch
ouch!) the overlaoded methods were accessed by a _number.

Lets say it's the Vacuum object (the object that makes windows suck).
In overloadable languages you can pass a Soul, an Idea, or Creativity
into the Vacuum's suck method. The order they are defined in is
important because that's the order (as far as I was able to figure
out) that they are indexed in.
To use Vacuum to suck a soul it would be
myVaccum.suck_1(someonesSoul)
an idea would be
myVaccum.suck_2(goodIdeasAboutGuis)

But that was just in vbscript.

--Kyle