summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/win32ole/lib/win32ole.rb10
-rw-r--r--test/win32ole/test_win32ole.rb13
2 files changed, 18 insertions, 5 deletions
diff --git a/ext/win32ole/lib/win32ole.rb b/ext/win32ole/lib/win32ole.rb
index be9d0d4e9b..635510b277 100644
--- a/ext/win32ole/lib/win32ole.rb
+++ b/ext/win32ole/lib/win32ole.rb
@@ -19,7 +19,15 @@ if defined?(WIN32OLE)
# #=> Did you mean? Add
#
def methods(*args)
- super + ole_methods.map(&:name)
+ super + ole_methods_safely.map(&:name)
+ end
+
+ private
+
+ def ole_methods_safely
+ ole_methods
+ rescue WIN32OLEQueryInterfaceError
+ []
end
end
end
diff --git a/test/win32ole/test_win32ole.rb b/test/win32ole/test_win32ole.rb
index 5dc4c6cfaa..9bf196a362 100644
--- a/test/win32ole/test_win32ole.rb
+++ b/test/win32ole/test_win32ole.rb
@@ -69,7 +69,12 @@ if defined?(WIN32OLE)
mnames = methods.collect {|m|
m.name
}
- assert(mnames.include?("Add"))
+ assert_include(mnames, 'Add')
+ end
+
+ def test_methods
+ methods = @dict1.methods
+ assert_include(methods, 'Add')
end
def test_ole_func_methods
@@ -77,7 +82,7 @@ if defined?(WIN32OLE)
mnames = methods.collect {|m|
m.name
}
- assert(mnames.include?("Add"))
+ assert_include(mnames, 'Add')
end
def test_ole_put_methods
@@ -85,7 +90,7 @@ if defined?(WIN32OLE)
mnames = methods.collect {|m|
m.name
}
- assert(mnames.include?("CompareMode"))
+ assert_include(mnames, 'CompareMode')
end
def test_ole_get_methods
@@ -93,7 +98,7 @@ if defined?(WIN32OLE)
mnames = methods.collect {|m|
m.name
}
- assert(mnames.include?("Count"))
+ assert_include(mnames, 'Count')
end
def test_ole_mehtod_help