public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Added OrderedHash#delete [#113 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
snostorm (author)
Mon May 05 08:03:11 -0700 2008
josh (committer)
Mon May 05 08:03:11 -0700 2008
commit  d75525b045b9f27ed108912a6dbdbad5ab775045
tree    ed768c14c9df5e0ac0b1a2c99699c9cd6d777ef0
parent  a40223d36d4e90d520b09d51a3f2a7b3cd6c2f07
...
18
19
20
 
 
 
 
 
 
21
22
23
...
18
19
20
21
22
23
24
25
26
27
28
29
0
@@ -18,6 +18,12 @@ module ActiveSupport
0
         pair = assoc(key)
0
         pair ? pair.last : nil
0
       end
0
+      
0
+      def delete(key)
0
+        pair = assoc(key)
0
+        pair ? array_index = index(pair) : nil
0
+        array_index ? delete_at(array_index).last : nil
0
+      end
0
 
0
       def keys
0
         collect { |key, value| key }
...
29
30
31
 
 
 
 
 
 
 
 
 
 
 
 
 
32
33
34
...
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
0
@@ -29,6 +29,19 @@ class OrderedHashTest < Test::Unit::TestCase
0
     assert_equal value, @ordered_hash.values.last
0
     assert_equal value, @ordered_hash[key]
0
   end
0
+  
0
+  def test_delete
0
+    key, value = 'white', 'ffffff'
0
+    bad_key = 'black'
0
+    
0
+    @ordered_hash[key] = value
0
+    assert_equal @keys.length + 1, @ordered_hash.length
0
+    
0
+    assert_equal value, @ordered_hash.delete(key)
0
+    assert_equal @keys.length, @ordered_hash.length
0
+    
0
+    assert_nil @ordered_hash.delete(bad_key)
0
+  end
0
 end
0
 
0
 class OrderedOptionsTest < Test::Unit::TestCase

Comments