Class: RecurringTodos::DailyRecurringTodosBuilder

Inherits:
AbstractRecurringTodosBuilder show all
Defined in:
app/models/recurring_todos/daily_recurring_todos_builder.rb

Instance Attribute Summary collapse

Attributes inherited from AbstractRecurringTodosBuilder

#mapped_attributes

Instance Method Summary collapse

Methods inherited from AbstractRecurringTodosBuilder

#attributes, #build, #errors, #filter_attributes, #filter_generic_attributes, #get_selector, #map, #save, #save_collection, #save_context, #save_project, #save_recurring_todo, #save_tags, #saved_recurring_todo, #tag_list_or_empty_string, #update

Constructor Details

#initialize(user, attributes) ⇒ DailyRecurringTodosBuilder

Returns a new instance of DailyRecurringTodosBuilder.



5
6
7
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 5

def initialize(user, attributes)
  super(user, attributes, DailyRecurrencePattern)
end

Instance Attribute Details

#patternObject (readonly)

Returns the value of attribute pattern.



3
4
5
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 3

def pattern
  @pattern
end

#recurring_todoObject (readonly)

Returns the value of attribute recurring_todo.



3
4
5
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 3

def recurring_todo
  @recurring_todo
end

Instance Method Details

#attributes_to_filterObject



9
10
11
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 9

def attributes_to_filter
  %w{daily_selector daily_every_x_days}
end

#map_attributes(mapping) ⇒ Object



13
14
15
16
17
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 13

def map_attributes(mapping)
  mapping.set(:only_work_days, only_work_days?(@selector))
  mapping.set(:every_other1,   mapping.get(:daily_every_x_days))
  mapping.except(:daily_every_x_days)
end

#only_work_days?(daily_selector) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 19

def only_work_days?(daily_selector)
  { 'daily_every_x_day' => false,
    'daily_every_work_day' => true }[daily_selector]
end

#selector_keyObject



24
25
26
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 24

def selector_key
  :daily_selector
end

#valid_selector?(selector) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/recurring_todos/daily_recurring_todos_builder.rb', line 28

def valid_selector?(selector)
  %w{daily_every_x_day daily_every_work_day}.include?(selector)
end