From a37b90caf4262fd0ef4141e1e15cca3745af6912 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sat, 21 Jul 2012 08:04:37 +0200 Subject: Hash#fetch(fetch) is not the same as doing hash[key] --- .../lib/active_support/hash_with_indifferent_access.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'activesupport') diff --git a/activesupport/lib/active_support/hash_with_indifferent_access.rb b/activesupport/lib/active_support/hash_with_indifferent_access.rb index 674e4acfd6..9e7cb76307 100644 --- a/activesupport/lib/active_support/hash_with_indifferent_access.rb +++ b/activesupport/lib/active_support/hash_with_indifferent_access.rb @@ -93,7 +93,17 @@ module ActiveSupport alias_method :has_key?, :key? alias_method :member?, :key? - # Fetches the value for the specified key, same as doing hash[key] + # Same as Hash#fetch where the key passed as argument can be + # either a string or a symbol: + # + # counters = HashWithIndifferentAccess.new + # counters[:foo] = 1 + # + # counters.fetch("foo") # => 1 + # counters.fetch(:bar, 0) # => 0 + # counters.fetch(:bar) {|key| 0} # => 0 + # counters.fetch(:zoo) # => KeyError: key not found: "zoo" + # def fetch(key, *extras) super(convert_key(key), *extras) end -- cgit v1.2.3