lib/zakuro/version/daien/stella/lunar/adjustment.rb in zakuro-0.7.2 vs lib/zakuro/version/daien/stella/lunar/adjustment.rb in zakuro-0.8.0

- old
+ new

@@ -58,24 +58,25 @@ # # @return [True] 一致 # @return [False] 不一致 # def match?(day:, minute:) - return false unless @day == day + inner_day = @day + return false unless inner_day == day - return false unless @range.include?(minute: minute) + return false unless range.include?(minute: minute) true end # # 分母を返す # # @return [Integer] 分母 # def denominator - @range.denominator + range.denominator end end # # Range 小余範囲 @@ -109,20 +110,20 @@ # # @return [True] 含まれる # @return [False] 含まれない # def include?(minute:) - minute >= @min && minute <= @max + minute >= min && minute <= max end # # 分母を返す # # @return [Integer] 分母 # def denominator - @max - @min + max - min end end # # Value 補正値 @@ -148,11 +149,11 @@ # 文字化 # # @return [String] 文字 # def to_s - "per:#{@per}, stack:#{@stack}" + "per:#{per}, stack:#{stack}" end end # rubocop:disable Layout/LineLength @@ -195,47 +196,49 @@ Row.new(day: 27, range: Range.new, value: Value.new(per: +276, stack: -441)), Row.new(day: 28, range: Range.new(max: DAY_LIMIT[28]), value: Value.new(per: +165, stack: -165)) ].freeze # rubocop:enable Layout/LineLength - # - # 月軌道の補正に必要な基本値を引き当てる - # - # @param [True, False] forward 進(遠地点より数える)/退(近地点より数える) - # @param [Integer] day 大余 - # @param [Integer] minute 小余 - # - # @return [Row] 補正値 - # - # @raise [ArgumentError] 引数エラー - # - def self.specify(day:, minute:) - LIST.each do |row| - # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する - return row if row.match?(day: day, minute: minute) + class << self + # + # 月軌道の補正に必要な基本値を引き当てる + # + # @param [True, False] forward 進(遠地点より数える)/退(近地点より数える) + # @param [Integer] day 大余 + # @param [Integer] minute 小余 + # + # @return [Row] 補正値 + # + # @raise [ArgumentError] 引数エラー + # + def specify(day:, minute:) + LIST.each do |row| + # NOTE: 範囲が重複している場合、最初に引き当てたほうを優先する + return row if row.match?(day: day, minute: minute) + end + + raise ArgumentError.new, "invalid parameter: #{day}/#{minute}" end - raise ArgumentError.new, "invalid parameter: #{day}/#{minute}" - end + # :reek:ControlParameter - # :reek:ControlParameter + # + # 小余の下げ幅を求める + # + # @param [Integer] day 大余 + # @param [Integer] minute 小余 + # + # @return [Integer] 小余の下げ幅 + # + def minus_minute(day:, minute:) + limit = DAY_LIMIT.fetch(day, -1) + # 該当なし + return minute if limit == -1 - # - # 小余の下げ幅を求める - # - # @param [Integer] day 大余 - # @param [Integer] minute 小余 - # - # @return [Integer] 小余の下げ幅 - # - def self.minus_minute(day:, minute:) - limit = DAY_LIMIT.fetch(day, -1) - # 該当なし - return minute if limit == -1 + return minute unless minute > limit - return minute unless minute > limit - - minute - limit + minute - limit + end end end end end end