1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Enhance Symbol#to_proc so it works with list objects, such as multi-dimensional arrays. Closes #5295 [nov@yo.rim.or.jp]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4455 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Rick Olson 2006-06-17 03:01:57 +00:00
parent 2bbcff8cf4
commit ae0e1a0682
3 changed files with 8 additions and 1 deletions

View file

@ -1,5 +1,10 @@
*SVN*
* Enhance Symbol#to_proc so it works with list objects, such as multi-dimensional arrays. Closes #5295 [nov@yo.rim.or.jp]. Example:
{1 => "one", 2 => "two", 3 => "three"}.sort_by(&:first).map(&:last)
#=> ["one", "two", "three"]
* Added Hash.create_from_xml(string) which will create a hash from a XML string and even typecast if possible [DHH]. Example:
Hash.create_from_xml <<-EOT

View file

@ -7,6 +7,6 @@ class Symbol
# # The same as people.select { |p| p.manager? }.collect { |p| p.salary }
# people.select(&:manager?).collect(&:salary)
def to_proc
Proc.new { |obj, *args| obj.send(self, *args) }
Proc.new { |*args| args.shift.__send__(self, *args) }
end
end

View file

@ -4,5 +4,7 @@ require File.dirname(__FILE__) + '/../../lib/active_support/core_ext/symbol'
class SymbolTests < Test::Unit::TestCase
def test_to_proc
assert_equal %w(one two three), [:one, :two, :three].map(&:to_s)
assert_equal(%w(one two three),
{1 => "one", 2 => "two", 3 => "three"}.sort_by(&:first).map(&:last))
end
end