Ruby如何知道哪个OLE对象是可枚举的?

时间:2012-03-29 16:24:47

标签: ruby enumerable win32ole

我正在使用Ruby和WIN32OLE(特别是Excel)。

我发现所有那些可枚举的对象,比如Range.Columns,都可以在Ruby中自动枚举,并且可以使用obj.each方法进行迭代。

我想知道它是如何工作的?我知道如果你想要制作一些可枚举的东西,你必须include "Enumerable"。但显然他们无法将该行放在OLE对象中。它只是直接将obj.each方法映射到for each循环吗?

1 个答案:

答案 0 :(得分:0)

an interesting set of posts here可能会回答您的问题,具体而言:

  

(...)每个被称为   动态的任何其他OLE方法;它没有在之前确定   调用该对象是否实际实现了IEnum。

  

Enumerable #find方法冲突了Excel Range的'find'方法   宾语。这是WIN32OLE不包含的(唯一)原因   枚举的。

     

WIN32OLE类有'each'方法(每个都定义了WIN32OLE#)(...)

希望这有帮助!