Class: Webmachine::Headers
- Inherits:
-
Hash
- Object
- Hash
- Webmachine::Headers
- Defined in:
- lib/webmachine/headers.rb
Overview
Case-insensitive Hash of Request headers
Class Method Summary (collapse)
-
+ (Webmachine::Headers) [](*args)
Creates a new headers object populated with the given objects.
-
+ (Webmachine::Headers) from_cgi(env)
Convert CGI-style Hash into Request headers.
Instance Method Summary (collapse)
-
- (Object) [](key)
Fetch a header.
-
- (Object) []=(key, value)
Set a header.
-
- (Object) delete(key)
Delete a header.
-
- (Object) fetch(*args, &block)
Returns the value for the given key.
-
- (Object) grep(pattern)
Select matching headers.
Class Method Details
+ (Webmachine::Headers) [](key, value, ...) + (Webmachine::Headers) [](array) + (Webmachine::Headers) [](object)
Creates a new headers object populated with the given objects.
It supports the same forms as Hash.[].
30 31 32 |
# File 'lib/webmachine/headers.rb', line 30 def self.[](*args) super(super(*args).map {|k, v| [k.to_s.downcase, v]}) end |
+ (Webmachine::Headers) from_cgi(env)
Convert CGI-style Hash into Request headers
7 8 9 10 11 12 13 14 |
# File 'lib/webmachine/headers.rb', line 7 def self.from_cgi(env) env.inject(new) do |h,(k,v)| if k =~ /^HTTP_(\w+)$/ || k =~ /^(CONTENT_(?:TYPE|LENGTH))$/ h[$1.tr("_", "-")] = v end h end end |
Instance Method Details
- (Object) [](key)
Fetch a header
35 36 37 |
# File 'lib/webmachine/headers.rb', line 35 def [](key) super transform_key(key) end |
- (Object) []=(key, value)
Set a header
40 41 42 |
# File 'lib/webmachine/headers.rb', line 40 def []=(key,value) super transform_key(key), value end |
- (Object) delete(key)
Delete a header
68 69 70 |
# File 'lib/webmachine/headers.rb', line 68 def delete(key) super transform_key(key) end |
- (Object) fetch(key) - (Object) fetch(key, default) - (Object) fetch(key) {|key| ... }
Returns the value for the given key. If the key can't be found,
there are several options:
With no other arguments, it will raise a KeyError exception;
if default is given, then that will be returned;
if the optional code block is specified, then that will be run and its
result returned.
63 64 65 |
# File 'lib/webmachine/headers.rb', line 63 def fetch(*args, &block) super(transform_key(args.shift), *args, &block) end |
- (Object) grep(pattern)
Select matching headers
73 74 75 |
# File 'lib/webmachine/headers.rb', line 73 def grep(pattern) self.class[select { |k,_| pattern === k }] end |