class Main
It's responsible for the application initialization and for the client communication interface.
Public Class Methods
exit_on_failure?()
click to toggle source
# File lib/main.rb, line 57 def exit_on_failure? true end
Public Instance Methods
add(*description)
click to toggle source
# File lib/main.rb, line 14 def add(*description) return unless validate_description_presence(description) todo_idx = with_rescue do todos_controller.add(description: description.join(' ')) end display_created_task_message(todo_idx) end
delete(idx)
click to toggle source
# File lib/main.rb, line 31 def delete(idx) with_rescue do index = idx.to_i - 1 todo = todos_controller.find(index) if require_deletion_confirmation(index, todo) todos_controller.delete(index) print_successfull_deletion_message end end end
done(idx)
click to toggle source
# File lib/main.rb, line 24 def done(idx) with_rescue do todos_controller.done(idx.to_i - 1) end end
list()
click to toggle source
# File lib/main.rb, line 44 def list todos = with_rescue do todos_controller.list end if options['all'] display_all_todos(undone: todos[:undone_items], done: todos[:done_items]) else display_undone_todos(todos[:undone_items]) end end
Private Instance Methods
require_deletion_confirmation(idx, todo)
click to toggle source
# File lib/main.rb, line 75 def require_deletion_confirmation(idx, todo) confirm = nil until %w[y n].include?(confirm) confirm = ask(confirm_deletion_message(idx, todo)) end confirm == 'y' end
todos_controller()
click to toggle source
# File lib/main.rb, line 71 def todos_controller TodosController.new end
validate_description_presence(description)
click to toggle source
# File lib/main.rb, line 64 def validate_description_presence(description) return true if description.count.positive? display_description_needed_message false end
with_rescue() { || ... }
click to toggle source
# File lib/main.rb, line 84 def with_rescue yield rescue TodoNotFoundError => e puts e.message.to_s rescue StandardError => e display_something_went_wrong_message(e.message) end