Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #10717: minor_performance_improvements_to_keys_ext.diff

File minor_performance_improvements_to_keys_ext.diff, 1.1 kB (added by chuyeow, 8 months ago)
  • activesupport/lib/active_support/core_ext/hash/keys.rb

    old new  
    1313        # Destructively convert all keys to strings. 
    1414        def stringify_keys! 
    1515          keys.each do |key| 
    16             unless key.class.to_s == "String" # weird hack to make the tests run when string_ext_test.rb is also running 
    17               self[key.to_s] = self[key] 
    18               delete(key) 
    19             end 
     16            self[key.to_s] = delete(key) 
    2017          end 
    2118          self 
    2219        end 
     
    3128 
    3229        # Destructively convert all keys to symbols. 
    3330        def symbolize_keys! 
    34           self.replace(self.symbolize_keys) 
     31          keys.each do |key| 
     32            sym_key = (key.to_sym rescue key) || key 
     33            self[sym_key] = delete(key) unless key == sym_key 
     34          end 
     35          self 
    3536        end 
    3637 
    3738        alias_method :to_options,  :symbolize_keys