Class: Zakuro::Calculation::Gengou::Reserve::NamedRange

Inherits:
AbstractRange
  • Object
show all
Defined in:
lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb

Overview

NamedRange 予約済み計算範囲(元号名)

Constant Summary collapse

INVALID_NAME =

Returns 不正元号名.

Returns:

  • (String)

    不正元号名

Japan::Calendar::EMPTY

Instance Attribute Summary

Attributes inherited from AbstractRange

#first_list, #second_list

Instance Method Summary collapse

Methods inherited from AbstractRange

#collect_first, #collect_second, #invalid?, #japan_start_date, #renew, #western_last_year, #western_start_date, #western_start_year

Constructor Details

#initialize(start_name: INVALID_NAME, last_name: INVALID_NAME, operated: false, restored: false) ⇒ NamedRange

初期化

Parameters:

  • start_name (String) (defaults to: INVALID_NAME)

    開始元号名

  • last_name (String) (defaults to: INVALID_NAME)

    終了元号名

  • operated (True, False) (defaults to: false)

    運用値設定

  • restored (True, False) (defaults to: false)

    運用値から計算値に戻すか



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb', line 29

def initialize(start_name: INVALID_NAME, last_name: INVALID_NAME,
               operated: false, restored: false)
  @first_list = NamedList.new(
    first: true, start_name: start_name, last_name: last_name, operated: operated,
    restored: restored
  )
  @second_list = NamedList.new(
    first: false, start_name: start_name, last_name: last_name, operated: operated,
    restored: restored
  )

  start_date = western_start_date
  last_date = western_last_date

  super(
    start_date: start_date, last_date: last_date, operated: operated, restored: restored
  )
end

Instance Method Details

#newest_listList

最新の元号を取得する

Returns:

  • (List)

    最新の元号



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb', line 66

def newest_list
  return first_list if invalid_list?

  first_western_date = first_list.western_last_date
  second_western_date = second_list.western_last_date

  return second_list if first_western_date.invalid?

  return first_list if second_western_date.invalid?

  return first_list if first_western_date > second_western_date

  second_list
end

#western_last_dateWestern::Calendar

最新の元号から西暦終了日を取得する

Returns:



53
54
55
56
57
58
59
# File 'lib/zakuro/calculation/era/gengou/internal/reserve/named_range.rb', line 53

def western_last_date
  list = newest_list

  return Western::Calendar.new if list.invalid?

  list.western_last_date
end