summaryrefslogtreecommitdiff
path: root/lib/hashie/hash.rb
diff options
context:
space:
mode:
authorBill Cromie <bill@cromie.org>2013-02-26 17:04:56 -0500
committerBill Cromie <bill@cromie.org>2013-02-26 17:04:56 -0500
commit0a46fe360afb8b7dcd92d42aaa3177940d25c81b (patch)
tree156ce2f81a8238e189ea400befe06dd09f787e04 /lib/hashie/hash.rb
parent328cf56de6c39ffea06770207f21ea722b9497a0 (diff)
downloadhashie-0a46fe360afb8b7dcd92d42aaa3177940d25c81b.tar.gz
reinstating symbolize keys in the to_hash method.
Diffstat (limited to 'lib/hashie/hash.rb')
-rw-r--r--lib/hashie/hash.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/hashie/hash.rb b/lib/hashie/hash.rb
index 3a6ad52..c36bb91 100644
--- a/lib/hashie/hash.rb
+++ b/lib/hashie/hash.rb
@@ -8,15 +8,17 @@ module Hashie
include HashExtensions
# Converts a mash back to a hash (with stringified keys)
- def to_hash
+ def to_hash(options={})
out = {}
keys.each do |k|
if self[k].is_a?(Array)
+ k = options[:symbolize_keys] ? k.to_sym : k.to_s
out[k] ||= []
self[k].each do |array_object|
out[k] << (Hash === array_object ? array_object.to_hash : array_object)
end
else
+ k = options[:symbolize_keys] ? k.to_sym : k.to_s
out[k] = Hash === self[k] ? self[k].to_hash : self[k]
end
end