Class: GB2260::Division
- Inherits:
-
Object
- Object
- GB2260::Division
- Defined in:
- lib/GB2260/division.rb
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#revision ⇒ Object
readonly
Returns the value of attribute revision.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #county ⇒ Object
- #description(separator = '/') ⇒ Object
- #eql?(other) ⇒ Boolean
- #hash ⇒ Object
-
#initialize(code, name, revision = nil) ⇒ Division
constructor
A new instance of Division.
- #is_county? ⇒ Boolean
- #is_prefecture? ⇒ Boolean
- #is_province? ⇒ Boolean
- #prefecture ⇒ Object
- #province ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(code, name, revision = nil) ⇒ Division
Returns a new instance of Division.
17 18 19 20 21 |
# File 'lib/GB2260/division.rb', line 17 def initialize(code, name, revision=nil) @code = code.to_s @name = name.to_s @revision = (revision || DEFAULT_REVISION).to_s end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
5 6 7 |
# File 'lib/GB2260/division.rb', line 5 def code @code end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
5 6 7 |
# File 'lib/GB2260/division.rb', line 5 def name @name end |
#revision ⇒ Object (readonly)
Returns the value of attribute revision.
5 6 7 |
# File 'lib/GB2260/division.rb', line 5 def revision @revision end |
Class Method Details
.batch(codes, revision = nil) ⇒ Object
13 14 15 |
# File 'lib/GB2260/division.rb', line 13 def self.batch(codes, revision=nil) codes.map { |code| get(code, revision) }.compact end |
.get(code, revision = nil) ⇒ Object
8 9 10 11 |
# File 'lib/GB2260/division.rb', line 8 def self.get(code, revision=nil) name = Data.search(code, revision) name && new(code, name, revision) end |
Instance Method Details
#==(other) ⇒ Object
23 24 25 |
# File 'lib/GB2260/division.rb', line 23 def ==(other) eql? other end |
#county ⇒ Object
59 60 61 |
# File 'lib/GB2260/division.rb', line 59 def county self unless is_province? or is_prefecture? end |
#description(separator = '/') ⇒ Object
31 32 33 |
# File 'lib/GB2260/division.rb', line 31 def description(separator = '/') [province, prefecture, county].compact.map(&:name).join(separator) end |
#eql?(other) ⇒ Boolean
27 28 29 |
# File 'lib/GB2260/division.rb', line 27 def eql?(other) code == other.code && revision == other.revision end |
#hash ⇒ Object
39 40 41 |
# File 'lib/GB2260/division.rb', line 39 def hash [@code, @revision].hash end |
#is_county? ⇒ Boolean
63 64 65 |
# File 'lib/GB2260/division.rb', line 63 def is_county? !is_province? and !is_prefecture? end |
#is_prefecture? ⇒ Boolean
55 56 57 |
# File 'lib/GB2260/division.rb', line 55 def is_prefecture? prefecture == self end |
#is_province? ⇒ Boolean
47 48 49 |
# File 'lib/GB2260/division.rb', line 47 def is_province? province == self end |
#prefecture ⇒ Object
51 52 53 |
# File 'lib/GB2260/division.rb', line 51 def prefecture Division.get(@code[0,4] + PREFECTURE_SUFFIX, @revision) unless is_province? end |
#province ⇒ Object
43 44 45 |
# File 'lib/GB2260/division.rb', line 43 def province Division.get(@code[0,2] + PROVINCE_SUFFIX, @revision) end |
#to_s ⇒ Object
35 36 37 |
# File 'lib/GB2260/division.rb', line 35 def to_s "<GB2260-#{revision.split(NAMESPACE_SEPARATOR)[-1]} #{code} #{description}>" end |