Locale::Driver::CGI

Public Instance Methods

charset() click to toggle source

Gets the charset from CGI parameters. (Based on RFC2616)

 * Returns: the charset (HTTP_ACCEPT_CHARSET or nil).
    # File lib/locale/driver/cgi.rb, line 62
62:      def charset
63:        req = Thread.current[:current_request]
64:        return nil unless req
65: 
66:        charsets = req[:accept_charset]
67:        if charsets and charsets.size > 0
68:          num = charsets.index(',')
69:          charset = num ? charsets[0, num] : charsets
70:          charset = nil if charset == "*"
71:        else
72:          charset = nil
73:        end
74:        charset
75:      end
clear_current_request() click to toggle source

Clear the current request.

    # File lib/locale/driver/cgi.rb, line 94
94:      def clear_current_request
95:        Thread.current[:current_request] = nil
96:      end
locales() click to toggle source

Gets required locales from CGI parameters. (Based on RFC2616)

Returns: An Array of Locale::Tag’s subclasses

         (QUERY_STRING "lang" > COOKIE "lang" > HTTP_ACCEPT_LANGUAGE > "en")
    # File lib/locale/driver/cgi.rb, line 28
28:       def locales
29:         req = Thread.current[:current_request]
30:         return nil unless req
31: 
32:         locales = []
33: 
34:         # QUERY_STRING "lang"
35:         if langs = req[:query_langs]
36:           langs.each do |lang|
37:             locales << Locale::Tag.parse(lang)
38:           end
39:         end
40: 
41:         unless locales.size > 0
42:           # COOKIE "lang"
43:           if langs = req[:cookie_langs]
44:             langs.each do |lang|
45:               locales << Locale::Tag.parse(lang) if lang.size > 0
46:             end
47:           end
48:         end
49: 
50:         unless locales.size > 0
51:           # HTTP_ACCEPT_LANGUAGE
52:           if lang = req[:accept_language] and lang.size > 0
53:             locales += lang.gsub(/\s/, "").split(/,/).map{|v| v.split(";q=")}.map{|j| [j[0], j[1] ? j[1].to_f : 1.0]}.sort{|a,b| -(a[1] <=> b[1])}.map{|v| Locale::Tag.parse(v[0])}
54:           end
55:         end
56: 
57:         locales.size > 0 ? Locale::TagList.new(locales.uniq) : nil
58:       end
set_request(query_langs, cookie_langs, accept_language, accept_charset) click to toggle source

Set a request.

  • query_langs: An Array of QUERY_STRING value “lang”.

  • cookie_langs: An Array of cookie value “lang”.

  • accept_language: The value of HTTP_ACCEPT_LANGUAGE

  • accept_charset: The value of HTTP_ACCEPT_CHARSET

    # File lib/locale/driver/cgi.rb, line 83
83:      def set_request(query_langs, cookie_langs, accept_language, accept_charset)
84:        Thread.current[:current_request] = {
85:          :query_langs => query_langs, 
86:          :cookie_langs => cookie_langs, 
87:          :accept_language => accept_language,
88:          :accept_charset => accept_charset
89:        }
90:        self
91:      end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.