Ruby 1.8を使用しています。 WIN32OLEモジュールの使用 -Ruby win32ole - OLEクラスがメソッドをサポートしているかどうか、OLEクラスの型を調べる方法
1)OLEオブジェクトインスタンスのクラス名を特定するにはどうすればよいですか? 2)オブジェクトインスタンスが特定のメソッドをサポートしているかどうかをどのように確認できますか?
Outlookの自動化スクリプトで、21日以上経過した「削除済みアイテム」フォルダ内のアイテムを削除しようとしています。メールアイテムの場合、ReceivedTimeプロパティを使用しますが、そのためにはアイテムが実際にMailItemインスタンスであるかどうかを確認する必要があります。第二のために
、私が思い付くことができた最高のは、(本当に遅い)です:
def MethodExists(obj, methodName)
obj.ole_methods.each{|method|
if (method.name == methodName)
return true
end
}
return false
end
では動作しませんか? {| x | x.to_s == "MethodName"}は少し簡潔です。または#detect、それも良いでしょう。 –
@MikeWoodhouse:このコードは[このリンク](http://rubyonwindows.blogspot.com/2009/02/win32ole-objects-class-names-and.html)からのものです。私は個人的に 'ole_methods.collect(&:to_s)'を実行します(つまり、あなたがRuby 1.8.6を使わない限り、bangは使用せず、Symbol#to_procを使用します)。 –