class Todo::Application
Public Class Methods
new(persistent: false)
click to toggle source
# File lib/todo.rb, line 11 def initialize(persistent: false) @list = init_list(persistent) @presenter = Todo::Presenter.new end
Public Instance Methods
access_list(list_name)
click to toggle source
# File lib/todo.rb, line 42 def access_list(list_name) @list.access_list(list_name) end
add(name:, **options)
click to toggle source
# File lib/todo.rb, line 16 def add(name:, **options) @list.add(name: name, priority: options[:priority], list: options[:list]) end
finish(task_name, **options)
click to toggle source
# File lib/todo.rb, line 20 def finish(task_name, **options) if options[:list] access_list(options[:list]).finish(task_name) else @list.finish(task_name) end end
lists()
click to toggle source
# File lib/todo.rb, line 38 def lists @presenter.present(item: @list, info: :lists) end
remove(task_name)
click to toggle source
# File lib/todo.rb, line 28 def remove(task_name) @list.remove(task_name) end
tasks(options={})
click to toggle source
# File lib/todo.rb, line 32 def tasks(options={}) item = options[:list] ? access_list(options[:list]) : @list return "no such list" unless item @presenter.present(item: item, info: :tasks, level: options[:level]) end
Private Instance Methods
init_list(persistent)
click to toggle source
# File lib/todo.rb, line 48 def init_list(persistent) if persistent Todo::List.load else Todo::List.new end end