lib/locale/driver/env.rb in locale-2.0.5 vs lib/locale/driver/env.rb in locale-2.0.6

- old
+ new

@@ -1,20 +1,30 @@ -=begin - locale/env.rb +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com> +# Copyright (C) 2012 Hleb Valoshka +# Copyright (C) 2008 Masao Mutoh +# +# Original: Ruby-GetText-Package-1.92.0. +# License: Ruby's or LGPL +# +# This library is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. - Copyright (C) 2008 Masao Mutoh - - You may redistribute it and/or modify it under the same - license terms as Ruby. - - Original: Ruby-GetText-Package-1.92.0. - - $Id: env.rb 27 2008-12-03 15:06:50Z mutoh $ -=end - require 'locale/tag' require 'locale/taglist' +require "locale/driver" module Locale module Driver # Locale::Driver::Env module. # Detect the user locales and the charset. @@ -22,32 +32,35 @@ # as the locale if it's defined. # This is a low-level module. Application shouldn't use this directly. module Env module_function - # Gets the locale from environment variable. (LC_ALL > LC_MESSAGES > LANG) + # Gets the locale from environment variable. (LC_ALL > LC_CTYPES > LANG) # Returns: the locale as Locale::Tag::Posix. def locale # At least one environment valiables should be set on *nix system. - [ENV["LC_ALL"], ENV["LC_MESSAGES"], ENV["LANG"]].each do |loc| + [ENV["LC_ALL"], ENV["LC_CTYPES"], ENV["LANG"]].each do |loc| if loc != nil and loc.size > 0 return Locale::Tag::Posix.parse(loc) end end nil end - # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_MESSAGES > LANG) + # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_CTYPES > LANG) # * Returns: an Array of the locale as Locale::Tag::Posix or nil. def locales - if (locales = ENV["LANGUAGE"]) - Locale::TagList.new(locales.split(/:/).collect{|v| Locale::Tag::Posix.parse(v)}) + locales = ENV["LANGUAGE"] + if (locales != nil and locales.size > 0) + locs = locales.split(/:/).collect{|v| Locale::Tag::Posix.parse(v)}.compact + if locs.size > 0 + return Locale::TagList.new(locs) + end elsif (loc = locale) - Locale::TagList.new([loc]) - else - nil + return Locale::TagList.new([loc]) end + nil end # Gets the charset from environment variable or return nil. # * Returns: the system charset. def charset # :nodoc: @@ -57,8 +70,10 @@ nil end end end + + MODULES[:env] = Env end end