Sha256: b6f4f933d227215b27149435ad8a235c2051fc9a2c6863d851190d89ae42f4a6

Contents?: true

Size: 523 Bytes

Versions: 6

Compression:

Stored size: 523 Bytes

Contents

# A case-normalizing Hash, adjusting on [] and []=.
# Shamelessly swiped from Rack
module Resourceful
  class Header < Hash
    def initialize(hash={})
      hash.each { |k, v| self[k] = v }
    end

    def to_hash
      {}.replace(self)
    end

    def [](k)
      super capitalize(k)
    end

    def []=(k, v)
      super capitalize(k), v
    end

    def has_key?(k)
      super capitalize(k)
    end

    def capitalize(k)
      k.to_s.downcase.gsub(/^.|[-_\s]./) { |x| x.upcase }.gsub('_', '-')
    end
  end
end


Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
paul-resourceful-0.2.3 lib/resourceful/header.rb
paul-resourceful-0.3.0 lib/resourceful/header.rb
paul-resourceful-0.3.1 lib/resourceful/header.rb
resourceful-0.2.1 lib/resourceful/header.rb
resourceful-0.3.1 lib/resourceful/header.rb
resourceful-0.3.0 lib/resourceful/header.rb