Add OrderedHash#values

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4411 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Sam Stephenson 2006-06-02 17:28:15 +00:00
parent 8cdf9126d3
commit c377ce50ed
3 changed files with 34 additions and 1 deletions

@ -1,5 +1,7 @@
*SVN*
* Add OrderedHash#values. [Sam Stephenson]
* Added Array#to_s(:db) that'll produce a comma-separated list of ids [DHH]. Example:
Purchase.find(:all, :conditions => "product_id IN (#{shops.products.to_s(:db)})"

@ -16,7 +16,11 @@ def [](key)
end
def keys
self.collect { |i| i.first }
collect { |key, value| key }
end
def values
collect { |key, value| value }
end
private

@ -2,6 +2,33 @@
require File.dirname(__FILE__) + '/../lib/active_support/ordered_options'
class OrderedHashTest < Test::Unit::TestCase
def setup
@keys = %w( blue green red pink orange )
@values = %w( 000099 009900 aa0000 cc0066 cc6633 )
@ordered_hash = ActiveSupport::OrderedHash.new(@keys.zip(@values))
end
def test_order
assert_equal @keys, @ordered_hash.keys
assert_equal @values, @ordered_hash.values
end
def test_access
assert @keys.zip(@values).all? { |k, v| @ordered_hash[k] == v }
end
def test_assignment
key, value = 'purple', '5422a8'
@ordered_hash[key] = value
assert_equal @keys.length + 1, @ordered_hash.length
assert_equal key, @ordered_hash.keys.last
assert_equal value, @ordered_hash.values.last
assert_equal value, @ordered_hash[key]
end
end
class OrderedOptionsTest < Test::Unit::TestCase
def test_usage
a = OrderedOptions.new