Module: Locale::SystemCGI

Extended by:
SystemBase
Defined in:
lib/locale/cgi.rb

Overview

Locale::System module for CGI. This is a low-level class. Application shouldn’t use this directly.

Constant Summary collapse

@@default_locale =
Locale::Object.new("en", nil, "UTF-8")
@@cgi =
nil

Class Method Summary collapse

Methods included from SystemBase

charset, get_charset, locale_from_env

Class Method Details

.cgiObject

Gets the CGI object. If it is nil, returns new CGI object.

  • Returns: the CGI object



68
69
70
71
# File 'lib/locale/cgi.rb', line 68

def cgi
  @@cgi = CGI.new unless @@cgi
  @@cgi
end

.cgi=(cgi_) ⇒ Object

Sets a CGI object.

  • cgi_: CGI object

  • Returns: cgi_



61
62
63
64
# File 'lib/locale/cgi.rb', line 61

def cgi=(cgi_)
  set_cgi(cgi_)
  cgi_
end

.default_localeObject

Gets the default Locale::Object.

  • Returns: the default locale



75
76
77
# File 'lib/locale/cgi.rb', line 75

def default_locale
  @@default_locale
end

.set_cgi(cgi_) ⇒ Object

Sets a CGI object.

  • cgi_: CGI object

  • Returns: self



53
54
55
56
# File 'lib/locale/cgi.rb', line 53

def set_cgi(cgi_)
  @@cgi = cgi_
  self
end

.systemObject

Gets the default locale using setlocale and nl_langinfo.

  • Returns the system locale (Locale::Object).



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/locale/cgi.rb', line 26

def system
  return @@default_locale unless @@cgi
  cgi_ = cgi
  if cgi_.has_key?("lang") and ret = cgi_["lang"] and ret.size > 0
  elsif ret = cgi_.cookies["lang"][0]
  elsif lang = cgi_.accept_language and lang.size > 0
	num = lang.index(/;|,/)
	ret = num ? lang[0, num] : lang
  else
	ret = @@default_locale.to_str
  end
 
  codesets = cgi_.accept_charset
  if codesets and codesets.size > 0
	num = codesets.index(',')
	codeset = num ? codesets[0, num] : codesets
	codeset = @@default_locale.charset if codeset == "*"
  else
	codeset = @@default_locale.charset
  end
  Locale::Object.new(ret, nil, codeset)
end