Class: Zakuro::Japan::Gengou::Alignment::LinearGengou
- Inherits:
-
Object
- Object
- Zakuro::Japan::Gengou::Alignment::LinearGengou
- Defined in:
- lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb
Overview
LinearGengou 直列元号
Constant Summary collapse
- INVALID_YEAR =
-1
Instance Attribute Summary collapse
-
#gengou ⇒ Gengou
readonly
元号.
-
#last_date ⇒ Western::Calendar
readonly
終了日.
-
#start_date ⇒ Western::Calendar
readonly
開始日.
Instance Method Summary collapse
-
#change_last_date? ⇒ True, False
終了日が設定された終了日と異なるか(行が変更されているか).
-
#change_start_date? ⇒ True, False
開始日が設定された開始日と異なるか(行が変更されているか).
-
#changed? ⇒ True, False
元は1繋ぎであった元号が別の行に存在するか(設定値から変更されているか)?.
-
#covered?(start_date:, last_date:) ⇒ True
完全に範囲を超えているか.
-
#in?(start_date:, last_date:) ⇒ True, False
完全に範囲内か.
-
#include?(date: Western::Calendar.new) ⇒ True, False
範囲内か.
-
#initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, gengou: Type::Base::Gengou.new) ⇒ LinearGengou
constructor
初期化.
-
#invalid? ⇒ True, False
不正か.
-
#name ⇒ String
元号名を取得する.
-
#native_last_date ⇒ Western::Calendar
設定された元号の終了日を取得する.
-
#native_start_date ⇒ Western::Calendar
設定された元号の開始日を取得する.
-
#out?(start_date:, last_date:) ⇒ True, False
完全に範囲外か.
Constructor Details
#initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, gengou: Type::Base::Gengou.new) ⇒ LinearGengou
初期化
35 36 37 38 39 40 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 35 def initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new, gengou: Type::Base::Gengou.new) @gengou = gengou @start_date = start_date.invalid? ? native_start_date : start_date @last_date = last_date.invalid? ? native_last_date : last_date end |
Instance Attribute Details
#gengou ⇒ Gengou (readonly)
Returns 元号.
26 27 28 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 26 def gengou @gengou end |
#last_date ⇒ Western::Calendar (readonly)
Returns 終了日.
24 25 26 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 24 def last_date @last_date end |
#start_date ⇒ Western::Calendar (readonly)
Returns 開始日.
22 23 24 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 22 def start_date @start_date end |
Instance Method Details
#change_last_date? ⇒ True, False
終了日が設定された終了日と異なるか(行が変更されているか)
166 167 168 169 170 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 166 def change_last_date? return false if invalid? last_date != native_last_date end |
#change_start_date? ⇒ True, False
開始日が設定された開始日と異なるか(行が変更されているか)
154 155 156 157 158 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 154 def change_start_date? return false if invalid? start_date != native_start_date end |
#changed? ⇒ True, False
元は1繋ぎであった元号が別の行に存在するか(設定値から変更されているか)?
140 141 142 143 144 145 146 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 140 def changed? return true if change_start_date? return true if change_last_date? false end |
#covered?(start_date:, last_date:) ⇒ True
完全に範囲を超えているか
128 129 130 131 132 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 128 def covered?(start_date:, last_date:) inner_start_date = @start_date inner_last_date = @last_date start_date < inner_start_date && inner_last_date < last_date end |
#in?(start_date:, last_date:) ⇒ True, False
完全に範囲内か
92 93 94 95 96 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 92 def in?(start_date:, last_date:) inner_start_date = @start_date inner_last_date = @last_date inner_start_date <= start_date && last_date <= inner_last_date end |
#include?(date: Western::Calendar.new) ⇒ True, False
範囲内か
69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 69 def include?(date: Western::Calendar.new) return false if invalid? return false if start_date.invalid? return false if last_date.invalid? return false if date < start_date return false if date > last_date true end |
#invalid? ⇒ True, False
不正か
57 58 59 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 57 def invalid? gengou.invalid? end |
#name ⇒ String
元号名を取得する
47 48 49 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 47 def name gengou.name end |
#native_last_date ⇒ Western::Calendar
設定された元号の終了日を取得する
186 187 188 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 186 def native_last_date gengou.last_date end |
#native_start_date ⇒ Western::Calendar
設定された元号の開始日を取得する
177 178 179 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 177 def native_start_date gengou.start_date.western end |
#out?(start_date:, last_date:) ⇒ True, False
完全に範囲外か
107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb', line 107 def out?(start_date:, last_date:) inner_start_date = @start_date inner_last_date = @last_date # 範囲より前 return true if start_date < inner_start_date && last_date < inner_start_date # 範囲より後 return true if inner_last_date < start_date && inner_last_date < last_date false end |