class Locale::Tag::Posix

  • C/POSIX (-> en_US)
    * ja_JP.UTF-8@Osaka
    * ja_JP.UTF-8
    * ja_JP
    * ja
    Locale tag class for POSIX locale

def self.parse(tag)

def self.parse(tag)
  case tag
  when /^(C|POSIX)$/
    ret = self.new("en", "US")
    ret.tag = tag
    ret
  when TAG_RE
    ret = self.new($1, $2, $3, $4)
    ret.tag = tag
    ret
  else
    nil
  end
end

def candidates

Use Locale.candidates instead of this method.
Returns an Array of tag-candidates order by priority.
def candidates
  [self.class.new(language, region, charset, modifier),  #ja_JP.UTF-8@Modifier
   self.class.new(language, region, charset),            #ja_JP.UTF-8
   self.class.new(language, region, nil, modifier),      #ja_JP@Modifier
   self.class.new(language, region, nil, nil),           #ja_JP@Modifier
   self.class.new(language, nil, charset, modifier),     #ja.UTF-8@Modifier
   self.class.new(language, nil, charset),               #ja.UTF-8
   self.class.new(language, nil, nil, modifier),         #ja@Modifier
   self.class.new(language)]                             #ja
end

def charset=(val)

Set the charset.
def charset=(val)
  @charset = val
end

def convert_to(klass)

def convert_to(klass)
  if klass == Simple
    super
  elsif klass == Posix
    klass.new(language, region, charset, modifier)
  else
    klass.new(language, nil, region, modifier ? [modifier] : [])
  end
end

def initialize(language, region = nil, charset = nil, modifier = nil)

def initialize(language, region = nil, charset = nil, modifier = nil)
  @charset, @modifier = charset, modifier
  super(language, region)
end

def modifier=(val)

Set the modifier as a String
def modifier=(val)
  @modifier = val
end

def to_s

(e.g.) "ja_JP.EUC-JP@Modifier"
_.@
Returns the language tag.
def to_s
  s = @language.dup
  s << "_#{@region}" if @region
  s << ".#{@charset}" if @charset
  s << "@#{@modifier}" if @modifier
  s
end