aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-06-13 20:40:11 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-06-13 20:40:11 +0000
commit2e6f6ced428f3b3b574e7f6a7e1511b2cf470039 (patch)
treeeff2f72f5dfc77ac4318aac75013f1aff3ef418a
parent37a370d8d4e3e1a5bf707ffac9cd188c07572248 (diff)
downloadrails-2e6f6ced428f3b3b574e7f6a7e1511b2cf470039.tar.gz
rails-2e6f6ced428f3b3b574e7f6a7e1511b2cf470039.tar.bz2
rails-2e6f6ced428f3b3b574e7f6a7e1511b2cf470039.zip
r1300@iwill: jeremy | 2005-06-13 18:31:29 -0700
Ticket 1436 - Faster indifferent hash r1301@iwill: jeremy | 2005-06-13 18:45:28 -0700 Apply, tweak, test. r1305@iwill: jeremy | 2005-06-13 18:50:24 -0700 Updated changelog. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1413 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r--activesupport/CHANGELOG4
-rw-r--r--activesupport/lib/active_support/core_ext/hash/indifferent_access.rb14
2 files changed, 7 insertions, 11 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG
index 2c70cecc2b..1fe697a227 100644
--- a/activesupport/CHANGELOG
+++ b/activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Increased the speed of indifferent hash access by using Hash#default. #1436 [Nicholas Seckar]
+
* Added that " " is now also blank? (using strip if available)
* Fixed Dependencies so all modules are able to load missing constants #1173 [Nicholas Seckar]
@@ -137,4 +139,4 @@
* Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied
-* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours. \ No newline at end of file
+* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours.
diff --git a/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb b/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb
index 91445610e2..92653171f9 100644
--- a/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb
+++ b/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb
@@ -8,16 +8,10 @@ class HashWithIndifferentAccess < Hash
super(constructor)
end
end
-
- alias_method :regular_reader, :[] unless method_defined?(:regular_reader)
-
- def [](key)
- case key
- when Symbol: regular_reader(key.to_s) || regular_reader(key)
- when String: regular_reader(key) || regular_reader(key.to_sym)
- else regular_reader(key)
- end
- end
+
+ def default(key)
+ self[key.to_s] if key.is_a?(Symbol)
+ end
alias_method :regular_writer, :[]= unless method_defined?(:regular_writer)