2014-01-27 16:42:54 +01:00
|
|
|
module RecurringTodos
|
|
|
|
|
|
|
|
|
|
class DailyRecurringTodosBuilder < AbstractRecurringTodosBuilder
|
|
|
|
|
attr_reader :recurring_todo, :pattern
|
|
|
|
|
|
|
|
|
|
def initialize(user, attributes)
|
2014-02-07 22:55:52 +01:00
|
|
|
super(user, attributes, DailyRepeatPattern)
|
2014-01-27 16:42:54 +01:00
|
|
|
end
|
|
|
|
|
|
2014-02-03 10:48:21 +01:00
|
|
|
def attributes_to_filter
|
|
|
|
|
%w{daily_selector daily_every_x_days}
|
2014-01-27 16:42:54 +01:00
|
|
|
end
|
|
|
|
|
|
2014-02-07 22:55:52 +01:00
|
|
|
def map_attributes(mapping)
|
|
|
|
|
mapping[:only_work_days] = only_work_days?(@selector)
|
|
|
|
|
|
|
|
|
|
mapping[:every_other1] = mapping['daily_every_x_days']
|
|
|
|
|
mapping = mapping.except('daily_every_x_days')
|
|
|
|
|
|
|
|
|
|
mapping
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def only_work_days?(daily_selector)
|
|
|
|
|
case daily_selector
|
|
|
|
|
when 'daily_every_x_day'
|
|
|
|
|
return false
|
|
|
|
|
when 'daily_every_work_day'
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def selector_key
|
|
|
|
|
'daily_selector'
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def valid_selector?(selector)
|
|
|
|
|
%w{daily_every_x_day daily_every_work_day}.include?(selector)
|
|
|
|
|
end
|
|
|
|
|
|
2014-01-27 16:42:54 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|