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