lib/zakuro/calculation/range/transfer/year_boundary.rb in zakuro-0.5.0 vs lib/zakuro/calculation/range/transfer/year_boundary.rb in zakuro-0.6.0

- old
+ new

@@ -1,11 +1,10 @@ # frozen_string_literal: true -require_relative '../../../calculation/base/multi_gengou_roller' require_relative '../../../calculation/base/year' -require_relative '../../../era/western' +require_relative '../../../era/western/calendar' # :nodoc: module Zakuro # :nodoc: module Calculation @@ -19,31 +18,34 @@ module YearBoundary # # 年間範囲内の年データの開始月を変更する # # @param [Context] context 暦コンテキスト - # @param [Array<Year>] annual_ranges 年データ(冬至基準) + # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準) # - # @return [Array<Year>] 年データ(元旦基準) + # @return [Array<Base::Year>] 年データ(元旦基準) # def self.get(context:, annual_ranges:) categorize(context: context, annual_ranges: annual_ranges) - rearranged_years(annual_ranges: annual_ranges) + rearranged_years(context: context, annual_ranges: annual_ranges) end # # 年間範囲内の年データの開始月を変更する # - # @param [Array<Year>] annual_ranges 年データ(冬至基準) + # @param [Context] context 暦コンテキスト + # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準) # - # @return [Array<Year>] 年データ(元旦基準) + # @return [Array<Base::Year>] 年データ(元旦基準) # - def self.rearranged_years(annual_ranges:) + def self.rearranged_years(context:, annual_ranges:) years = [] (0..(annual_ranges.size - 2)).each do |index| - year = rearranged_year(annual_ranges: annual_ranges, index: index) + year = rearranged_year( + context: context, annual_ranges: annual_ranges, index: index + ) years.push(year) end years end @@ -51,11 +53,11 @@ # # 年間範囲を昨年/今年で分類する # # @param [Context] context 暦コンテキスト - # @param [Array<Year>] annual_range 1年データ + # @param [Array<Base::Year>] annual_range 1年データ # def self.categorize(context:, annual_ranges:) annual_ranges.each do |annual_range| categorize_year(context: context, annual_range: annual_range) end @@ -84,35 +86,37 @@ private_class_method :categorize_year # # 年データの開始月を変更する # - # @param [Array<Year>] annual_ranges 年データ(冬至基準) + # @param [Context] context 暦コンテキスト + # @param [Array<Base::Year>] annual_ranges 年データ(冬至基準) # @param [Integer] index 対象年の要素番号 # - # @return [Year] 年データ(元旦基準) + # @return [Base::Year] 年データ(元旦基準) # - def self.rearranged_year(annual_ranges:, index:) + def self.rearranged_year(context:, annual_ranges:, index:) current_annual_range = annual_ranges[index] next_annual_range = annual_ranges[index + 1] - year = push_current_year(annual_range: current_annual_range) + year = push_current_year(context: context, annual_range: current_annual_range) push_last_year(annual_range: next_annual_range, year: year) year end private_class_method :rearranged_year # # 当年データを生成する # - # @param [Array<Year>] annual_ranges 年データ(冬至基準) - # @param [Year] year 対象年 + # @param [Context] context 暦コンテキスト + # @param [Array<Month>] annual_range 1年データ # - # @return [Year] 当年月ありの対象年 + # @return [Base::Year] 当年月ありの対象年 # - def self.push_current_year(annual_range:, year: Base::Year.new) + def self.push_current_year(context:, annual_range:) + year = Base::Year.new(context: context) annual_range.each do |month| next if month.is_last_year year.push(month: month) end @@ -122,13 +126,13 @@ private_class_method :push_current_year # # 昨年データを生成する # - # @param [Array<Year>] annual_ranges 年データ(冬至基準) - # @param [Year] year 対象年 + # @param [Array<Month>] annual_range 1年データ + # @param [Base::Year] year 対象年 # - # @return [Year] 昨年月ありの対象年 + # @return [Base::Year] 昨年月ありの対象年 # def self.push_last_year(annual_range:, year: Base::Year.new) annual_range.each do |month| next unless month.is_last_year