Class: Zakuro::Japan::Type::Base::VersionRange
- Inherits:
-
Object
- Object
- Zakuro::Japan::Type::Base::VersionRange
- Defined in:
- lib/zakuro/era/japan/type/base/version_range.rb
Overview
VersionRange 暦範囲情報
Instance Attribute Summary collapse
-
#last_date ⇒ Western::Calendar
readonly
終了日.
-
#last_year ⇒ Integer
readonly
終了年.
-
#name ⇒ String
readonly
暦名.
- #released ⇒ True, False readonly
-
#start_date ⇒ Both::Date
readonly
開始日(和暦/西暦).
-
#start_year ⇒ Both::Year
readonly
開始年(和暦/西暦).
Class Method Summary collapse
-
.valid_date(date:) ⇒ True, False
日付が不正なしかどうかを確認する.
-
.valid_year(year:) ⇒ True, False
年が不正なしかどうかを確認する.
Instance Method Summary collapse
-
#convert_next_start_date_to_last_date(next_start_date: Western::Calendar.new) ⇒ Object
次の元号の開始日から、元号の終了日に変換する.
-
#convert_next_start_year_to_last_year(next_start_year:) ⇒ Object
次の元号の開始年から、元号の終了年に変換する.
-
#include?(date:) ⇒ True, False
指定した日が元号に含まれるか.
-
#initialize(name: '', start_year: Both::Year.new, start_date: Both::Date.new, last_date: Western::Calendar.new, last_year: Both::Year::INVALID, released: false) ⇒ VersionRange
constructor
初期化.
-
#invalid? ⇒ True, False
不正か.
-
#to_s ⇒ String
インスタンス値(文字列)を取得する.
-
#write_last_date(last_date:) ⇒ Object
終了日を更新する.
-
#write_last_year(last_year:) ⇒ Object
終了年を更新する.
Constructor Details
#initialize(name: '', start_year: Both::Year.new, start_date: Both::Date.new, last_date: Western::Calendar.new, last_year: Both::Year::INVALID, released: false) ⇒ VersionRange
初期化
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 45 def initialize( name: '', start_year: Both::Year.new, start_date: Both::Date.new, last_date: Western::Calendar.new, last_year: Both::Year::INVALID, released: false ) @name = name @start_year = start_year @start_date = start_date @last_year = last_year @last_date = last_date @released = released end |
Instance Attribute Details
#last_date ⇒ Western::Calendar (readonly)
Returns 終了日.
28 29 30 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 28 def last_date @last_date end |
#last_year ⇒ Integer (readonly)
Returns 終了年.
26 27 28 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 26 def last_year @last_year end |
#name ⇒ String (readonly)
Returns 暦名.
20 21 22 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 20 def name @name end |
#released ⇒ True, False (readonly)
31 32 33 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 31 def released @released end |
#start_date ⇒ Both::Date (readonly)
Returns 開始日(和暦/西暦).
24 25 26 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 24 def start_date @start_date end |
#start_year ⇒ Both::Year (readonly)
Returns 開始年(和暦/西暦).
22 23 24 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 22 def start_year @start_year end |
Class Method Details
.valid_date(date:) ⇒ True, False
日付が不正なしかどうかを確認する
179 180 181 182 183 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 179 def valid_date(date:) return false unless date date.is_a?(Western::Calendar) end |
.valid_year(year:) ⇒ True, False
年が不正なしかどうかを確認する
165 166 167 168 169 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 165 def valid_year(year:) return false unless year year.is_a?(Integer) end |
Instance Method Details
#convert_next_start_date_to_last_date(next_start_date: Western::Calendar.new) ⇒ Object
次の元号の開始日から、元号の終了日に変換する
115 116 117 118 119 120 121 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 115 def convert_next_start_date_to_last_date(next_start_date: Western::Calendar.new) raise ArgumentError, 'invalid value. cannot convert' if next_start_date.invalid? @last_date = next_start_date.clone - 1 nil end |
#convert_next_start_year_to_last_year(next_start_year:) ⇒ Object
次の元号の開始年から、元号の終了年に変換する
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 97 def convert_next_start_year_to_last_year(next_start_year:) if start_year.western >= next_start_year @last_year = next_start_year return end @last_year = next_start_year - 1 nil end |
#include?(date:) ⇒ True, False
指定した日が元号に含まれるか
131 132 133 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 131 def include?(date:) date >= start_date.western && date <= last_date end |
#invalid? ⇒ True, False
不正か
141 142 143 144 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 141 def invalid? start_year.japan == -1 || start_year.invalid? || start_date.invalid? || last_date.invalid? end |
#to_s ⇒ String
インスタンス値(文字列)を取得する
151 152 153 154 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 151 def to_s "name: #{@name}, start_year: #{start_year.format}, " \ "start_date: #{start_date.format}, last_date: #{last_date.format}" end |
#write_last_date(last_date:) ⇒ Object
終了日を更新する
82 83 84 85 86 87 88 89 90 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 82 def write_last_date(last_date:) unless self.class.valid_date(date: last_date) raise ArgumentError, "invalid date format. [#{last_date}]" end @last_date = last_date nil end |
#write_last_year(last_year:) ⇒ Object
終了年を更新する
67 68 69 70 71 72 73 |
# File 'lib/zakuro/era/japan/type/base/version_range.rb', line 67 def write_last_year(last_year:) unless self.class.valid_year(year: last_year) raise ArgumentError, "invalid year format. [#{last_year}]" end @last_year = last_year end |