In message "Re: Enumerable and WIN32OLE"
    on 06/09/30, Dave Burt <dave / burt.id.au> writes:

> What about something like this, though? For these methods, a block is
> always provided. For a COM method call, a block is never provided. Why
> not dispatch depending on block_given?

Some Enumerable's methods does not need a block, for example, Enumerable#max.
So, I hesitate to implement your idea.
(I am not sure that there are OLE methods whose name is "max".)

> My preference for writing code for OLE is to use uppercase method calls
> (range.Select) and save lowercase for Ruby methods. But this should
> provide compatibility for people who have range.select in their code.

I prefer this approach.
  In Win32OLE, WIN32OLE includes Enumerable.
  If you want to call original method(range.select),
  you should use range.Select.
  (And Win32OLE does not provide the compatibility. 
   I have no idea to provide the compatibility.)

Or, 
  In Win32OLE, WIN32OLE does not include Enumerable.
  If you want to use Enumerable's method,
  you add the following code at your own risk.
    class WIN32OLE
      include Enumerable
    end

> IEnums should have Enumerable.

I agree with you, but I have no idea that all things work well.

  Regards,
  Masaki Suketa