class MudratProjector::DateDiff::YearCalculator

Public Class Methods

advance(intervals, from: from) click to toggle source
# File lib/mudrat_projector/date_diff.rb, line 123
def self.advance intervals, from: from
  if intervals < 1
    days_in_year = from.leap? ? 366 : 365
    days = intervals * days_in_year
    DayCalculator.advance days, from: from
  else
    method = intervals > 0 ? :next_year : :prev_year
    intervals.times.inject from do |date, _| date.public_send method; end
  end
end

Public Instance Methods

advance_one_unit(date) click to toggle source
# File lib/mudrat_projector/date_diff.rb, line 115
def advance_one_unit date
  date.next_year
end
fetch_unit(date) click to toggle source
# File lib/mudrat_projector/date_diff.rb, line 111
def fetch_unit date
  (Date.new(date.year)..Date.new(date.year, 12, 31))
end
rewind_one_unit(date) click to toggle source
# File lib/mudrat_projector/date_diff.rb, line 119
def rewind_one_unit date
  date.prev_year
end