diff options
author | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-12 12:26:39 +0000 |
---|---|---|
committer | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-12 12:26:39 +0000 |
commit | 385edf1e5c6dd5465067bae293844e640e9887a2 (patch) | |
tree | 4f7dbe52268e115e7eb879aac99c8b51ab769b90 /lib/webrick/httprequest.rb | |
parent | 90b337ce3702db3bf12a9bc13bd36c39ccef9c7e (diff) |
* lib/webrick/config.rb:
add WEBrick::Config::FileHandler[:AcceptableLanguages].
* lib/webrick/httpservlet/filehandler.rb
(WEBrick::HTTPServlet::FileHandler#set_filename): search files
having suffix of language-name which Accept-Language header field
includes if :AcceptableLanguages options is present.
* lib/webrick/httpservlet/filehandler.rb
(WEBrick::HTTPServlet::FileHandler#get_servlet): new method to
search servlet correspond to the suffix of filename.
* lib/webrick/httprequest.rb: add attributes access methods: accept,
accept_charset, accept_encoding, accept_language, content_length
and content_type.
* lib/webrick/httpresponse.rb: add attribute access methods:
content_length, content_length=, content_type and content_type=.
* lib/webrick/httputils.rb (WEBrick::HTTPUtils.mime_types):
use the second suffix to detect media type. (the first suffix
may be a language name.)
* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_qvalues):
add method to parse Accept header field. it returns an Array of
values sorted by the qvalues.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/webrick/httprequest.rb')
-rw-r--r-- | lib/webrick/httprequest.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/webrick/httprequest.rb b/lib/webrick/httprequest.rb index 8943a037ff..576a750869 100644 --- a/lib/webrick/httprequest.rb +++ b/lib/webrick/httprequest.rb @@ -32,6 +32,8 @@ module WEBrick # Header and entity body attr_reader :raw_header, :header, :cookies + attr_reader :accept, :accept_charset + attr_reader :accept_encoding, :accept_language # Misc attr_accessor :user @@ -56,6 +58,8 @@ module WEBrick @raw_header = Array.new @header = nil @cookies = [] + @accept = @accept_charset = + @accept_encoding = @accept_language = nil @body = "" @addr = @peeraddr = nil @@ -83,6 +87,10 @@ module WEBrick @header['cookie'].each{|cookie| @cookies += Cookie::parse(cookie) } + @accept = HTTPUtils.parse_qvalues(self['accept']) + @accept_charset = HTTPUtils.parse_qvalues(self['accept-charset']) + @accept_encoding = HTTPUtils.parse_qvalues(self['accept-encoding']) + @accept_language = HTTPUtils.parse_qvalues(self['accept-language']) end return if @request_method == "CONNECT" return if @unparsed_uri == "*" @@ -124,6 +132,14 @@ module WEBrick @query end + def content_length + return Integer(self['content-length']) + end + + def content_type + return self['content-type'] + end + def [](header_name) if @header value = @header[header_name.downcase] |