ruby outlook win32ole

Ruby win32ole: cómo determinar el tipo de clase OLE, si la clase OLE admite un método



outlook (2)

Con respecto específicamente a los objetos WIN32OLE ...

¿Cómo determino el nombre de clase de una instancia de objeto OLE?

object.ole_obj_help.name

¿Cómo puedo saber si una instancia de objeto admite un método en particular?

object.ole_methods.collect!{ |x| x.to_s }.include?( ''MethodName'' )

Estoy usando Ruby 1.8. Usando el módulo WIN32OLE -

1) ¿Cómo determino el nombre de clase de una instancia de objeto OLE? 2) ¿Cómo puedo saber si una instancia de objeto admite un método en particular?

En un script de automatización de Outlook, estoy tratando de eliminar los elementos en la carpeta ''Elementos eliminados'' que tienen más de 21 días. Para los artículos de correo, quiero usar la propiedad ReceivedTime, pero para poder hacer eso, necesito verificar si el ítem es realmente una instancia de MailItem.

Por el momento, lo mejor que he podido encontrar es (realmente lento):

def MethodExists(obj, methodName) obj.ole_methods.each{|method| if (method.name == methodName) return true end } return false end


  1. obj.class

  2. :

    if obj.respond_to?(methodName) #do your work end