Class: Main

Inherits:
Thor
  • Object
show all
Includes:
MainHelper, TodoHelper
Defined in:
lib/main.rb

Overview

It’s responsible for the application initialization and for the client communication interface.

Class Method Summary collapse

Instance Method Summary collapse

Methods included from MainHelper

#confirm_deletion_message, #display_created_task_message, #display_description_needed_message, #display_something_went_wrong_message, #print_successfull_deletion_message

Methods included from TodoHelper

#_display_done_todos, #_display_no_matches, #_display_todos, #_display_todos_count_message, #_two_characters_format, #display_all_todos, #display_undone_todos

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/main.rb', line 57

def exit_on_failure?
  true
end

Instance Method Details

#add(*description) ⇒ Object



14
15
16
17
18
19
20
21
# 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) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# 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) ⇒ Object



24
25
26
27
28
# File 'lib/main.rb', line 24

def done(idx)
  with_rescue do
    todos_controller.done(idx.to_i - 1)
  end
end

#listObject



44
45
46
47
48
49
50
51
52
53
54
# 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