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

ruby-changes:7363

From: suke <ko1@a...>
Date: Wed, 27 Aug 2008 23:43:40 +0900 (JST)
Subject: [ruby-changes:7363] Ruby:r18882 (trunk): * ext/win32ole/win32ole.c (ole_invoke): WIN32OLE#[] and WIN32OLE#[]=

suke	2008-08-27 23:43:23 +0900 (Wed, 27 Aug 2008)

  New Revision: 18882

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

  Log:
    * ext/win32ole/win32ole.c (ole_invoke): WIN32OLE#[] and WIN32OLE#[]=
      accepts number argument.
    
    * test/win32ole/test_win32ole.rb: ditto.

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18881)
+++ ChangeLog	(revision 18882)
@@ -1,3 +1,10 @@
+Wed Aug 27 23:28:51 2008  Masaki Suketa  <masaki.suketa@n...>
+
+	* ext/win32ole/win32ole.c (ole_invoke): WIN32OLE#[] and WIN32OLE#[]=
+	  accepts number argument.
+
+	* test/win32ole/test_win32ole.rb: ditto.
+
 Wed Aug 27 14:45:34 2008  NARUSE, Yui  <naruse@r...>
 
 	* test/cgi/test_cgi_core.rb: add core test.
Index: ext/win32ole/win32ole.c
===================================================================
--- ext/win32ole/win32ole.c	(revision 18881)
+++ ext/win32ole/win32ole.c	(revision 18882)
@@ -3225,7 +3225,7 @@
     op.dp.cArgs = 0;
 
     rb_scan_args(argc, argv, "1*", &cmd, &paramS);
-    if(TYPE(cmd) != T_STRING && TYPE(cmd) != T_SYMBOL) {
+    if(TYPE(cmd) != T_STRING && TYPE(cmd) != T_SYMBOL && !is_bracket) {
 	rb_raise(rb_eTypeError, "method is wrong type (expected String or Symbol)");
     }
     if (TYPE(cmd) == T_SYMBOL) {
Index: test/win32ole/test_win32ole.rb
===================================================================
--- test/win32ole/test_win32ole.rb	(revision 18881)
+++ test/win32ole/test_win32ole.rb	(revision 18882)
@@ -119,6 +119,14 @@
       assert_equal("BAR", @dict1["foo"])
     end
 
+    def test_bracket_with_numkey
+      @dict1.add(1, "ONE")
+      @dict1.add(2, "two")
+      assert_equal("ONE", @dict1[1])
+      @dict1[2] = "TWO"
+      assert_equal("TWO", @dict1[2])
+    end
+
     def test_invoke_with_array
       @dict1.add("ary1", [1,2,3])
       assert_equal([1,2,3], @dict1["ary1"])

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

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