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
This commit is contained in:
Jeremy Kemper
2005-06-13 20:40:11 +00:00
parent 37a370d8d4
commit 2e6f6ced42
2 changed files with 7 additions and 11 deletions

View File

@@ -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.
* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours.

View File

@@ -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)