lib/zakuro/calculation/range/transfer/year_boundary.rb in zakuro-0.9.2 vs lib/zakuro/calculation/range/transfer/year_boundary.rb in zakuro-0.9.3
- old
+ new
@@ -19,26 +19,27 @@
class << self
#
# 年間範囲内の年データの開始月を変更する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準)
+ # @param [Array<Array<Monthly::Month>>] annual_ranges 年データ(冬至基準)
#
# @return [Array<Base::Year>] 年データ(元旦基準)
#
def get(context:, annual_ranges:)
categorize(context: context, annual_ranges: annual_ranges)
+
rearranged_years(context: context, annual_ranges: annual_ranges)
end
private
#
# 年間範囲内の年データの開始月を変更する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準)
+ # @param [Array<Array<Monthly::Month>>] annual_ranges 年データ(冬至基準)
#
# @return [Array<Base::Year>] 年データ(元旦基準)
#
def rearranged_years(context:, annual_ranges:)
years = []
@@ -55,11 +56,11 @@
#
# 年間範囲を昨年/今年で分類する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Base::Year>] annual_range 1年データ
+ # @param [Array<Array<Monthly::Month>>] annual_range 1年データ
#
def categorize(context:, annual_ranges:)
annual_ranges.each do |annual_range|
categorize_year(context: context, annual_range: annual_range)
end
@@ -67,31 +68,32 @@
#
# 各月を昨年/今年で分類する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Month>] annual_range 1年データ
+ # @param [Array<Monthly::Month>] annual_range 1年データ
#
def categorize_year(context:, annual_range:)
is_last_year = true
annual_range.each_with_index do |month, index|
is_last_year = false if month.number == 1
annual_range[index] = Monthly::InitializedMonth.new(
context: context,
month_label: month.month_label, first_day: month.first_day,
solar_terms: month.solar_terms, phase_index: month.phase_index,
- is_last_year: is_last_year
+ is_last_year: is_last_year,
+ meta: month.meta
)
end
end
#
# 年データの開始月を変更する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準)
+ # @param [Array<Array<Monthly::Month>>] annual_ranges 年データ(冬至基準)
# @param [Integer] index 対象年の要素番号
#
# @return [Base::Year] 年データ(元旦基準)
#
def rearranged_year(context:, annual_ranges:, index:)
@@ -106,11 +108,11 @@
#
# 当年データを生成する
#
# @param [Context::Context] context 暦コンテキスト
- # @param [Array<Month>] annual_range 1年データ
+ # @param [Array<Monthly::Month>] annual_range 1年データ
#
# @return [Base::Year] 当年月ありの対象年
#
def push_current_year(context:, annual_range:)
year = Base::Year.new(context: context)
@@ -124,10 +126,10 @@
end
#
# 昨年データを生成する
#
- # @param [Array<Month>] annual_range 1年データ
+ # @param [Array<Monthly::Month>] annual_range 1年データ
# @param [Base::Year] year 対象年
#
# @return [Base::Year] 昨年月ありの対象年
#
def push_last_year(annual_range:, year: Base::Year.new)