summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-21 14:53:13 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-21 14:53:13 +0000
commitdad3ce7a73b3987b1c275adbe34d035b184f1827 (patch)
tree294ed15cddceae3c3121e4dd413c74813cff1bb4
parent042d12d88499478536e9c5c0b71f18a0328d21fa (diff)
merged from trunk (r27922)
* ext/win32ole/win32ole.c (ole_invoke): merged from trunk (r27922). raise NoMethodError when COM method is not found. * test/win32ole/test_win32ole.rb (test_no_method_error): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@27948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--ext/win32ole/win32ole.c2
-rw-r--r--test/win32ole/test_win32ole.rb7
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 66de010ae0..eb91dc809e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri May 21 23:46:43 2010 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+
+ * ext/win32ole/win32ole.c (ole_invoke): merged from trunk (r27922).
+ raise NoMethodError when COM method is not found.
+
+ * test/win32ole/test_win32ole.rb (test_no_method_error): ditto.
+
Fri May 21 19:11:42 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/nkf/nkf.c (rb_nkf_convert, rb_nkf_guess): check too huge
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
index ce288f3b95..bfd8db2b53 100644
--- a/ext/win32ole/win32ole.c
+++ b/ext/win32ole/win32ole.c
@@ -3347,7 +3347,7 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket)
&wcmdname, 1, lcid, &DispID);
SysFreeString(wcmdname);
if(FAILED(hr)) {
- ole_raise(hr, eWIN32OLERuntimeError,
+ ole_raise(hr, rb_eNoMethodError,
"unknown property or method: `%s'",
StringValuePtr(cmd));
}
diff --git a/test/win32ole/test_win32ole.rb b/test/win32ole/test_win32ole.rb
index 8c8528fde3..8d72272b9c 100644
--- a/test/win32ole/test_win32ole.rb
+++ b/test/win32ole/test_win32ole.rb
@@ -55,6 +55,13 @@ if defined?(WIN32OLE)
assert_match(/^\(in setting property `compareMode': \)/, exc.message) #`
end
+ def test_no_method_error
+ exc = assert_raise(NoMethodError) {
+ @dict1.non_exist_method
+ }
+ assert_match(/non_exist_method/, exc.message)
+ end
+
def test_ole_methods
methods = @dict1.ole_methods
mnames = methods.collect {|m|