class Zakuro::Calculation::Base::MultiGengou

MultiGengou 複数元号

Attributes

first_line[R]

@return [Japan::Gengou] 元号(1行目)

new_year_date[R]

@return [Western::Calendar] 元旦

second_line[R]

@return [Japan::Gengou] 元号(2行目)

Public Class Methods

new(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new, new_year_date: Western::Calendar.new) click to toggle source
# File lib/zakuro/calculation/base/multi_gengou.rb, line 23
def initialize(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new,
               new_year_date: Western::Calendar.new)
  @first_line = first_line
  @second_line = second_line
  @new_year_date = new_year_date
end

Public Instance Methods

initialize_copy(obj) click to toggle source

ディープコピー

@param [MultiGengou] obj 自身

# File lib/zakuro/calculation/base/multi_gengou.rb, line 75
def initialize_copy(obj)
  @first_line = obj.first_line.clone
  @second_line = obj.second_line.clone
end
next_year() click to toggle source

次年にする

@param [Japan::Gengou] first_line 元号(1行目) @param [Japan::Gengou] second_line 元号(2行目)

@return [MultiGengou] 自身

# File lib/zakuro/calculation/base/multi_gengou.rb, line 63
def next_year
  @first_line.next_year
  @second_line.next_year

  self
end
transfer(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new) click to toggle source

改元する

@param [Japan::Gengou] first_line 元号(1行目) @param [Japan::Gengou] second_line 元号(2行目)

@return [MultiGengou] 自身

# File lib/zakuro/calculation/base/multi_gengou.rb, line 40
def transfer(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new)
  cloned_first_line = first_line.clone
  cloned_second_line = second_line.clone

  if integrated?(first_line: cloned_first_line, second_line: cloned_second_line)
    @first_line = @second_line.clone
    @second_line = cloned_second_line
  end

  @first_line = cloned_first_line if @first_line.name != first_line.name
  @second_line = cloned_second_line if @second_line.name != second_line.name

  self
end

Private Instance Methods

integrated?(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new) click to toggle source

複数元号を統一するかどうか

@param [Japan::Gengou] first_line 元号(1行目) @param [Japan::Gengou] second_line 元号(2行目)

@return [True] 統一する @return [False] 統一しない

# File lib/zakuro/calculation/base/multi_gengou.rb, line 91
def integrated?(first_line: Japan::Gengou.new, second_line: Japan::Gengou.new)
  return false if @second_line.name != first_line.name

  return false unless second_line.invalid?

  true
end