Added OrderedHash#delete [#113 state:resolved]

Signed-off-by: Joshua Peek <josh@joshpeek.com>
This commit is contained in:
Sean Ouimet 2008-05-05 10:03:11 -05:00 committed by Joshua Peek
parent a40223d36d
commit d75525b045
2 changed files with 19 additions and 0 deletions

View File

@ -18,6 +18,12 @@ module ActiveSupport
pair = assoc(key)
pair ? pair.last : nil
end
def delete(key)
pair = assoc(key)
pair ? array_index = index(pair) : nil
array_index ? delete_at(array_index).last : nil
end
def keys
collect { |key, value| key }

View File

@ -29,6 +29,19 @@ class OrderedHashTest < Test::Unit::TestCase
assert_equal value, @ordered_hash.values.last
assert_equal value, @ordered_hash[key]
end
def test_delete
key, value = 'white', 'ffffff'
bad_key = 'black'
@ordered_hash[key] = value
assert_equal @keys.length + 1, @ordered_hash.length
assert_equal value, @ordered_hash.delete(key)
assert_equal @keys.length, @ordered_hash.length
assert_nil @ordered_hash.delete(bad_key)
end
end
class OrderedOptionsTest < Test::Unit::TestCase