todo-void 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/interactors/status_changes_interactor.rb +7 -3
- data/lib/todo_void.rb +8 -1
- metadata +1 -1
@@ -1,4 +1,5 @@
|
|
1
1
|
class StatusChangesInteractor
|
2
|
+
class StatusChangesInteractor::NoTodoWithIdError < StandardError ; end
|
2
3
|
class ConflictingIdsError < StandardError
|
3
4
|
attr_reader :conflicting_todos
|
4
5
|
|
@@ -20,11 +21,14 @@ class StatusChangesInteractor
|
|
20
21
|
def change_todo_status(hash, status)
|
21
22
|
todos = @list.find(hash).to_array
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
case todos.length
|
25
|
+
when 0
|
26
|
+
raise StatusChangesInteractor::NoTodoWithIdError
|
27
|
+
when 1
|
26
28
|
todos[0].status = status
|
27
29
|
@store.update(todos[0])
|
30
|
+
else
|
31
|
+
raise ConflictingIdsError.new(todos)
|
28
32
|
end
|
29
33
|
end
|
30
34
|
end
|
data/lib/todo_void.rb
CHANGED
@@ -17,7 +17,7 @@ class TodoVoid
|
|
17
17
|
elsif flag?('-s')
|
18
18
|
change_status(:started)
|
19
19
|
elsif flag?('--help')
|
20
|
-
@output =
|
20
|
+
@output = read_help
|
21
21
|
elsif @args[0]
|
22
22
|
TodoInteractor.new.add_todo(@args[0])
|
23
23
|
else
|
@@ -36,9 +36,16 @@ class TodoVoid
|
|
36
36
|
@args[1]
|
37
37
|
end
|
38
38
|
|
39
|
+
def read_help
|
40
|
+
help_template = File.join(File.dirname(__FILE__), '../templates/help')
|
41
|
+
File.read(help_template)
|
42
|
+
end
|
43
|
+
|
39
44
|
def change_status(status)
|
40
45
|
begin
|
41
46
|
StatusChangesInteractor.new.change_status(hash, status)
|
47
|
+
rescue StatusChangesInteractor::NoTodoWithIdError
|
48
|
+
@output += "There is no todo with matching id"
|
42
49
|
rescue StatusChangesInteractor::ConflictingIdsError => e
|
43
50
|
@output += "Conflicting part of an id provided please be more specific:\n"
|
44
51
|
@output += TodoListView.render(e.conflicting_todos)
|