lib/webmachine/headers.rb in webmachine-0.2.0 vs lib/webmachine/headers.rb in webmachine-0.3.0
- old
+ new
@@ -1,19 +1,34 @@
module Webmachine
# Case-insensitive Hash of Request headers
class Headers < ::Hash
+ # Convert CGI-style Hash into Request headers
+ # @param [Hash] env a hash of CGI-style env/headers
+ def self.from_cgi(env)
+ env.inject(new) do |h,(k,v)|
+ if k =~ /^HTTP_(\w+)$/
+ h[$1.tr("_", "-")] = v
+ end
+ h
+ end
+ end
+
+ # Fetch a header
def [](key)
super transform_key(key)
end
+ # Set a header
def []=(key,value)
super transform_key(key), value
end
+ # Delete a header
def delete(key)
super transform_key(key)
end
-
+
+ # Select matching headers
def grep(pattern)
self.class[select { |k,_| pattern === k }]
end
private