class Repeatable::Expression::Biweekly
Attributes
_first_occurrence[R]
start_after[R]
weekday[R]
Public Class Methods
new(weekday:, start_after: ::Date.today)
click to toggle source
# File lib/repeatable/expression/biweekly.rb, line 7 def initialize(weekday:, start_after: ::Date.today) @weekday = weekday @start_after = T.let(Conversions::Date(start_after), ::Date) @_first_occurrence = T.let(find_first_occurrence, ::Date) end
Public Instance Methods
include?(date)
click to toggle source
# File lib/repeatable/expression/biweekly.rb, line 14 def include?(date) date >= start_after && (date - _first_occurrence) % 14 == 0 end
Private Instance Methods
find_first_occurrence()
click to toggle source
# File lib/repeatable/expression/biweekly.rb, line 30 def find_first_occurrence days_away = weekday - start_after.wday days_away += 7 if days_away <= 0 start_after + days_away end