Class: Todo::List
- Inherits:
-
Object
- Object
- Todo::List
- Defined in:
- lib/to-do/old/list.rb
Overview
The Class that represents a list of tasks
Instance Attribute Summary collapse
-
#completed_count ⇒ Object
Returns the value of attribute completed_count.
-
#completed_tasks ⇒ Object
Returns the value of attribute completed_tasks.
-
#count ⇒ Object
Returns the value of attribute count.
-
#name ⇒ Object
Returns the value of attribute name.
-
#tasks ⇒ Object
Returns the value of attribute tasks.
Class Method Summary collapse
-
.remove(name) ⇒ Object
Class method that removes a list from the your lists.
Instance Method Summary collapse
-
#add(task) ⇒ Object
Adds the tast to the list.
-
#clear(clear_all) ⇒ Object
clears the task in the list .
-
#clear_completed ⇒ Object
clears just the completed tasks.
-
#finish(task, is_num) ⇒ Object
finish the task.
-
#initialize(name) ⇒ List
constructor
Creates a new list and sets it to be the working list.
-
#undo(task, is_num) ⇒ Object
undos finishing a task.
-
#update ⇒ Object
Updates the yaml file.
Constructor Details
#initialize(name) ⇒ List
Creates a new list and sets it to be the working list
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/to-do/old/list.rb', line 12 def initialize name @tasks = Hash.new @completed_tasks = Hash.new @count = 0 @completed_count = 0 @name = name if !File.exists? Config[:lists_directory] Dir.mkdir(Config[:lists_directory]) end update Config[:working_list_name] = name.downcase.gsub(/ /, '_') Config[:working_list_exists] = true Config.write puts "Created List #{name}." end |
Instance Attribute Details
#completed_count ⇒ Object
Returns the value of attribute completed_count.
7 8 9 |
# File 'lib/to-do/old/list.rb', line 7 def completed_count @completed_count end |
#completed_tasks ⇒ Object
Returns the value of attribute completed_tasks.
7 8 9 |
# File 'lib/to-do/old/list.rb', line 7 def completed_tasks @completed_tasks end |
#count ⇒ Object
Returns the value of attribute count.
7 8 9 |
# File 'lib/to-do/old/list.rb', line 7 def count @count end |
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/to-do/old/list.rb', line 7 def name @name end |
#tasks ⇒ Object
Returns the value of attribute tasks.
7 8 9 |
# File 'lib/to-do/old/list.rb', line 7 def tasks @tasks end |
Class Method Details
.remove(name) ⇒ Object
Class method that removes a list from the your lists.
146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/to-do/old/list.rb', line 146 def self.remove name underscore_name = name.downcase.gsub(/ /, '_') begin FileUtils.rm File.join(Config[:lists_directory], underscore_name +'.yml') puts "Removed list #{name}" rescue puts "List doesn't exist" end if underscore_name == Config[:working_list_name] Config[:working_list_exists] = false end end |
Instance Method Details
#add(task) ⇒ Object
Adds the tast to the list
39 40 41 42 43 44 |
# File 'lib/to-do/old/list.rb', line 39 def add task @count+=1 @tasks[@count] = task puts "Added task #{task}." update end |
#clear(clear_all) ⇒ Object
clears the task in the list
and resets the count. if false, just clears the completed tasks
130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/to-do/old/list.rb', line 130 def clear clear_all clear_completed if clear_all @tasks = Hash.new @completed_count = 0 @count = 0 puts "Cleared list." else puts "Cleared completed tasks." end update end |
#clear_completed ⇒ Object
clears just the completed tasks
121 122 123 124 |
# File 'lib/to-do/old/list.rb', line 121 def clear_completed @completed_tasks = Hash.new update 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
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/to-do/old/list.rb', line 53 def finish task, is_num if is_num if !@tasks[task.to_i].nil? @completed_tasks[task.to_i] = @tasks[task.to_i] @tasks.delete(task.to_i) @completed_count+=1 @completed_tasks = Hash[@completed_tasks.sort] puts "Finished #{@completed_tasks[task.to_i]}." else puts "Task \##{task} not in list." end else hash = Hash.new @tasks.each do |k,v| hash[k] = v.downcase end if hash.value?(task.downcase) num = hash.key(task.downcase) @completed_tasks[num] = @tasks[num] @tasks.delete(num) @completed_count+=1 @completed_tasks = Hash[@completed_tasks.sort] puts "Finished #{@completed_tasks[num]}." else puts "Task #{task} is not in list." end end update 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
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/to-do/old/list.rb', line 90 def undo task, is_num if is_num if !@completed_tasks[task.to_i].nil? @tasks[task.to_i] = @completed_tasks[task.to_i] @completed_tasks.delete(task.to_i) @completed_count-=1 @tasks = Hash[@tasks.sort] puts "Undo completeing #{@tasks[task.to_i]}." else puts "Task \##{task} not in list." end else hash = Hash.new @completed_tasks.each do |k,v| hash[k] = v.downcase end if hash.value?(task.downcase) num = hash.key(task.downcase) @tasks[num] = @completed_tasks[num] @completed_tasks.delete(num) @completed_count-=1 @tasks = Hash[@tasks.sort] puts "Undo completeing #{@tasks[num]}." else puts "Task #{task} is not in list." end end update end |
#update ⇒ Object
Updates the yaml file
29 30 31 32 33 34 |
# File 'lib/to-do/old/list.rb', line 29 def update path = File.join(Config[:lists_directory], @name.downcase.gsub(/ /, '_') +'.yml') File.open(path, 'w') do |fh| fh.puts(self.to_yaml) end end |