2014-01-27 16:42:54 +01:00
|
|
|
module RecurringTodos
|
|
|
|
|
|
|
|
|
|
class WeeklyRepeatPattern < AbstractRepeatPattern
|
|
|
|
|
|
2014-02-07 22:55:52 +01:00
|
|
|
def initialize(user)
|
|
|
|
|
super user
|
2014-01-27 16:42:54 +01:00
|
|
|
end
|
|
|
|
|
|
2014-02-08 11:51:09 +01:00
|
|
|
def every_x_week
|
|
|
|
|
get :every_other1
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
{ monday: 1, tuesday: 2, wednesday: 3, thursday: 4, friday: 5, saturday: 6, sunday: 0 }.each do |day, number|
|
|
|
|
|
define_method("on_#{day}") do
|
|
|
|
|
on_xday number
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def on_xday(n)
|
|
|
|
|
get(:every_day) && get(:every_day)[n, 1] != ' '
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def validate
|
|
|
|
|
super
|
|
|
|
|
errors[:base] << "Every other nth week may not be empty for weekly recurrence setting" if every_x_week.blank?
|
|
|
|
|
something_set = %w{sunday monday tuesday wednesday thursday friday saturday}.inject(false) { |set, day| set || self.send("on_#{day}") }
|
|
|
|
|
errors[:base] << "You must specify at least one day on which the todo recurs" unless something_set
|
|
|
|
|
end
|
|
|
|
|
|
2014-01-27 16:42:54 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|