Class: Zakuro::Japan::Version::Resource::Parser::RootParser
- Inherits:
-
Object
- Object
- Zakuro::Japan::Version::Resource::Parser::RootParser
- Defined in:
- lib/zakuro/era/japan/version/resource/parser.rb
Overview
RootParser 暦期間情報の検証/展開
Instance Attribute Summary collapse
-
#last_date ⇒ Hash<String, String>
readonly
終了日.
-
#last_year ⇒ Hash<String, String>
readonly
終了年.
-
#list ⇒ Array<Hash<String, String>>
readonly
暦期間情報.
Instance Method Summary collapse
-
#calc_last_date_on_range_data(next_index:, range:) ⇒ Range
次の暦期間の開始日から、暦期間の終了日に変換する.
-
#create ⇒ Array<Range>
暦期間情報を生成する.
-
#create_list ⇒ Array<Range>
暦期間情報を生成する.
-
#initialize(hash:) ⇒ RootParser
constructor
初期化.
Constructor Details
#initialize(hash:) ⇒ RootParser
初期化
83 84 85 86 87 88 89 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 83 def initialize(hash:) @id = hash['id'] @name = hash['name'] @last_year = hash['last_year'] @last_date = hash['last_date'] @list = hash['list'] end |
Instance Attribute Details
#last_date ⇒ Hash<String, String> (readonly)
Returns 終了日.
74 75 76 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 74 def last_date @last_date end |
#last_year ⇒ Hash<String, String> (readonly)
Returns 終了年.
72 73 74 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 72 def last_year @last_year end |
#list ⇒ Array<Hash<String, String>> (readonly)
Returns 暦期間情報.
76 77 78 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 76 def list @list end |
Instance Method Details
#calc_last_date_on_range_data(next_index:, range:) ⇒ Range
次の暦期間の開始日から、暦期間の終了日に変換する
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 130 def calc_last_date_on_range_data(next_index:, range:) if next_index >= list.size last_range_data(range: range) return range end next_item = list[next_index] next_start_date = Both::DateParser.new( hash: next_item['start_date'] ).create range.convert_next_start_year_to_last_year( next_start_year: next_item['start_year']['western'] ) range.convert_next_start_date_to_last_date( next_start_date: next_start_date.western ) range end |
#create ⇒ Array<Range>
暦期間情報を生成する
96 97 98 99 100 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 96 def create Both::DateParser.new(hash: last_date).create create_list end |
#create_list ⇒ Array<Range>
暦期間情報を生成する
109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/zakuro/era/japan/version/resource/parser.rb', line 109 def create_list result = [] list.each_with_index do |li, index| range = RangeParser.new(hash: li, index: index).create next_index = index + 1 range = calc_last_date_on_range_data(next_index: next_index, range: range) result.push(range) end result end |