Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Hash#fetch(fetch) is not the same as doing hash[key]

  • Loading branch information...
commit 98f4aee8dac22d9e9bb3c122b43e9e5ee8ba7d1c 1 parent 3561e85
@fxn fxn authored
Showing with 11 additions and 1 deletion.
  1. +11 −1 activesupport/lib/active_support/hash_with_indifferent_access.rb
View
12 activesupport/lib/active_support/hash_with_indifferent_access.rb
@@ -96,7 +96,17 @@ def key?(key)
alias_method :has_key?, :key?
alias_method :member?, :key?
- # Fetches the value for the specified key, same as doing hash[key]
+ # Same as <tt>Hash#fetch</tt> 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
Please sign in to comment.
Something went wrong with that request. Please try again.