class Zakuro::Japan::Parser::SetParser
SetParser
元号セット情報の検証/展開
Attributes
end_date[R]
@return [String] 終了日
id[R]
@return [String] 元号セットID
list[R]
@return [Array<Hash<String, String>>] 元号情報
name[R]
@return [String] 元号セット名
Public Class Methods
new(hash:)
click to toggle source
初期化
@param [Hash<String, Object>] hash 元号セット情報
# File lib/zakuro/era/japan/gengou/parser.rb, line 84 def initialize(hash:) @id = hash['id'] @name = hash['name'] @end_date = hash['end_date'] @list = hash['list'] end
Public Instance Methods
calc_end_date_on_gengou_data(next_index:, gengou:)
click to toggle source
次の元号の開始日から、元号の終了日に変換する
@param [Integer] next_index 次の元号の要素位置 @param [String] gengou 次回開始日
@return [Gengou] 元号情報
# File lib/zakuro/era/japan/gengou/parser.rb, line 134 def calc_end_date_on_gengou_data(next_index:, gengou:) if next_index >= @list.size end_date = Western::Calendar.parse(str: @end_date) gengou.write_end_date(end_date: end_date) return gengou end next_start_date = @list[next_index]['start_date'] gengou.convert_next_start_date_to_end_date( next_start_date_string: next_start_date ) gengou end
create()
click to toggle source
元号セット情報を生成する
@return [Set] 元号セット情報
# File lib/zakuro/era/japan/gengou/parser.rb, line 96 def create end_date = Western::Calendar.parse(str: @end_date) list = create_list Set.new( id: @id, name: @name, end_date: end_date, list: list ) end
create_list()
click to toggle source
元号情報を生成する
@return [Array<Gengou>] 元号情報
# File lib/zakuro/era/japan/gengou/parser.rb, line 111 def create_list result = [] @list.each_with_index do |li, index| gengou = GengouParser.new(hash: li, index: index).create next_index = index + 1 gengou = calc_end_date_on_gengou_data(next_index: next_index, gengou: gengou) result.push(gengou) end result end