lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb in zakuro-0.6.1 vs lib/zakuro/era/japan/gengou/alignment/linear_gengou.rb in zakuro-0.7.0
- old
+ new
@@ -7,177 +7,180 @@
# :nodoc:
module Zakuro
# :nodoc:
module Japan
# :nodoc:
- module Alignment
- #
- # LinearGengou 直列元号
- #
- class LinearGengou
- INVALID_YEAR = -1
-
- # @return [Western::Calendar] 開始日
- attr_reader :start_date
- # @return [Western::Calendar] 終了日
- attr_reader :last_date
- # @return [Gengou] 元号
- attr_reader :gengou
-
+ module Gengou
+ # :nodoc:
+ module Alignment
#
- # 初期化
+ # LinearGengou 直列元号
#
- # @param [Western::Calendar] start_date 開始日
- # @param [Western::Calendar] last_date 終了日
- # @param [Resource::Gengou] gengou 元号
- #
- def initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new,
- gengou: Resource::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
+ class LinearGengou
+ INVALID_YEAR = -1
- #
- # 元号名を取得する
- #
- # @return [String] 元号名
- #
- def name
- @gengou.name
- end
+ # @return [Western::Calendar] 開始日
+ attr_reader :start_date
+ # @return [Western::Calendar] 終了日
+ attr_reader :last_date
+ # @return [Gengou] 元号
+ attr_reader :gengou
- #
- # 不正か
- #
- # @return [True] 不正
- # @return [False] 不正なし
- #
- def invalid?
- @gengou.invalid?
- end
+ #
+ # 初期化
+ #
+ # @param [Western::Calendar] start_date 開始日
+ # @param [Western::Calendar] last_date 終了日
+ # @param [Resource::Gengou] gengou 元号
+ #
+ def initialize(start_date: Western::Calendar.new, last_date: Western::Calendar.new,
+ gengou: Resource::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
- #
- # 範囲内か
- #
- # @param [Western::Calendar] date 西暦日
- #
- # @return [True] 範囲内
- # @return [False] 範囲外
- #
- def include?(date: Western::Calendar.new)
- return false if invalid?
+ #
+ # 元号名を取得する
+ #
+ # @return [String] 元号名
+ #
+ def name
+ @gengou.name
+ end
- return false if @start_date.invalid?
+ #
+ # 不正か
+ #
+ # @return [True] 不正
+ # @return [False] 不正なし
+ #
+ def invalid?
+ @gengou.invalid?
+ end
- return false if @last_date.invalid?
+ #
+ # 範囲内か
+ #
+ # @param [Western::Calendar] date 西暦日
+ #
+ # @return [True] 範囲内
+ # @return [False] 範囲外
+ #
+ def include?(date: Western::Calendar.new)
+ return false if invalid?
- return false if date < @start_date
+ return false if @start_date.invalid?
- return false if date > @last_date
+ return false if @last_date.invalid?
- true
- end
+ return false if date < @start_date
- #
- # 完全に範囲内か
- #
- # @param [Western::Calendar] start_date 開始日
- # @param [Western::Calendar] last_date 終了日
- #
- # @return [True] 範囲内
- # @return [False] 範囲外あり
- #
- def in?(start_date:, last_date:)
- @start_date <= start_date && last_date <= @last_date
- end
+ return false if date > @last_date
- #
- # 完全に範囲外か
- #
- # @param [Western::Calendar] start_date 開始日
- # @param [Western::Calendar] last_date 終了日
- #
- # @return [True] 範囲外
- # @return [False] 範囲内あり
- #
- def out?(start_date:, last_date:)
- # 範囲より前
- return true if start_date < @start_date && last_date < @start_date
+ true
+ end
- # 範囲より後
- return true if @last_date < start_date && @last_date < last_date
+ #
+ # 完全に範囲内か
+ #
+ # @param [Western::Calendar] start_date 開始日
+ # @param [Western::Calendar] last_date 終了日
+ #
+ # @return [True] 範囲内
+ # @return [False] 範囲外あり
+ #
+ def in?(start_date:, last_date:)
+ @start_date <= start_date && last_date <= @last_date
+ end
- false
- end
+ #
+ # 完全に範囲外か
+ #
+ # @param [Western::Calendar] start_date 開始日
+ # @param [Western::Calendar] last_date 終了日
+ #
+ # @return [True] 範囲外
+ # @return [False] 範囲内あり
+ #
+ def out?(start_date:, last_date:)
+ # 範囲より前
+ return true if start_date < @start_date && last_date < @start_date
- #
- # 完全に範囲を超えているか
- #
- # @param [Western::Calendar] start_date 開始日
- # @param [Western::Calendar] last_date 終了日
- #
- # @return [True] 完全超過
- # @return [True] 完全超過せず
- #
- def covered?(start_date:, last_date:)
- start_date < @start_date && @last_date < last_date
- end
+ # 範囲より後
+ return true if @last_date < start_date && @last_date < last_date
- #
- # 元は1繋ぎであった元号が別の行に存在するか(設定値から変更されているか)?
- #
- # @return [True] 存在する
- # @return [False] 存在しない
- #
- def changed?
- return true if change_start_date?
+ false
+ end
- return true if change_last_date?
+ #
+ # 完全に範囲を超えているか
+ #
+ # @param [Western::Calendar] start_date 開始日
+ # @param [Western::Calendar] last_date 終了日
+ #
+ # @return [True] 完全超過
+ # @return [True] 完全超過せず
+ #
+ def covered?(start_date:, last_date:)
+ start_date < @start_date && @last_date < last_date
+ end
- false
- end
+ #
+ # 元は1繋ぎであった元号が別の行に存在するか(設定値から変更されているか)?
+ #
+ # @return [True] 存在する
+ # @return [False] 存在しない
+ #
+ def changed?
+ return true if change_start_date?
- #
- # 開始日が設定された開始日と異なるか(行が変更されているか)
- #
- # @return [True] 異なる
- # @return [False] 同一
- #
- def change_start_date?
- return false if invalid?
+ return true if change_last_date?
- @start_date != native_start_date
- end
+ false
+ end
- #
- # 終了日が設定された終了日と異なるか(行が変更されているか)
- #
- # @return [True] 異なる
- # @return [False] 同一
- #
- def change_last_date?
- return false if invalid?
+ #
+ # 開始日が設定された開始日と異なるか(行が変更されているか)
+ #
+ # @return [True] 異なる
+ # @return [False] 同一
+ #
+ def change_start_date?
+ return false if invalid?
- @last_date != native_last_date
- end
+ @start_date != native_start_date
+ end
- #
- # 設定された元号の開始日を取得する
- #
- # @return [Western::Calendar]設定された元号の開始日
- #
- def native_start_date
- @gengou.both_start_date.western
- end
+ #
+ # 終了日が設定された終了日と異なるか(行が変更されているか)
+ #
+ # @return [True] 異なる
+ # @return [False] 同一
+ #
+ def change_last_date?
+ return false if invalid?
- #
- # 設定された元号の終了日を取得する
- #
- # @return [Western::Calendar] 設定された元号の終了日
- #
- def native_last_date
- @gengou.last_date
+ @last_date != native_last_date
+ end
+
+ #
+ # 設定された元号の開始日を取得する
+ #
+ # @return [Western::Calendar]設定された元号の開始日
+ #
+ def native_start_date
+ @gengou.both_start_date.western
+ end
+
+ #
+ # 設定された元号の終了日を取得する
+ #
+ # @return [Western::Calendar] 設定された元号の終了日
+ #
+ def native_last_date
+ @gengou.last_date
+ end
end
end
end
end
end