Sha256: ea5e8531c3a0f20f2274355079e0647a5f03d8ee1e11143bd77cfc1e56a6942f

Contents?: true

Size: 628 Bytes

Versions: 29

Compression:

Stored size: 628 Bytes

Contents

module CaseInsensitiveHash

  def self.setup(hash)
    hash.extend CaseInsensitiveHash
  end

  def downcase_keys
    @downcase_keys ||= begin
                         down = {} 
                         keys.collect{|key| 
                           down[key.to_s.downcase] = key 
                         }
                         down
                       end
  end

  def [](key, *rest)
    value = super(key, *rest)
    return value unless value.nil?
    key_downcase = key.to_s.downcase
    super(downcase_keys[key_downcase])
  end

  def values_at(*keys)
    keys.collect do |key|
      self[key]
    end
  end
  
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
scout-essentials-1.6.8 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.7 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.6 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.5 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.4 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.3 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.2 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.1 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.6.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.3.1 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.3.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.2.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.1.1 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.1.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-essentials-1.0.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-gear-9.1.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-gear-9.0.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-gear-8.1.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-gear-8.0.0 lib/scout/indiferent_hash/case_insensitive.rb
scout-gear-7.3.0 lib/scout/indiferent_hash/case_insensitive.rb