Class: Zakuro::Calculation::Gengou::Reserve::AbstractList
- Inherits:
-
Object
- Object
- Zakuro::Calculation::Gengou::Reserve::AbstractList
- Defined in:
- lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb
Overview
AbstractList
抽象予約元号一覧
Constant Summary collapse
- INVALID_YEAR =
Returns 不正年.
-1 # @return [Integer] 最大月日数
- MAX_MONTH_DAYS =
Returns 最大月日数.
30
Instance Attribute Summary collapse
-
#index ⇒ Symbol
readonly
行番号.
-
#last_date ⇒ Western::Calendar
readonly
終了日.
-
#list ⇒ Array<Japan::Alignment::LinearGengou>
readonly
予約元号一覧.
- #operated ⇒ True, False readonly
- #restored ⇒ True, False readonly
-
#start_date ⇒ Western::Calendar
readonly
開始日.
Instance Method Summary collapse
-
#change_start_date? ⇒ True, False
開始日が設定された開始日と異なるか(行が変更されているか).
-
#collect(start_date: Western::Calendar.new, last_date: Western::Calendar.new) ⇒ Array<Gengou::Counter>
範囲内元号を取得する.
-
#get(western_date: Western::Calendar.new) ⇒ Gengou::Counter
元号を取得する.
-
#initialize(index:, start_date: Western::Calendar.new, last_date: Western::Calendar, operated: false, restored: false) ⇒ AbstractList
constructor
初期化.
-
#invalid? ⇒ True, False
不正か.
-
#japan_start_date ⇒ Japan::Calendar
和暦開始日を取得する.
-
#native_start_date ⇒ Western::Calendar
設定された元号の開始日を取得する.
-
#western_last_date ⇒ Western::Calendar
西暦終了日を取得する.
-
#western_last_year ⇒ Integer
西暦終了年を取得する.
-
#western_start_date ⇒ Western::Calendar
西暦開始日を取得する.
-
#western_start_year ⇒ Integer
西暦開始年を取得する.
Constructor Details
#initialize(index:, start_date: Western::Calendar.new, last_date: Western::Calendar, operated: false, restored: false) ⇒ AbstractList
初期化
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 54 def initialize(index:, start_date: Western::Calendar.new, last_date: Western::Calendar, operated: false, restored: false) @index = index @start_date = start_date.clone @last_date = last_date.clone @operated = operated @restored = restored @list = [] update end |
Instance Attribute Details
#index ⇒ Symbol (readonly)
Returns 行番号.
31 32 33 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 31 def index @index end |
#last_date ⇒ Western::Calendar (readonly)
Returns 終了日.
35 36 37 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 35 def last_date @last_date end |
#list ⇒ Array<Japan::Alignment::LinearGengou> (readonly)
Returns 予約元号一覧.
43 44 45 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 43 def list @list end |
#operated ⇒ True, False (readonly)
38 39 40 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 38 def operated @operated end |
#restored ⇒ True, False (readonly)
41 42 43 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 41 def restored @restored end |
#start_date ⇒ Western::Calendar (readonly)
Returns 開始日.
33 34 35 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 33 def start_date @start_date end |
Instance Method Details
#change_start_date? ⇒ True, False
開始日が設定された開始日と異なるか(行が変更されているか)
199 200 201 202 203 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 199 def change_start_date? return false if list.empty? list[0].change_start_date? end |
#collect(start_date: Western::Calendar.new, last_date: Western::Calendar.new) ⇒ Array<Gengou::Counter>
範囲内元号を取得する
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 91 def collect(start_date: Western::Calendar.new, last_date: Western::Calendar.new) result = [] list.each do |linear_gengou| next if linear_gengou.out?(start_date: start_date, last_date: last_date) result.push( Gengou::Counter.new( gengou: linear_gengou.gengou.clone, start_date: linear_gengou.start_date.clone, last_date: linear_gengou.last_date.clone ) ) end EmptyLink.fill(counters: result, start_date: start_date, last_date: last_date) result end |
#get(western_date: Western::Calendar.new) ⇒ Gengou::Counter
元号を取得する
73 74 75 76 77 78 79 80 81 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 73 def get(western_date: Western::Calendar.new) list.each do |linear_gengou| next if linear_gengou.out?(start_date: western_date, last_date: western_date) Gengou::Counter.new(gengou: linear_gengou.gengou).clone end Gengou::Counter.new end |
#invalid? ⇒ True, False
不正か
174 175 176 177 178 179 180 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 174 def invalid? return true unless list return true if list.empty? false end |
#japan_start_date ⇒ Japan::Calendar
和暦開始日を取得する
116 117 118 119 120 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 116 def japan_start_date return Japan::Calendar.new if invalid? list[0].gengou.start_date.japan.clone end |
#native_start_date ⇒ Western::Calendar
設定された元号の開始日を取得する
187 188 189 190 191 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 187 def native_start_date return Western::Calendar.new if list.empty? list[0].native_start_date end |
#western_last_date ⇒ Western::Calendar
西暦終了日を取得する
138 139 140 141 142 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 138 def western_last_date return Western::Calendar.new if invalid? list[-1].gengou.last_date.clone end |
#western_last_year ⇒ Integer
西暦終了年を取得する
160 161 162 163 164 165 166 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 160 def western_last_year return INVALID_YEAR if invalid? return INVALID_YEAR if list.empty? list[-1].gengou.last_year end |
#western_start_date ⇒ Western::Calendar
西暦開始日を取得する
127 128 129 130 131 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 127 def western_start_date return Western::Calendar.new if invalid? list[0].gengou.start_date.western.clone end |
#western_start_year ⇒ Integer
西暦開始年を取得する
149 150 151 152 153 |
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/abstract_list.rb', line 149 def western_start_year return INVALID_YEAR if invalid? list[0].gengou.start_year.western.clone end |