Module: Todo::Tasks
Overview
The module that contains methods for manipulating the database
Instance Method Summary collapse
-
#add(task, priority = 1) ⇒ Object
Adds the tast to the list.
-
#clear(clear_all, list_name = Config[:working_list_name]) ⇒ Object
clears all the tasks in the list .
-
#clear_each(completed, list_name) ⇒ Object
clears either just the completed or the uncompleted tasks.
-
#finish(task, is_num) ⇒ Object
finish the task.
-
#finish_undo(task, is_num, initial, final) ⇒ Object
Helper method for finishing and undoing a task.
-
#set_priority(priority, task, is_num) ⇒ Object
Sets the priority of a task.
-
#undo(task, is_num) ⇒ Object
undos finishing a task.
Instance Method Details
#add(task, priority = 1) ⇒ Object
Adds the tast to the list
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/to-do/tasks.rb', line 11 def add task, priority=1 list = Helpers::DATABASE[:Lists].select(:Total, :Id)[:Name=>Todo::Config[:working_list_name]] if !list Helpers::DATABASE[:Lists] << {:Name => Config[:working_list_name], :Total => 0} list = Helpers::DATABASE[:Lists].select(:Total, :Id)[:Name=>Todo::Config[:working_list_name]] end count = list[:Total]+1 Helpers::DATABASE[:Tasks] << {:Task_number => count, :Name => task, :Completed => 0, :Priority => priority} list_id = list[:Id] task_id = Helpers::DATABASE[:Tasks].with_sql("SELECT last_insert_rowid() FROM Tasks") Helpers::DATABASE[:Task_list] << {:Task_id => task_id, :List_id => list_id} Helpers::DATABASE[:Lists].filter(:Id => list_id).update(:Total => count) end |
#clear(clear_all, list_name = Config[:working_list_name]) ⇒ Object
clears all the tasks in the list
and resets the count. if false, just clears the completed tasks
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/to-do/tasks.rb', line 65 def clear clear_all, list_name = Config[:working_list_name] clear_each 1, list_name if clear_all clear_each 0, list_name #Helpers::DATABASE[:Lists].filter(:Name => list_name).update(:Total => 0) Helpers::DATABASE[:Lists].filter(:Name => list_name).delete puts "Cleared all tasks in #{list_name}" else puts "Cleared completed tasks in #{Config[:working_list_name]}" end end |
#clear_each(completed, list_name) ⇒ Object
clears either just the completed or the uncompleted tasks
Uncompleted tasks
51 52 53 54 55 56 57 58 59 |
# File 'lib/to-do/tasks.rb', line 51 def clear_each completed ,list_name tasks = Helpers::DATABASE[:Tasks].join(:Task_list, :Tasks__id => :Task_list__Task_id).join( :Lists, :Lists__id => :Task_list__List_id).select(:Tasks__Id).filter( :Lists__Name => Config[:working_list_name]).filter(:Tasks__Completed => completed) tasks.each do |task| Helpers::DATABASE[:Task_list].filter(:Task_id => task[:Id]).delete Helpers::DATABASE[:Tasks].filter(:Id => task[:Id]).delete end end |
#finish(task, is_num) ⇒ Object
finish the task. task is either a case insensitive task on the list or the task number. Prints out either the task is not in the list or that i succesfully finished the task
false if it is the task name
32 33 34 |
# File 'lib/to-do/tasks.rb', line 32 def finish task, is_num finish_undo task, is_num, 0, 1 end |
#finish_undo(task, is_num, initial, final) ⇒ Object
Helper method for finishing and undoing a task
false if it is the task name
84 85 86 87 |
# File 'lib/to-do/tasks.rb', line 84 def finish_undo task , is_num, initial, final names =Helpers::task_names.filter(:Tasks__Completed => initial) Helpers::Tasks::update_task is_num, names, task, :Completed, final end |
#set_priority(priority, task, is_num) ⇒ Object
Sets the priority of a task
false if it is the task name
95 96 97 98 |
# File 'lib/to-do/tasks.rb', line 95 def set_priority priority, task, is_num names =Helpers::Tasks::task_names Helpers::Tasks::update_task is_num, names, task, :Priority, priority end |
#undo(task, is_num) ⇒ Object
undos finishing a task. task is either a case insensitive task on the list or the task number. Prints out either the task is not in the list or that i succesfully undoed finished the task
false if it is the task name
43 44 45 |
# File 'lib/to-do/tasks.rb', line 43 def undo task, is_num finish_undo task, is_num, 1, 0 end |