lib/zakuro/era/japan/gengou/resource/parser.rb in zakuro-0.9.4 vs lib/zakuro/era/japan/gengou/resource/parser.rb in zakuro-1.0.0
- old
+ new
@@ -1,9 +1,9 @@
# frozen_string_literal: true
require_relative '../../../western/calendar'
-require_relative './type'
+require_relative '../../type/base/gengou_set'
require_relative './validator'
require 'yaml'
# :nodoc:
module Zakuro
@@ -39,10 +39,11 @@
#
# 初期化
#
# @param [Hash<String, Strin>] hash 元号情報
# @param [Integer] index (元号セット内での)元号の要素位置
+ # @param [True, False] operated 運用値設定
#
def initialize(hash:, index:, operated: false)
@index = index
@name = hash['name']
@start_year = hash['start_year']
@@ -51,25 +52,25 @@
end
#
# 元号情報を生成する
#
- # @return [Gengou] 元号情報
+ # @return [Type::Base::Gengou] 元号情報
#
def create
year = Both::YearParser.new(hash: start_year).create
date = SwitchDateParser.new(hash: start_date, operated: operated).create
- Gengou.new(name: name, start_year: year,
- start_date: date)
+ Type::Base::Gengou.new(name: name, start_year: year,
+ start_date: date)
end
end
#
- # SetParser 元号セット情報の検証/展開
+ # GengouSetParser 元号セット情報の検証/展開
#
- class SetParser
+ class GengouSetParser
# @return [String] 元号セットID
attr_reader :id
# @return [String] 元号セット名
attr_reader :name
# @return [Hash<String, String>] 終了年
@@ -97,26 +98,26 @@
end
#
# 元号セット情報を生成する
#
- # @return [Set] 元号セット情報
+ # @return [Type::Base::GengouSet] 元号セット情報
#
def create
date = SwitchDateParser.new(hash: last_date, operated: operated).create
list = create_list
- Set.new(
+ Type::Base::GengouSet.new(
id: id, name: name, last_date: date, list: list
)
end
# :reek:TooManyStatements { max_statements: 7 }
#
# 元号情報を生成する
#
- # @return [Array<Gengou>] 元号情報
+ # @return [Array<Type::Base::Gengou>] 元号情報
#
def create_list
result = []
list.each_with_index do |li, index|
gengou = GengouParser.new(
@@ -198,17 +199,17 @@
end
#
# 切替日(運用/計算)情報を生成する
#
- # @return [SwitchDate] 切替日(運用/計算)情報
+ # @return [Type::Base::SwitchDate] 切替日(運用/計算)情報
#
def create
calculation_date = Both::DateParser.new(hash: calculation).create
operation_date = Both::DateParser.new(hash: operation).create
- Japan::Gengou::Resource::SwitchDate.new(
+ Type::Base::SwitchDate.new(
calculation: calculation_date, operation: operation_date,
operated: operated
)
end
end
@@ -243,11 +244,11 @@
#
def create
japan_year = japan.to_i
western_year = western.to_i
- Japan::Gengou::Resource::Both::Year.new(
+ Type::Base::Both::Year.new(
japan: japan_year, western: western_year
)
end
end
@@ -271,20 +272,20 @@
end
#
# 日情報を生成する
#
- # @return [Both::Date] 日情報
+ # @return [Type::Base::Both::Date] 日情報
#
def create
japan_date = Japan::Calendar.new
western_date = Western::Calendar.new
japan_date = Japan::Calendar.parse(text: japan) unless japan == ''
western_date = Western::Calendar.parse(text: western) unless western == ''
- Japan::Gengou::Resource::Both::Date.new(
+ Type::Base::Both::Date.new(
japan: japan_date, western: western_date
)
end
end
end
@@ -294,21 +295,21 @@
# 解析/展開する
#
# @param [String] filepath 元号セットファイルパス
# @param [True, False] operated 運用値設定
#
- # @return [Set] 元号セット情報
+ # @return [Type::Base::GengouSet] 元号セット情報
#
# @raise [ArgumentError] 引数エラー
#
def run(filepath: '', operated: false)
yaml = YAML.load_file(filepath)
failed = Validator.run(yaml_hash: yaml)
raise ArgumentError, failed.join("\n") unless failed.empty?
- parser = SetParser.new(hash: yaml, operated: operated)
+ parser = GengouSetParser.new(hash: yaml, operated: operated)
parser.create
end
end
end
end