Keyword arguments for WIN32OLE?

Is there a way to pass ~keyword~ arguments to a WIN32OLE method in
Ruby? For example, I’ve tried…

@selection.Find.Execute( :FindText=>"look

for", :ReplaceWith=>“something else”)

… and the same with the arguments as an explicit hash. They don’t
work. I’m reduced to using terribly ugly, error-prone things like…

def replace( find, replace)
@selection.Find.Execute( find, nil, nil, nil, nil, nil, nil, nil,
nil, replace)
end

which is OK once set up. But translating ruby-style hash keyword
arguments to WIN32OLE keyword arguments would be tremendous help.

BTW, the VBA function used above is…

expression.Execute(FindText, MatchCase, MatchWholeWord,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap,
Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics,
MatchAlefHamza, MatchControl)

Thanks. --David.

Hello,

djlewis wrote:

Is there a way to pass ~keyword~ arguments to a WIN32OLE method in
Ruby? For example, I’ve tried…

@selection.Find.Execute( :FindText=>"look

for", :ReplaceWith=>“something else”)

Try
@selection.Find.Execute({:FindText=>“look
for”, :ReplaceWith=>“something else”})
or
@selection.Find.Execute({“FindText”=>“look
for”, “ReplaceWith”=>“something else”})

Regards,
Masaki S.

In Ruby 1.8, hash keys must be String object.
And in Ruby 1.9, hash keys must be String or Symbol object.

So,

 @selection.Find.Execute({:FindText=>"look

for", :ReplaceWith=>“something else”})
style is supported in Ruby 1.9

 @selection.Find.Execute({"FindText"=>"look

for", “ReplaceWith”=>“something else”})
style is supported in Ruby 1.8 and Ruby 1.9.

Regards,
Masaki S.

On 3/10/08, Masaki S. [email protected] wrote:

In Ruby 1.8, hash keys must be String object.
And in Ruby 1.9, hash keys must be String or Symbol object.

To be clear you’re talking about hashes used as arguments to win32ole
methods, not Ruby hashes in general.

Right?


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

Rick DeNatale wrote:

On 3/10/08, Masaki S. [email protected] wrote:

In Ruby 1.8, hash keys must be String object.
And in Ruby 1.9, hash keys must be String or Symbol object.

To be clear you’re talking about hashes used as arguments to win32ole
methods, not Ruby hashes in general.

Right?

Yes. I’m talking about Win32OLE methods, not Ruby hashes in general.

Regards,
Masaki S.