[前][次][番号順一覧][スレッド一覧]

ruby-changes:15977

From: suke <ko1@a...>
Date: Thu, 20 May 2010 20:55:42 +0900 (JST)
Subject: [ruby-changes:15977] Ruby:r27922 (trunk): * ext/win32ole/win32ole.c (ole_invoke): raise NoMethodError

suke	2010-05-20 20:55:10 +0900 (Thu, 20 May 2010)

  New Revision: 27922

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27922

  Log:
    * ext/win32ole/win32ole.c (ole_invoke): raise NoMethodError
      when COM method is not found. [ruby-core:30160] [Bug #3277]
    
    * test/win32ole/test_win32ole.rb (test_no_method_error): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/ext/win32ole/win32ole.c
    trunk/test/win32ole/test_win32ole.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27921)
+++ ChangeLog	(revision 27922)
@@ -1,3 +1,10 @@
+Thu May 20 20:47:46 2010  Masaki Suketa <masaki.suketa@n...>
+
+	* ext/win32ole/win32ole.c (ole_invoke): raise NoMethodError
+	  when COM method is not found. [ruby-core:30160] [Bug #3277]
+
+	* test/win32ole/test_win32ole.rb (test_no_method_error): ditto.
+
 Thu May 20 16:17:14 2010  NAKAMURA Usaku  <usa@r...>
 
 	* ext/psych/emitter: C99(gcc)-ism.
Index: ext/win32ole/win32ole.c
===================================================================
--- ext/win32ole/win32ole.c	(revision 27921)
+++ ext/win32ole/win32ole.c	(revision 27922)
@@ -130,7 +130,7 @@
 
 #define WC2VSTR(x) ole_wc2vstr((x), TRUE)
 
-#define WIN32OLE_VERSION "1.4.7"
+#define WIN32OLE_VERSION "1.4.8"
 
 typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
     (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -3347,7 +3347,7 @@
                 &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));
         }
Index: test/win32ole/test_win32ole.rb
===================================================================
--- test/win32ole/test_win32ole.rb	(revision 27921)
+++ test/win32ole/test_win32ole.rb	(revision 27922)
@@ -55,6 +55,13 @@
       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|

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]