lib/zakuro/era/japan/gengou/alignment/aligner.rb in zakuro-0.6.1 vs lib/zakuro/era/japan/gengou/alignment/aligner.rb in zakuro-0.7.0
- old
+ new
@@ -4,101 +4,116 @@
require_relative './line'
# :nodoc:
module Zakuro
- #
- # Japan 和暦
- #
+ # :nodoc:
module Japan
- #
- # Alignment 整列
- #
- module Alignment
+ # :nodoc:
+ module Gengou
#
- # Aligner 元号整列
+ # Alignment 整列
#
- class Aligner
- # @return [Integer] 1行目元号
- FIRST_LINE = 0
+ module Alignment
+ #
+ # Aligner 元号整列
+ #
+ class Aligner
+ # @return [Integer] 1行目元号
+ FIRST_LINE = 0
- # @return [Integer] 2行目元号
- SECOND_LINE = 1
+ # @return [Integer] 2行目元号
+ SECOND_LINE = 1
- # @return [Array<Integer>] 元号リスト
- LINE_INDEXES = [FIRST_LINE, SECOND_LINE].freeze
+ # @return [Array<Integer>] 元号リスト
+ LINE_INDEXES = [FIRST_LINE, SECOND_LINE].freeze
- # @return [Integer] 行数
- LINE_SIZE = LINE_INDEXES.size
+ # @return [Integer] 行数
+ LINE_SIZE = LINE_INDEXES.size
- # @return [Array<Line>] 行元号
- attr_reader :lines
+ # @return [Array<Line>] 行元号
+ attr_reader :lines
- #
- # 初期化
- #
- # @param [Array<Set>] resources 元号解析結果
- #
- def initialize(resources: [])
- @lines = []
- (1..LINE_SIZE).each do |_index|
- @lines.push(Line.new)
+ #
+ # 初期化
+ #
+ # @param [Array<Set>] resources 元号解析結果
+ #
+ def initialize(resources: [])
+ @lines = []
+ (1..LINE_SIZE).each do |_index|
+ @lines.push(Line.new)
+ end
+
+ save(resources: resources)
end
- save(resources: resources)
- end
+ #
+ # 行元号に追加する
+ #
+ # @param [Set] set 元号セット
+ #
+ def push(set:)
+ list = set.list
+ list.each do |gengou|
+ push_gengou(gengou: gengou)
+ end
+ end
- #
- # 行元号に追加する
- #
- # @param [Set] set 元号セット
- #
- def push(set:)
- list = set.list
- list.each do |gengou|
- push_gengou(gengou: gengou)
+ #
+ # 指定した範囲内の元号を取得する
+ #
+ # @param [Integer] line 行
+ # @param [Western::Calendar] start_date 開始日
+ # @param [Western::Calendar] last_date 終了日
+ #
+ # @return [Array<LinearGengou>] 元号
+ #
+ def get(line:, start_date:, last_date:)
+ raise ArgumentError.new, 'invalid line number' unless LINE_INDEXES.include?(line)
+
+ @lines[line].get(start_date: start_date, last_date: last_date)
end
- end
- #
- # 指定した範囲内の元号を取得する
- #
- # @param [Integer] line 行
- # @param [Western::Calendar] start_date 開始日
- # @param [Western::Calendar] last_date 終了日
- #
- # @return [Array<LinearGengou>] 元号
- #
- def get(line:, start_date:, last_date:)
- raise ArgumentError.new, 'invalid line number' unless LINE_INDEXES.include?(line)
+ #
+ # 指定した範囲内の元号を取得する(元号名)
+ #
+ # @param [Integer] line 行
+ # @param [String] name 元号名
+ #
+ # @return [Array<LinearGengou>] 元号
+ #
+ def get_by_name(line:, name:)
+ raise ArgumentError.new, 'invalid line number' unless LINE_INDEXES.include?(line)
- @lines[line].get(start_date: start_date, last_date: last_date)
- end
+ @lines[line].get_by_name(name: name)
+ end
- private
+ private
- #
- # 保存する
- #
- # @param [Array<Set>] resources 元号解析結果
- #
- def save(resources: [])
- resources.each do |set|
- push(set: set)
+ #
+ # 保存する
+ #
+ # @param [Array<Set>] resources 元号解析結果
+ #
+ def save(resources: [])
+ resources.each do |set|
+ push(set: set)
+ end
end
- end
- #
- # 元号を追加する
- #
- # @param [Gengou] gengou 元号
- #
- def push_gengou(gengou:)
- rest = [
- LinearGengou.new(gengou: gengou)
- ]
- @lines.each do |line|
- rest = line.push(list: rest)
+ #
+ # 元号を追加する
+ #
+ # @param [Gengou] gengou 元号
+ #
+ def push_gengou(gengou:)
+ rest = [
+ LinearGengou.new(gengou: gengou)
+ ]
+ @lines.each do |line|
+ rest = line.push(list: rest)
+ end
end
end
end
end
end