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

ruby-changes:8611

From: matz <ko1@a...>
Date: Sat, 8 Nov 2008 07:11:18 +0900 (JST)
Subject: [ruby-changes:8611] Ruby:r20146 (trunk): * ext/dbm/dbm.c (fdbm_index): make #index warn like Hash.

matz	2008-11-08 07:07:05 +0900 (Sat, 08 Nov 2008)

  New Revision: 20146

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

  Log:
    * ext/dbm/dbm.c (fdbm_index): make #index warn like Hash.
    * ext/dbm/dbm.c (fdbm_key): new method.
    
    * ext/sdbm/init.c: ditto.

  Modified files:
    trunk/ChangeLog
    trunk/ext/dbm/dbm.c
    trunk/ext/sdbm/init.c
    trunk/test/dbm/test_dbm.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20145)
+++ ChangeLog	(revision 20146)
@@ -1,3 +1,11 @@
+Sat Nov  8 06:51:42 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* ext/dbm/dbm.c (fdbm_index): make #index warn like Hash.
+
+	* ext/dbm/dbm.c (fdbm_key): new method.
+
+	* ext/sdbm/init.c: ditto.
+
 Sat Nov  8 06:20:42 2008  Yukihiro Matsumoto  <matz@r...>
 
 	* ext/curses/curses.c: curses encoding should obey locale.
Index: ext/sdbm/init.c
===================================================================
--- ext/sdbm/init.c	(revision 20145)
+++ ext/sdbm/init.c	(revision 20146)
@@ -176,7 +176,7 @@
 }
 
 static VALUE
-fsdbm_index(VALUE obj, VALUE valstr)
+fsdbm_key(VALUE obj, VALUE valstr)
 {
     datum key, val;
     struct dbmdata *dbmp;
@@ -197,6 +197,13 @@
 }
 
 static VALUE
+fsdbm_index(VALUE hash, VALUE value)
+{
+    rb_warn("SDBM#index is deprecated; use SDBM#key");
+    return fsdbm_key(hash, value);
+}
+
+static VALUE
 fsdbm_select(VALUE obj)
 {
     VALUE new = rb_ary_new();
@@ -671,6 +678,7 @@
     rb_define_method(rb_cDBM, "[]=", fsdbm_store, 2);
     rb_define_method(rb_cDBM, "store", fsdbm_store, 2);
     rb_define_method(rb_cDBM, "index",  fsdbm_index, 1);
+    rb_define_method(rb_cDBM, "index",  fsdbm_key, 1);
     rb_define_method(rb_cDBM, "select",  fsdbm_select, 0);
     rb_define_method(rb_cDBM, "values_at",  fsdbm_values_at, -1);
     rb_define_method(rb_cDBM, "length", fsdbm_length, 0);
Index: ext/dbm/dbm.c
===================================================================
--- ext/dbm/dbm.c	(revision 20145)
+++ ext/dbm/dbm.c	(revision 20146)
@@ -198,7 +198,7 @@
 }
 
 static VALUE
-fdbm_index(VALUE obj, VALUE valstr)
+fdbm_key(VALUE obj, VALUE valstr)
 {
     datum key, val;
     struct dbmdata *dbmp;
@@ -220,6 +220,13 @@
 }
 
 static VALUE
+fdbm_index(VALUE hash, VALUE value)
+{
+    rb_warn("DBM#index is deprecated; use DBM#key");
+    return fdbm_key(hash, value);
+}
+
+static VALUE
 fdbm_select(VALUE obj)
 {
     VALUE new = rb_ary_new();
@@ -692,6 +699,7 @@
     rb_define_method(rb_cDBM, "[]=", fdbm_store, 2);
     rb_define_method(rb_cDBM, "store", fdbm_store, 2);
     rb_define_method(rb_cDBM, "index",  fdbm_index, 1);
+    rb_define_method(rb_cDBM, "key",  fdbm_key, 1);
     rb_define_method(rb_cDBM, "select",  fdbm_select, 0);
     rb_define_method(rb_cDBM, "values_at", fdbm_values_at, -1);
     rb_define_method(rb_cDBM, "length", fdbm_length, 0);
Index: test/dbm/test_dbm.rb
===================================================================
--- test/dbm/test_dbm.rb	(revision 20145)
+++ test/dbm/test_dbm.rb	(revision 20146)
@@ -160,9 +160,9 @@
       }
     end
 
-    def test_index
+    def test_key
       assert_equal('bar', @dbm['foo'] = 'bar')
-      assert_equal('foo', @dbm.index('bar'))
+      assert_equal('foo', @dbm.key('bar'))
       assert_nil(@dbm['bar'])
     end
 
@@ -217,7 +217,7 @@
 
       n = 0
       ret = @dbm.each_pair {|key, val|
-        assert_not_nil(i = keys.index(key))
+        assert_not_nil(i = keys.key(key))
         assert_equal(val, values[i])
 
         n += 1
@@ -238,8 +238,8 @@
 
       n = 0
       ret = @dbm.each_value {|val|
-        assert_not_nil(key = @dbm.index(val))
-        assert_not_nil(i = keys.index(key))
+        assert_not_nil(key = @dbm.key(val))
+        assert_not_nil(i = keys.key(key))
         assert_equal(val, values[i])
 
         n += 1
@@ -260,7 +260,7 @@
 
       n = 0
       ret = @dbm.each_key {|key|
-        assert_not_nil(i = keys.index(key))
+        assert_not_nil(i = keys.key(key))
         assert_equal(@dbm[key], values[i])
 
         n += 1

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

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