troo 0.0.7 → 0.0.8
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -0
- data/Guardfile +3 -1
- data/Rakefile +7 -0
- data/bin/troo +3 -8
- data/config/.gitkeep +0 -0
- data/config/cucumber.yml +8 -0
- data/features/add/board.feature +26 -0
- data/features/add/card.feature +34 -0
- data/features/add/comment.feature +21 -0
- data/features/add/list.feature +24 -0
- data/features/cleanup.feature +13 -0
- data/features/default/board.feature +21 -0
- data/features/default/card.feature +21 -0
- data/features/default/list.feature +21 -0
- data/features/refresh/all.feature +7 -0
- data/features/refresh/board.feature +26 -0
- data/features/refresh/card.feature +27 -0
- data/features/refresh/list.feature +27 -0
- data/features/show/board.feature +32 -0
- data/features/show/card.feature +62 -0
- data/features/show/comment.feature +39 -0
- data/features/show/list.feature +37 -0
- data/features/status.feature +46 -1
- data/features/step_definitions/fabrication_steps.rb +34 -0
- data/features/step_definitions/troo_steps.rb +16 -0
- data/features/support/env.rb +22 -24
- data/features/troo.feature +31 -1
- data/lib/troo/actions/create_board.rb +10 -7
- data/lib/troo/actions/create_card.rb +5 -4
- data/lib/troo/actions/create_comment.rb +15 -13
- data/lib/troo/actions/create_list.rb +5 -4
- data/lib/troo/actions/move_card.rb +4 -3
- data/lib/troo/{external/board_adaptor.rb → adaptors/board.rb} +3 -14
- data/lib/troo/{external/card_adaptor.rb → adaptors/card.rb} +4 -15
- data/lib/troo/{external/comment_adaptor.rb → adaptors/comment.rb} +6 -17
- data/lib/troo/{external/list_adaptor.rb → adaptors/list.rb} +3 -14
- data/lib/troo/{external/member_adaptor.rb → adaptors/member.rb} +3 -14
- data/lib/troo/adaptors/resource.rb +17 -0
- data/lib/troo/cli/add.rb +53 -0
- data/lib/troo/cli/default.rb +25 -0
- data/lib/troo/cli/main.rb +46 -0
- data/lib/troo/cli/refresh.rb +31 -0
- data/lib/troo/cli/show.rb +41 -0
- data/lib/troo/cli/thor_fixes.rb +13 -0
- data/lib/troo/commands/add/board.rb +26 -0
- data/lib/troo/commands/add/card.rb +33 -0
- data/lib/troo/commands/add/comment.rb +33 -0
- data/lib/troo/commands/add/list.rb +33 -0
- data/lib/troo/commands/add/resource.rb +21 -0
- data/lib/troo/commands/commands.rb +28 -0
- data/lib/troo/commands/default/board.rb +25 -0
- data/lib/troo/commands/default/card.rb +25 -0
- data/lib/troo/commands/default/list.rb +25 -0
- data/lib/troo/commands/default/resource.rb +26 -0
- data/lib/troo/commands/refresh/all.rb +41 -0
- data/lib/troo/commands/refresh/board.rb +28 -0
- data/lib/troo/commands/refresh/card.rb +29 -0
- data/lib/troo/commands/refresh/list.rb +29 -0
- data/lib/troo/commands/refresh/resource.rb +42 -0
- data/lib/troo/commands/show/board.rb +13 -0
- data/lib/troo/commands/show/boards.rb +35 -0
- data/lib/troo/commands/show/card.rb +13 -0
- data/lib/troo/commands/show/comments.rb +21 -0
- data/lib/troo/commands/show/list.rb +13 -0
- data/lib/troo/commands/show/resource.rb +41 -0
- data/lib/troo/commands/status/board.rb +30 -0
- data/lib/troo/commands/status/card.rb +30 -0
- data/lib/troo/commands/status/list.rb +30 -0
- data/lib/troo/commands/status/resource.rb +34 -0
- data/lib/troo/decorators/board.rb +66 -0
- data/lib/troo/decorators/card.rb +105 -0
- data/lib/troo/decorators/comment.rb +36 -0
- data/lib/troo/decorators/list.rb +60 -0
- data/lib/troo/decorators/member.rb +28 -0
- data/lib/troo/external/board.rb +14 -26
- data/lib/troo/external/card.rb +2 -19
- data/lib/troo/external/comment.rb +5 -23
- data/lib/troo/external/list.rb +2 -20
- data/lib/troo/external/member.rb +2 -20
- data/lib/troo/external/resource.rb +21 -6
- data/lib/troo/helpers/command_helpers.rb +37 -0
- data/lib/troo/{display → helpers}/decorator_helpers.rb +23 -17
- data/lib/troo/{models → helpers}/model_helpers.rb +1 -1
- data/lib/troo/models/behaviours/set_default.rb +49 -0
- data/lib/troo/models/board.rb +10 -7
- data/lib/troo/models/card.rb +33 -15
- data/lib/troo/models/comment.rb +8 -5
- data/lib/troo/models/list.rb +10 -6
- data/lib/troo/models/member.rb +7 -4
- data/lib/troo/models/persistence/board.rb +19 -0
- data/lib/troo/models/persistence/card.rb +19 -0
- data/lib/troo/models/persistence/comment.rb +19 -0
- data/lib/troo/models/persistence/list.rb +19 -0
- data/lib/troo/models/persistence/member.rb +19 -0
- data/lib/troo/models/persistence/resource.rb +50 -0
- data/lib/troo/models/refresh.rb +1 -1
- data/lib/troo/models/remote/comment.rb +21 -0
- data/lib/troo/models/remote/resource.rb +25 -0
- data/lib/troo/models/retrieval/board.rb +29 -0
- data/lib/troo/models/retrieval/card.rb +33 -0
- data/lib/troo/models/retrieval/comment.rb +25 -0
- data/lib/troo/models/retrieval/list.rb +29 -0
- data/lib/troo/models/retrieval/member.rb +25 -0
- data/lib/troo/models/retrieval/resource.rb +36 -0
- data/lib/troo/presentation/sentence.rb +57 -0
- data/lib/troo/presentation/template.rb +4 -3
- data/lib/troo/presenters/board.rb +81 -0
- data/lib/troo/presenters/card.rb +30 -0
- data/lib/troo/presenters/comment.rb +38 -0
- data/lib/troo/presenters/list.rb +44 -0
- data/lib/troo/presenters/member.rb +32 -0
- data/lib/troo/troo.rb +79 -65
- data/lib/troo/version.rb +1 -2
- data/lib/troo.rb +36 -8
- data/test/lib/troo/actions/create_board_test.rb +34 -15
- data/test/lib/troo/actions/create_card_test.rb +35 -18
- data/test/lib/troo/actions/create_comment_test.rb +38 -16
- data/test/lib/troo/actions/create_list_test.rb +31 -15
- data/test/lib/troo/actions/move_card_test.rb +23 -15
- data/test/lib/troo/adaptors/board_test.rb +38 -0
- data/test/lib/troo/adaptors/card_test.rb +49 -0
- data/test/lib/troo/adaptors/comment_test.rb +41 -0
- data/test/lib/troo/adaptors/list_test.rb +38 -0
- data/test/lib/troo/adaptors/member_test.rb +44 -0
- data/test/lib/troo/commands/add/board_test.rb +43 -0
- data/test/lib/troo/commands/add/card_test.rb +44 -0
- data/test/lib/troo/commands/add/comment_test.rb +44 -0
- data/test/lib/troo/commands/add/list_test.rb +44 -0
- data/test/lib/troo/commands/add/resource_test.rb +25 -0
- data/test/lib/troo/commands/default/board_test.rb +37 -0
- data/test/lib/troo/commands/default/card_test.rb +37 -0
- data/test/lib/troo/commands/default/list_test.rb +37 -0
- data/test/lib/troo/commands/default/resource_test.rb +20 -0
- data/test/lib/troo/commands/refresh/all_test.rb +39 -0
- data/test/lib/troo/commands/refresh/board_test.rb +62 -0
- data/test/lib/troo/commands/refresh/card_test.rb +62 -0
- data/test/lib/troo/commands/refresh/list_test.rb +62 -0
- data/test/lib/troo/commands/refresh/resource_test.rb +20 -0
- data/test/lib/troo/commands/show/board_test.rb +65 -0
- data/test/lib/troo/commands/show/boards_test.rb +36 -0
- data/test/lib/troo/commands/show/card_test.rb +64 -0
- data/test/lib/troo/commands/show/comments_test.rb +64 -0
- data/test/lib/troo/commands/show/list_test.rb +64 -0
- data/test/lib/troo/commands/show/resource_test.rb +25 -0
- data/test/lib/troo/commands/status/board_test.rb +43 -0
- data/test/lib/troo/commands/status/card_test.rb +43 -0
- data/test/lib/troo/commands/status/list_test.rb +43 -0
- data/test/lib/troo/commands/status/resource_test.rb +19 -0
- data/test/lib/troo/decorators/board_test.rb +129 -0
- data/test/lib/troo/decorators/card_test.rb +237 -0
- data/test/lib/troo/decorators/comment_test.rb +74 -0
- data/test/lib/troo/decorators/list_test.rb +102 -0
- data/test/lib/troo/decorators/member_test.rb +50 -0
- data/test/lib/troo/external/board_test.rb +74 -41
- data/test/lib/troo/external/card_test.rb +49 -37
- data/test/lib/troo/external/comment_test.rb +43 -33
- data/test/lib/troo/external/list_test.rb +37 -30
- data/test/lib/troo/external/member_test.rb +37 -30
- data/test/lib/troo/external/resource_test.rb +18 -1
- data/test/lib/troo/helpers/command_helpers_test.rb +82 -0
- data/test/lib/troo/{display → helpers}/decorator_helpers_test.rb +6 -6
- data/test/lib/troo/helpers/model_helpers_test.rb +103 -0
- data/test/lib/troo/models/behaviours/set_default_test.rb +54 -0
- data/test/lib/troo/models/board_test.rb +13 -14
- data/test/lib/troo/models/card_test.rb +64 -33
- data/test/lib/troo/models/comment_test.rb +18 -19
- data/test/lib/troo/models/list_test.rb +15 -15
- data/test/lib/troo/models/member_test.rb +18 -18
- data/test/lib/troo/models/persistence/board_test.rb +62 -0
- data/test/lib/troo/models/persistence/card_test.rb +61 -0
- data/test/lib/troo/models/persistence/comment_test.rb +69 -0
- data/test/lib/troo/models/persistence/list_test.rb +60 -0
- data/test/lib/troo/models/persistence/member_test.rb +60 -0
- data/test/lib/troo/models/refresh_test.rb +12 -11
- data/test/lib/troo/models/remote/comment_test.rb +56 -0
- data/test/lib/troo/models/remote/resource_test.rb +26 -0
- data/test/lib/troo/models/retrieval/board_test.rb +93 -0
- data/test/lib/troo/models/retrieval/card_test.rb +101 -0
- data/test/lib/troo/models/retrieval/comment_test.rb +46 -0
- data/test/lib/troo/models/retrieval/list_test.rb +93 -0
- data/test/lib/troo/models/retrieval/member_test.rb +58 -0
- data/test/lib/troo/presentation/sentence_test.rb +57 -0
- data/test/lib/troo/presentation/template_test.rb +17 -16
- data/test/lib/troo/presenters/board_test.rb +79 -0
- data/test/lib/troo/presenters/card_test.rb +41 -0
- data/test/lib/troo/presenters/comment_test.rb +49 -0
- data/test/lib/troo/presenters/list_test.rb +50 -0
- data/test/lib/troo/presenters/member_test.rb +40 -0
- data/test/support/fabrication.rb +31 -32
- data/test/support/vcr_setup.rb +7 -9
- data/test/system_test.sh +55 -0
- data/test/test_helper.rb +10 -10
- data/troo.gemspec +1 -0
- metadata +232 -134
- data/features/add_board.feature +0 -1
- data/features/add_card.feature +0 -1
- data/features/add_comment.feature +0 -1
- data/features/add_list.feature +0 -1
- data/features/move_card_to_list.feature +0 -1
- data/features/refresh.feature +0 -1
- data/features/set_default.feature +0 -7
- data/features/show_board.feature +0 -1
- data/features/show_boards.feature +0 -1
- data/features/show_card.feature +0 -1
- data/features/show_comments.feature +0 -1
- data/features/show_list.feature +0 -1
- data/features/version.feature +0 -8
- data/lib/troo/actions/refresh_all.rb +0 -79
- data/lib/troo/actions/set_default.rb +0 -46
- data/lib/troo/cli/add_cli.rb +0 -83
- data/lib/troo/cli/cli_helpers.rb +0 -34
- data/lib/troo/cli/default_cli.rb +0 -32
- data/lib/troo/cli/main_cli.rb +0 -132
- data/lib/troo/cli/show_cli.rb +0 -64
- data/lib/troo/display/board_decorator.rb +0 -62
- data/lib/troo/display/board_presenter.rb +0 -71
- data/lib/troo/display/card_decorator.rb +0 -100
- data/lib/troo/display/card_presenter.rb +0 -27
- data/lib/troo/display/comment_decorator.rb +0 -33
- data/lib/troo/display/comment_presenter.rb +0 -31
- data/lib/troo/display/list_decorator.rb +0 -57
- data/lib/troo/display/list_presenter.rb +0 -41
- data/lib/troo/display/member_decorator.rb +0 -25
- data/lib/troo/display/member_presenter.rb +0 -59
- data/lib/troo/models/board_persistence.rb +0 -25
- data/lib/troo/models/board_retrieval.rb +0 -45
- data/lib/troo/models/card_persistence.rb +0 -25
- data/lib/troo/models/card_retrieval.rb +0 -49
- data/lib/troo/models/comment_persistence.rb +0 -25
- data/lib/troo/models/comment_retrieval.rb +0 -32
- data/lib/troo/models/list_persistence.rb +0 -25
- data/lib/troo/models/list_retrieval.rb +0 -45
- data/lib/troo/models/member_persistence.rb +0 -25
- data/lib/troo/models/member_retrieval.rb +0 -36
- data/lib/troo/models/persistence.rb +0 -39
- data/test/lib/troo/actions/refresh_all_test.rb +0 -68
- data/test/lib/troo/actions/set_default_test.rb +0 -44
- data/test/lib/troo/cli/add_cli_test.rb +0 -216
- data/test/lib/troo/cli/cli_helpers_test.rb +0 -24
- data/test/lib/troo/cli/default_cli_test.rb +0 -85
- data/test/lib/troo/cli/main_cli_test.rb +0 -234
- data/test/lib/troo/cli/show_cli_test.rb +0 -251
- data/test/lib/troo/display/board_decorator_test.rb +0 -126
- data/test/lib/troo/display/board_presenter_test.rb +0 -77
- data/test/lib/troo/display/card_decorator_test.rb +0 -213
- data/test/lib/troo/display/card_presenter_test.rb +0 -38
- data/test/lib/troo/display/comment_decorator_test.rb +0 -70
- data/test/lib/troo/display/comment_presenter_test.rb +0 -47
- data/test/lib/troo/display/list_decorator_test.rb +0 -98
- data/test/lib/troo/display/list_presenter_test.rb +0 -48
- data/test/lib/troo/display/member_decorator_test.rb +0 -47
- data/test/lib/troo/display/member_presenter_test.rb +0 -70
- data/test/lib/troo/external/board_adaptor_test.rb +0 -36
- data/test/lib/troo/external/card_adaptor_test.rb +0 -50
- data/test/lib/troo/external/comment_adaptor_test.rb +0 -41
- data/test/lib/troo/external/list_adaptor_test.rb +0 -38
- data/test/lib/troo/external/member_adaptor_test.rb +0 -44
- data/test/lib/troo/models/board_persistence_test.rb +0 -61
- data/test/lib/troo/models/board_retrieval_test.rb +0 -93
- data/test/lib/troo/models/card_persistence_test.rb +0 -60
- data/test/lib/troo/models/card_retrieval_test.rb +0 -101
- data/test/lib/troo/models/comment_persistence_test.rb +0 -65
- data/test/lib/troo/models/comment_retrieval_test.rb +0 -46
- data/test/lib/troo/models/list_persistence_test.rb +0 -60
- data/test/lib/troo/models/list_retrieval_test.rb +0 -93
- data/test/lib/troo/models/member_persistence_test.rb +0 -59
- data/test/lib/troo/models/member_retrieval_test.rb +0 -58
- data/test/lib/troo/models/model_helpers_test.rb +0 -103
- data/test/lib/troo/models/persistence_test.rb +0 -6
@@ -0,0 +1,26 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Add
|
4
|
+
class Board < Resource
|
5
|
+
def add
|
6
|
+
return success if created?
|
7
|
+
error
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def success
|
13
|
+
"New board '#{value}' created."
|
14
|
+
end
|
15
|
+
|
16
|
+
def error
|
17
|
+
'Board could not be created.'
|
18
|
+
end
|
19
|
+
|
20
|
+
def created?
|
21
|
+
@created ||= CreateBoard.with(value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Add
|
4
|
+
class Card < Resource
|
5
|
+
def add
|
6
|
+
if created
|
7
|
+
success
|
8
|
+
else
|
9
|
+
error_trello_error
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def success
|
16
|
+
"New card '#{value}' created."
|
17
|
+
end
|
18
|
+
|
19
|
+
def error_trello_error
|
20
|
+
'Card could not be created.'
|
21
|
+
end
|
22
|
+
|
23
|
+
def created
|
24
|
+
@created ||= CreateCard.for(resource, value)
|
25
|
+
end
|
26
|
+
|
27
|
+
def resource
|
28
|
+
Retrieval::List.retrieve(id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Add
|
4
|
+
class Comment < Resource
|
5
|
+
def add
|
6
|
+
if created
|
7
|
+
success
|
8
|
+
else
|
9
|
+
error_trello_error
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def success
|
16
|
+
'New comment created.'
|
17
|
+
end
|
18
|
+
|
19
|
+
def error_trello_error
|
20
|
+
'Comment could not be created.'
|
21
|
+
end
|
22
|
+
|
23
|
+
def created
|
24
|
+
@created ||= CreateComment.for(resource, value)
|
25
|
+
end
|
26
|
+
|
27
|
+
def resource
|
28
|
+
Retrieval::Card.retrieve(id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Add
|
4
|
+
class List < Resource
|
5
|
+
def add
|
6
|
+
if created
|
7
|
+
success
|
8
|
+
else
|
9
|
+
error_trello_error
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def success
|
16
|
+
"New list '#{value}' created."
|
17
|
+
end
|
18
|
+
|
19
|
+
def error_trello_error
|
20
|
+
'List could not be created.'
|
21
|
+
end
|
22
|
+
|
23
|
+
def created
|
24
|
+
@created ||= CreateList.for(resource, value)
|
25
|
+
end
|
26
|
+
|
27
|
+
def resource
|
28
|
+
Retrieval::Board.retrieve(id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Add
|
4
|
+
class Resource
|
5
|
+
include CommandHelpers
|
6
|
+
|
7
|
+
attr_reader :id, :value
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def dispatch(value, id = nil)
|
11
|
+
new(value, id).add
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(value, id = nil)
|
16
|
+
@value, @id = value, id
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative 'add/resource'
|
2
|
+
require_relative 'add/board'
|
3
|
+
require_relative 'add/card'
|
4
|
+
require_relative 'add/comment'
|
5
|
+
require_relative 'add/list'
|
6
|
+
|
7
|
+
require_relative 'default/resource'
|
8
|
+
require_relative 'default/board'
|
9
|
+
require_relative 'default/card'
|
10
|
+
require_relative 'default/list'
|
11
|
+
|
12
|
+
require_relative 'refresh/resource'
|
13
|
+
require_relative 'refresh/all'
|
14
|
+
require_relative 'refresh/board'
|
15
|
+
require_relative 'refresh/card'
|
16
|
+
require_relative 'refresh/list'
|
17
|
+
|
18
|
+
require_relative 'show/resource'
|
19
|
+
require_relative 'show/board'
|
20
|
+
require_relative 'show/boards'
|
21
|
+
require_relative 'show/card'
|
22
|
+
require_relative 'show/comments'
|
23
|
+
require_relative 'show/list'
|
24
|
+
|
25
|
+
require_relative 'status/resource'
|
26
|
+
require_relative 'status/board'
|
27
|
+
require_relative 'status/card'
|
28
|
+
require_relative 'status/list'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Default
|
4
|
+
class Board < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
"'#{resource_name}' set as default board."
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
'Board cannot be found.'
|
13
|
+
end
|
14
|
+
|
15
|
+
def resource_name
|
16
|
+
resource.decorator.name
|
17
|
+
end
|
18
|
+
|
19
|
+
def resource
|
20
|
+
Retrieval::Board.retrieve(id)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Default
|
4
|
+
class Card < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
"'#{resource_name}' set as default card."
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
'Card cannot be found.'
|
13
|
+
end
|
14
|
+
|
15
|
+
def resource_name
|
16
|
+
resource.decorator.name
|
17
|
+
end
|
18
|
+
|
19
|
+
def resource
|
20
|
+
Retrieval::Card.retrieve(id)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Default
|
4
|
+
class List < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
"'#{resource_name}' set as default list."
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
'List cannot be found.'
|
13
|
+
end
|
14
|
+
|
15
|
+
def resource_name
|
16
|
+
resource.decorator.name
|
17
|
+
end
|
18
|
+
|
19
|
+
def resource
|
20
|
+
Retrieval::List.retrieve(id)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Default
|
4
|
+
class Resource
|
5
|
+
include CommandHelpers
|
6
|
+
|
7
|
+
attr_reader :id
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def dispatch(id = nil)
|
11
|
+
new(id).set_default
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(id = nil)
|
16
|
+
@id = id
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_default
|
20
|
+
return success if resource && resource.set_default!
|
21
|
+
error
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Refresh
|
4
|
+
class All
|
5
|
+
def self.dispatch
|
6
|
+
new.refresh_all
|
7
|
+
end
|
8
|
+
|
9
|
+
def refresh_all
|
10
|
+
'All local data refreshed.' if refreshed?
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def refreshed?
|
16
|
+
external_board_ids.map do |external_board_id|
|
17
|
+
External::List.fetch(external_board_id)
|
18
|
+
External::Member.fetch(external_board_id)
|
19
|
+
External::Card.fetch(external_board_id).map do |card|
|
20
|
+
External::Comment.fetch(card.external_card_id,
|
21
|
+
mode: :card)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
true
|
25
|
+
end
|
26
|
+
|
27
|
+
def external_board_ids
|
28
|
+
active_boards.map(&:external_board_id)
|
29
|
+
end
|
30
|
+
|
31
|
+
def active_boards
|
32
|
+
all_boards.delete_if { |b| b.nil? || b.closed == true }
|
33
|
+
end
|
34
|
+
|
35
|
+
def all_boards
|
36
|
+
@boards ||= External::Board.fetch(0, mode: :all)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Refresh
|
4
|
+
class Board < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def many_success
|
8
|
+
'Multiple boards refreshed.'
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
return 'Default board cannot be found.' unless id
|
13
|
+
@type = :board
|
14
|
+
'Board cannot be found. ' + error_no_default
|
15
|
+
end
|
16
|
+
|
17
|
+
def resource
|
18
|
+
return [] unless local
|
19
|
+
@resource ||= External::Board.fetch(local.external_board_id)
|
20
|
+
end
|
21
|
+
|
22
|
+
def local
|
23
|
+
@local ||= Retrieval::Board.retrieve(id)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Refresh
|
4
|
+
class Card < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def many_success
|
8
|
+
'Multiple cards refreshed.'
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
return 'Default card cannot be found.' unless id
|
13
|
+
@type = :card
|
14
|
+
'Card cannot be found. ' + error_no_default
|
15
|
+
end
|
16
|
+
|
17
|
+
def resource
|
18
|
+
return [] unless local
|
19
|
+
@resource ||= External::Card.fetch(local.external_card_id,
|
20
|
+
mode: :card)
|
21
|
+
end
|
22
|
+
|
23
|
+
def local
|
24
|
+
@local ||= Retrieval::Card.retrieve(id)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Refresh
|
4
|
+
class List < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def many_success
|
8
|
+
'Multiple lists refreshed.'
|
9
|
+
end
|
10
|
+
|
11
|
+
def error
|
12
|
+
return 'Default list cannot be found.' unless id
|
13
|
+
@type = :list
|
14
|
+
'List cannot be found. ' + error_no_default
|
15
|
+
end
|
16
|
+
|
17
|
+
def resource
|
18
|
+
return [] unless local
|
19
|
+
@resource ||= External::List.fetch(local.external_list_id,
|
20
|
+
mode: :list)
|
21
|
+
end
|
22
|
+
|
23
|
+
def local
|
24
|
+
@local ||= Retrieval::List.retrieve(id)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Refresh
|
4
|
+
class Resource
|
5
|
+
include CommandHelpers
|
6
|
+
|
7
|
+
attr_accessor :type
|
8
|
+
attr_reader :id
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def dispatch(id = nil)
|
12
|
+
new(id).refresh
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(id = nil)
|
17
|
+
@id = id
|
18
|
+
end
|
19
|
+
|
20
|
+
def refresh
|
21
|
+
if resource.one?
|
22
|
+
success
|
23
|
+
elsif resource.count > 1
|
24
|
+
many_success
|
25
|
+
else
|
26
|
+
error
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def success
|
33
|
+
"'#{resource_name}' refreshed."
|
34
|
+
end
|
35
|
+
|
36
|
+
def resource_name
|
37
|
+
resource.first.decorator.name
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Show
|
4
|
+
class Boards < Resource
|
5
|
+
class << self
|
6
|
+
def dispatch
|
7
|
+
new.render
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def render
|
12
|
+
if resources.any?
|
13
|
+
presenter
|
14
|
+
else
|
15
|
+
error_not_found
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def type
|
22
|
+
:boards
|
23
|
+
end
|
24
|
+
|
25
|
+
def presenter
|
26
|
+
Presenters::Board.all(resources)
|
27
|
+
end
|
28
|
+
|
29
|
+
def resources
|
30
|
+
@resource ||= Retrieval::Board.all
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Show
|
4
|
+
class Comments < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def presenter
|
8
|
+
resource.comment_presenter.show
|
9
|
+
end
|
10
|
+
|
11
|
+
def resource
|
12
|
+
Retrieval::Card.retrieve(id)
|
13
|
+
end
|
14
|
+
|
15
|
+
def error_not_found
|
16
|
+
'Card cannot be found.'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Show
|
4
|
+
class Resource
|
5
|
+
include CommandHelpers
|
6
|
+
|
7
|
+
attr_reader :id, :type
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def dispatch(type = nil, id = nil)
|
11
|
+
new(type, id).render
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(type = nil, id = nil)
|
16
|
+
@type, @id = type, id
|
17
|
+
end
|
18
|
+
|
19
|
+
def render
|
20
|
+
if resource
|
21
|
+
presenter
|
22
|
+
elsif no_default?
|
23
|
+
error_no_default
|
24
|
+
else
|
25
|
+
error_not_found
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def presenter
|
32
|
+
resource.presenter.show
|
33
|
+
end
|
34
|
+
|
35
|
+
def error_not_found
|
36
|
+
"#{type_capitalize} cannot be found."
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Status
|
4
|
+
class Board < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
' Boards: ' + plural('board') + " found.\n" +
|
9
|
+
" #{resource_title}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def error
|
13
|
+
if count > 0
|
14
|
+
' Boards: ' + Esc.red + 'No default board set.' + Esc.reset
|
15
|
+
else
|
16
|
+
" Boards: No boards found.\n"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def count
|
21
|
+
@count ||= Troo::Board.count
|
22
|
+
end
|
23
|
+
|
24
|
+
def resource
|
25
|
+
@resource ||= Retrieval::Board.default
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Status
|
4
|
+
class Card < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
' Cards: ' + plural('card') + " found.\n" +
|
9
|
+
" #{resource_title}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def error
|
13
|
+
if count > 0
|
14
|
+
' Cards: ' + Esc.red + 'No default card set.' + Esc.reset
|
15
|
+
else
|
16
|
+
" Cards: No cards found.\n"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def count
|
21
|
+
@count ||= Troo::Card.count
|
22
|
+
end
|
23
|
+
|
24
|
+
def resource
|
25
|
+
@resource ||= Retrieval::Card.default
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Troo
|
2
|
+
module Commands
|
3
|
+
module Status
|
4
|
+
class List < Resource
|
5
|
+
private
|
6
|
+
|
7
|
+
def success
|
8
|
+
' Lists: ' + plural('list') + " found.\n" +
|
9
|
+
" #{resource_title}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def error
|
13
|
+
if count > 0
|
14
|
+
' Lists: ' + Esc.red + 'No default list set.' + Esc.reset
|
15
|
+
else
|
16
|
+
" Lists: No lists found.\n"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def count
|
21
|
+
@count ||= Troo::List.count
|
22
|
+
end
|
23
|
+
|
24
|
+
def resource
|
25
|
+
@resource ||= Retrieval::List.default
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|