mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
42ab1fd2a6
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
22 lines
588 B
Ruby
22 lines
588 B
Ruby
require 'win32ole'
|
|
|
|
module WIN32OLESpecs
|
|
MSXML_AVAILABLE = WIN32OLE_TYPELIB.typelibs.any? { |t| t.name.start_with?('Microsoft XML') }
|
|
SYSTEM_MONITOR_CONTROL_AVAILABLE = WIN32OLE_TYPELIB.typelibs.any? { |t| t.name.start_with?('System Monitor Control') }
|
|
|
|
def self.new_ole(name)
|
|
tries = 0
|
|
begin
|
|
WIN32OLE.new(name)
|
|
rescue WIN32OLERuntimeError => e
|
|
if tries < 3
|
|
tries += 1
|
|
$stderr.puts "WIN32OLESpecs#new_ole retry (#{tries}): #{e.class}: #{e.message}"
|
|
sleep(2 ** tries)
|
|
retry
|
|
else
|
|
raise
|
|
end
|
|
end
|
|
end
|
|
end
|