class Repeatable::Expression::Biweekly
Attributes
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 4 def initialize(weekday:, start_after: ::Date.today) @weekday = weekday @start_after = Conversions::Date(start_after) end
Public Instance Methods
include?(date)
click to toggle source
# File lib/repeatable/expression/biweekly.rb, line 9 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 21 def find_first_occurrence days_away = weekday - start_after.wday days_away += 7 if days_away <= 0 start_after + days_away end
first_occurrence()
click to toggle source
# File lib/repeatable/expression/biweekly.rb, line 17 def first_occurrence @first_occurrence ||= find_first_occurrence end