class TodoList
Singleton class resposible for managing the CRUD operations related to a Todo
instance.
Constants
- PERSISTED_ATTRIBUTES
Public Class Methods
new()
click to toggle source
# File lib/todo_list.rb, line 14 def initialize set_defaults end
Public Instance Methods
add(todo)
click to toggle source
# File lib/todo_list.rb, line 18 def add(todo) @undone_todos << todo end
delete(idx)
click to toggle source
# File lib/todo_list.rb, line 46 def delete(idx) remove_from_undone idx end
done()
click to toggle source
# File lib/todo_list.rb, line 28 def done @done_todos end
find(idx)
click to toggle source
# File lib/todo_list.rb, line 40 def find(idx) raise TodoNotFoundError unless in_range?(idx) @undone_todos[idx] end
move_to_done(idx)
click to toggle source
# File lib/todo_list.rb, line 22 def move_to_done(idx) raise TodoNotFoundError unless in_range?(idx) @done_todos << remove_from_undone(idx) end
undone()
click to toggle source
# File lib/todo_list.rb, line 32 def undone @undone_todos end
undone_count()
click to toggle source
# File lib/todo_list.rb, line 36 def undone_count @undone_todos.length end
Private Instance Methods
in_range?(idx)
click to toggle source
# File lib/todo_list.rb, line 65 def in_range?(idx) (0..(@undone_todos.length - 1)).include?(idx) end
remove_from_undone(idx)
click to toggle source
# File lib/todo_list.rb, line 59 def remove_from_undone(idx) raise TodoNotFoundError unless in_range?(idx) @undone_todos.delete_at(idx) end
set_defaults()
click to toggle source
# File lib/todo_list.rb, line 54 def set_defaults @undone_todos = [] @done_todos = [] end