Class: Locale::Tag::Simple

Inherits:
Object
  • Object
show all
Defined in:
lib/locale/tag/simple.rb

Overview

Abstract language tag class. This class has <language>, <region> which all of language tag specifications have.

  • ja (language: ISO 639 (2 or 3 alpha))

  • ja_JP (country: RFC4646 (ISO3166/UN M.49) (2 alpha or 3 digit)

  • ja-JP

  • ja-392

Direct Known Subclasses

Common, Irregular, Posix

Constant Summary collapse

ALPHA =
'[a-z]'
DIGIT =
'[0-9]'
ALPHANUM =
"[a-zA-Z0-9]"
LANGUAGE =

ISO 639

"(#{ALPHA}{2,3})"
REGION =

RFC4646 (ISO3166/UN M.49)

"(#{ALPHA}{2}|#{DIGIT}{3})"
TAG_RE =
/\A#{LANGUAGE}(?:[_-]#{REGION})?\Z/i

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(language, region = nil) ⇒ Simple

Create a Locale::Tag::Simple



68
69
70
71
72
73
# File 'lib/locale/tag/simple.rb', line 68

def initialize(language, region = nil)
  raise "language can't be nil." unless language
  @language, @region = language, region
  @language = @language.downcase if @language
  @region = @region.upcase if @region
end

Instance Attribute Details

#languageObject

Returns the value of attribute language.



31
32
33
# File 'lib/locale/tag/simple.rb', line 31

def language
  @language
end

#regionObject

Returns the value of attribute region.



31
32
33
# File 'lib/locale/tag/simple.rb', line 31

def region
  @region
end

#tagObject

tag is set when .parse method is called. This value is used when the program want to know the original String.



36
37
38
# File 'lib/locale/tag/simple.rb', line 36

def tag
  @tag
end

Class Method Details

.parse(tag) ⇒ Object

Parse the language tag and return the new Locale::Tag::Simple.



55
56
57
58
59
60
61
62
63
64
# File 'lib/locale/tag/simple.rb', line 55

def parse(tag)
  case tag
  when TAG_RE
    ret = self.new($1, $2)
    ret.tag = tag
    ret
  else
    nil
  end
end

Instance Method Details

#<=>(other) ⇒ Object



86
87
88
# File 'lib/locale/tag/simple.rb', line 86

def <=>(other)
  self.to_s <=> other.to_s
end

#==(other) ⇒ Object

:nodoc:



90
91
92
# File 'lib/locale/tag/simple.rb', line 90

def ==(other)  #:nodoc:
  other != nil and hash == other.hash
end

#candidatesObject

Returns an Array of tag-candidates order by priority. Use Locale.candidates instead of this method.



125
126
127
# File 'lib/locale/tag/simple.rb', line 125

def candidates
  [self.class.new(language, region), self.class.new(language)]
end

#countryObject

For backward compatibility.



107
# File 'lib/locale/tag/simple.rb', line 107

def country; region end

#eql?(other) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


94
95
96
# File 'lib/locale/tag/simple.rb', line 94

def eql?(other) #:nodoc:
  self.==(other)
end

#hashObject

:nodoc:



98
99
100
# File 'lib/locale/tag/simple.rb', line 98

def hash #:nodoc:
  "#{self.class}:#{to_s}".hash
end

#inspectObject

:nodoc:



102
103
104
# File 'lib/locale/tag/simple.rb', line 102

def inspect  #:nodoc:
  %Q[#<#{self.class}: #{to_s}>]
end

#to_sObject

Returns the language tag as the String.

<language>_<REGION>
(e.g.) "ja_JP"


78
79
80
# File 'lib/locale/tag/simple.rb', line 78

def to_s
  to_string
end

#to_strObject

:nodoc:



82
83
84
# File 'lib/locale/tag/simple.rb', line 82

def to_str  #:nodoc:
  to_s
end