troo 0.0.4 → 0.0.5
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/lib/troo/actions/create_board.rb +1 -1
- data/lib/troo/actions/create_card.rb +1 -1
- data/lib/troo/actions/create_comment.rb +1 -1
- data/lib/troo/actions/create_list.rb +1 -1
- data/lib/troo/cli/add_cli.rb +10 -10
- data/lib/troo/cli/cli_helpers.rb +34 -0
- data/lib/troo/cli/default_cli.rb +8 -22
- data/lib/troo/cli/main_cli.rb +52 -50
- data/lib/troo/cli/show_cli.rb +32 -51
- data/lib/troo/display/board_decorator.rb +4 -0
- data/lib/troo/display/board_presenter.rb +44 -38
- data/lib/troo/display/card_decorator.rb +8 -13
- data/lib/troo/display/card_presenter.rb +4 -4
- data/lib/troo/display/comment_decorator.rb +2 -1
- data/lib/troo/display/comment_presenter.rb +8 -12
- data/lib/troo/display/decorator_helpers.rb +8 -0
- data/lib/troo/display/list_decorator.rb +4 -0
- data/lib/troo/display/list_presenter.rb +18 -20
- data/lib/troo/display/member_decorator.rb +3 -2
- data/lib/troo/display/member_presenter.rb +4 -4
- data/lib/troo/external/board.rb +2 -2
- data/lib/troo/external/card.rb +1 -1
- data/lib/troo/external/comment.rb +1 -1
- data/lib/troo/external/list.rb +1 -1
- data/lib/troo/external/member.rb +1 -1
- data/lib/troo/models/board.rb +12 -0
- data/lib/troo/models/card.rb +14 -2
- data/lib/troo/models/comment.rb +7 -3
- data/lib/troo/models/list.rb +13 -1
- data/lib/troo/models/member.rb +8 -0
- data/lib/troo/troo.rb +1 -1
- data/lib/troo/version.rb +1 -1
- data/test/lib/troo/actions/create_board_test.rb +1 -1
- data/test/lib/troo/actions/create_card_test.rb +1 -1
- data/test/lib/troo/actions/create_comment_test.rb +1 -1
- data/test/lib/troo/actions/create_list_test.rb +1 -1
- data/test/lib/troo/cli/add_cli_test.rb +18 -18
- data/test/lib/troo/cli/{thor_fixes_test.rb → cli_helpers_test.rb} +3 -0
- data/test/lib/troo/cli/default_cli_test.rb +6 -6
- data/test/lib/troo/cli/main_cli_test.rb +22 -20
- data/test/lib/troo/cli/show_cli_test.rb +57 -27
- data/test/lib/troo/display/board_decorator_test.rb +2 -2
- data/test/lib/troo/display/board_presenter_test.rb +2 -2
- data/test/lib/troo/display/card_decorator_test.rb +6 -14
- data/test/lib/troo/display/card_presenter_test.rb +2 -2
- data/test/lib/troo/display/comment_decorator_test.rb +6 -1
- data/test/lib/troo/display/comment_presenter_test.rb +2 -2
- data/test/lib/troo/display/decorator_helpers_test.rb +21 -1
- data/test/lib/troo/display/list_presenter_test.rb +2 -2
- data/test/lib/troo/display/member_decorator_test.rb +6 -1
- data/test/lib/troo/display/member_presenter_test.rb +2 -2
- metadata +6 -6
- data/lib/troo/cli/thor_fixes.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1de45a5c35b2b5698fcbc2770107afc4a778f3b
|
4
|
+
data.tar.gz: 5bf9a0b9ea0fabdf6f5f13ec79574b7cdbedefc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6717b3614403eca4d24879498a8d4219e3f48383c071b4875b7fa144fdebe02141de7bc75e7d39f563c4fd90b0377af3adda9f48c020b4efc275f7cfecdd035
|
7
|
+
data.tar.gz: 8e49b3e4758f173266b0b3fb91e2af0bd70994652a4c6e9f9dbd4c39c6d87e75ecc0a7f52071511ea6e93ccc21b8bb98fad7ada2de4acb80e4437fb75e85704d
|
data/lib/troo/cli/add_cli.rb
CHANGED
@@ -10,8 +10,8 @@ module Troo
|
|
10
10
|
name = ask("Please enter a name for this board:")
|
11
11
|
end
|
12
12
|
|
13
|
-
if result =
|
14
|
-
say "New board '#{result.name}' created."
|
13
|
+
if result = CreateBoard.with(name, description)
|
14
|
+
say "New board '#{result.decorator.name}' created."
|
15
15
|
else
|
16
16
|
say "Board could not be created."
|
17
17
|
end
|
@@ -26,9 +26,9 @@ module Troo
|
|
26
26
|
name = ask("Please enter a name for this card:")
|
27
27
|
end
|
28
28
|
|
29
|
-
if list =
|
30
|
-
if result =
|
31
|
-
say "New card '#{result.name}' created."
|
29
|
+
if list = ListRetrieval.retrieve(list_id)
|
30
|
+
if result = CreateCard.for(list, name, description)
|
31
|
+
say "New card '#{result.decorator.name}' created."
|
32
32
|
else
|
33
33
|
say "Card could not be created."
|
34
34
|
end
|
@@ -46,8 +46,8 @@ module Troo
|
|
46
46
|
comment = ask("Please enter a comment:")
|
47
47
|
end
|
48
48
|
|
49
|
-
if card =
|
50
|
-
if
|
49
|
+
if card = CardRetrieval.retrieve(card_id)
|
50
|
+
if CreateComment.for(card, comment)
|
51
51
|
say "New comment created."
|
52
52
|
else
|
53
53
|
say "Comment could not be created."
|
@@ -66,9 +66,9 @@ module Troo
|
|
66
66
|
name = ask("Please enter a name for this list:")
|
67
67
|
end
|
68
68
|
|
69
|
-
if board =
|
70
|
-
if result =
|
71
|
-
say "New list '#{result.name}' created."
|
69
|
+
if board = BoardRetrieval.retrieve(board_id)
|
70
|
+
if result = CreateList.for(board, name)
|
71
|
+
say "New list '#{result.decorator.name}' created."
|
72
72
|
else
|
73
73
|
say "List could not be created."
|
74
74
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Troo
|
2
|
+
module CLI
|
3
|
+
module Helpers
|
4
|
+
def set_default
|
5
|
+
return success if resource && resource.set_default!
|
6
|
+
not_found
|
7
|
+
end
|
8
|
+
|
9
|
+
def success
|
10
|
+
say "'#{resource.decorator.name}' set as default #{type.to_s.downcase}."
|
11
|
+
true
|
12
|
+
end
|
13
|
+
|
14
|
+
def not_found
|
15
|
+
say "#{type.to_s.capitalize} cannot be found. Specify a different <id> or use 'troo default #{type.to_s} <id>' to set a default #{type.to_s} first."
|
16
|
+
false
|
17
|
+
end
|
18
|
+
|
19
|
+
def resource
|
20
|
+
@resource = case type
|
21
|
+
when :board then @board ||= BoardRetrieval.retrieve(id)
|
22
|
+
when :list then @list ||= ListRetrieval.retrieve(id)
|
23
|
+
when :card then @card ||= CardRetrieval.retrieve(id)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class ThorFixes < Thor
|
29
|
+
def self.banner(command, namespace = nil, subcommand = false)
|
30
|
+
"#{basename} #{@package_name} #{command.usage}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/troo/cli/default_cli.rb
CHANGED
@@ -1,45 +1,31 @@
|
|
1
1
|
module Troo
|
2
2
|
module CLI
|
3
3
|
class Default < ThorFixes
|
4
|
+
include Helpers
|
5
|
+
|
4
6
|
package_name "default"
|
5
7
|
|
6
8
|
desc "board <id>", "Set the board <id> to default."
|
7
9
|
def board(id)
|
8
|
-
|
10
|
+
initialize_and_dispatch(id, :board)
|
9
11
|
end
|
10
12
|
|
11
13
|
desc "card <id>", "Set the card <id> to default."
|
12
14
|
def card(id)
|
13
|
-
|
15
|
+
initialize_and_dispatch(id, :card)
|
14
16
|
end
|
15
17
|
|
16
18
|
desc "list <id>", "Set the list <id> to default."
|
17
19
|
def list(id)
|
18
|
-
|
20
|
+
initialize_and_dispatch(id, :list)
|
19
21
|
end
|
20
22
|
|
21
23
|
private
|
24
|
+
attr_reader :id, :type
|
22
25
|
|
23
|
-
def
|
26
|
+
def initialize_and_dispatch(id, type)
|
24
27
|
@id, @type = id, type
|
25
|
-
|
26
|
-
not_found
|
27
|
-
end
|
28
|
-
|
29
|
-
def resource
|
30
|
-
@resource ||= case @type
|
31
|
-
when :board then Troo::BoardRetrieval.retrieve(@id)
|
32
|
-
when :list then Troo::ListRetrieval.retrieve(@id)
|
33
|
-
when :card then Troo::CardRetrieval.retrieve(@id)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def success(resource_name = "")
|
38
|
-
say "'#{resource_name}' set as default #{@type.to_s.downcase}."
|
39
|
-
end
|
40
|
-
|
41
|
-
def not_found
|
42
|
-
say "#{@type.to_s.capitalize} cannot be found."
|
28
|
+
set_default
|
43
29
|
end
|
44
30
|
end
|
45
31
|
end
|
data/lib/troo/cli/main_cli.rb
CHANGED
@@ -1,62 +1,23 @@
|
|
1
1
|
module Troo
|
2
2
|
module CLI
|
3
3
|
class Main < ThorFixes
|
4
|
+
include Helpers
|
5
|
+
|
4
6
|
default_task :status
|
5
7
|
|
6
8
|
class_option :debug, type: :boolean, desc: "Enable debugging."
|
7
9
|
|
8
10
|
desc "status", "Get troo status."
|
9
11
|
def status
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
if board = Troo::BoardRetrieval.default
|
16
|
-
say "Board: #{BoardDecorator.new(board).short}"
|
17
|
-
else
|
18
|
-
say "Board: No default set."
|
19
|
-
end
|
20
|
-
else
|
21
|
-
say "No local board data."
|
22
|
-
end
|
23
|
-
|
24
|
-
if list_count > 0
|
25
|
-
if list = Troo::ListRetrieval.default
|
26
|
-
say "List: #{ListDecorator.new(list).short}"
|
27
|
-
else
|
28
|
-
say "List: No default set."
|
29
|
-
end
|
30
|
-
else
|
31
|
-
say "No local list data."
|
32
|
-
end
|
33
|
-
|
34
|
-
if card_count > 0
|
35
|
-
if card = Troo::CardRetrieval.default
|
36
|
-
say "Card: #{CardDecorator.new(card).short}"
|
37
|
-
else
|
38
|
-
say "Card: No default set."
|
39
|
-
end
|
40
|
-
else
|
41
|
-
say "No local card data."
|
42
|
-
end
|
43
|
-
|
44
|
-
puts [plural(board_count, "board"),
|
45
|
-
plural(list_count, "list"),
|
46
|
-
plural(card_count, "card") ].join(", ")
|
47
|
-
puts
|
12
|
+
say "Status:"
|
13
|
+
get_status(:board)
|
14
|
+
get_status(:list)
|
15
|
+
get_status(:card)
|
16
|
+
say ""
|
48
17
|
|
49
18
|
help
|
50
19
|
end
|
51
20
|
|
52
|
-
private
|
53
|
-
|
54
|
-
def plural(size, singular)
|
55
|
-
(size == 1) ? "#{size} #{singular}" : "#{size} #{singular}s"
|
56
|
-
end
|
57
|
-
|
58
|
-
public
|
59
|
-
|
60
21
|
desc "refresh", "Refresh all data for default board."
|
61
22
|
method_option :all, type: :boolean, desc: "Refresh all boards, lists, cards and comments."
|
62
23
|
method_option :lists, type: :boolean, desc: "Refresh all lists for default board."
|
@@ -66,7 +27,7 @@ module Troo
|
|
66
27
|
RefreshAll.all(nil, options)
|
67
28
|
say "All local data has been refreshed."
|
68
29
|
else
|
69
|
-
if board =
|
30
|
+
if board = BoardRetrieval.default
|
70
31
|
if options["lists"]
|
71
32
|
RefreshAll.lists(board, options)
|
72
33
|
say "All lists for the default board have been refreshed."
|
@@ -109,10 +70,10 @@ module Troo
|
|
109
70
|
|
110
71
|
desc "move <card_id> <list_id>", "Move a card <card_id> to list <list_id>."
|
111
72
|
def move(card_id, list_id)
|
112
|
-
if card =
|
113
|
-
if list =
|
73
|
+
if card = CardRetrieval.retrieve(card_id)
|
74
|
+
if list = ListRetrieval.retrieve(list_id)
|
114
75
|
if result = MoveCard.with(card, list)
|
115
|
-
say "Card moved from '#{card.list.name}' to '#{list.name}'."
|
76
|
+
say "Card moved from '#{card.list.decorator.name}' to '#{list.decorator.name}'."
|
116
77
|
else
|
117
78
|
say "Card could not be moved."
|
118
79
|
end
|
@@ -125,6 +86,47 @@ module Troo
|
|
125
86
|
rescue Troo::InvalidAccessToken
|
126
87
|
say "Your Trello access credentials have expired, please renew and try again."
|
127
88
|
end
|
89
|
+
|
90
|
+
private
|
91
|
+
attr_reader :id, :type
|
92
|
+
|
93
|
+
def get_status(type)
|
94
|
+
@id, @type = nil, type
|
95
|
+
return show if resource_found && resource
|
96
|
+
return no_default_found if resource_count > 0
|
97
|
+
end
|
98
|
+
|
99
|
+
def resource_found
|
100
|
+
label = " #{type.to_s.capitalize}s:".ljust(10)
|
101
|
+
say label + plural(resource_count, type.to_s) + " found."
|
102
|
+
end
|
103
|
+
|
104
|
+
def resource_count
|
105
|
+
@count = case type
|
106
|
+
when :board then Troo::Board.count
|
107
|
+
when :list then Troo::List.count
|
108
|
+
when :card then Troo::Card.count
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def show
|
113
|
+
say " #{resource.decorator.title}"
|
114
|
+
end
|
115
|
+
|
116
|
+
def no_default_found
|
117
|
+
say " " + Esc.red + "No default #{type} set." + Esc.reset
|
118
|
+
end
|
119
|
+
|
120
|
+
def plural(size, singular)
|
121
|
+
pluralized = singular + "s"
|
122
|
+
if size == 0
|
123
|
+
"No #{pluralized}"
|
124
|
+
elsif size == 1
|
125
|
+
"#{size} #{singular}"
|
126
|
+
else
|
127
|
+
"#{size} #{pluralized}"
|
128
|
+
end
|
129
|
+
end
|
128
130
|
end
|
129
131
|
end
|
130
132
|
end
|
data/lib/troo/cli/show_cli.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
module Troo
|
2
2
|
module CLI
|
3
3
|
class Show < ThorFixes
|
4
|
+
include Helpers
|
5
|
+
|
4
6
|
package_name "show"
|
5
7
|
|
6
8
|
desc "boards", "Show all the boards with lists."
|
7
9
|
def boards
|
8
|
-
boards =
|
10
|
+
boards = BoardRetrieval.all
|
9
11
|
if boards.any?
|
10
12
|
boards.map do |board|
|
11
13
|
BoardPresenter.render_all(board)
|
@@ -15,69 +17,48 @@ module Troo
|
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
|
-
desc "board (<
|
19
|
-
def board(
|
20
|
-
|
21
|
-
if SetDefault.for(board)
|
22
|
-
say "'#{board.name}' set to default."
|
23
|
-
end
|
24
|
-
BoardPresenter.render_show(board)
|
25
|
-
else
|
26
|
-
if board_id
|
27
|
-
say "Board not found."
|
28
|
-
else
|
29
|
-
say "Specify a <board_id> or use 'troo default board <board_id>' to set a default board first."
|
30
|
-
end
|
31
|
-
end
|
20
|
+
desc "board (<id>)", "Show lists and cards for board <id> (uses default board if <id> not provided)."
|
21
|
+
def board(id = nil)
|
22
|
+
initialize_and_dispatch(id, :board)
|
32
23
|
end
|
33
24
|
|
34
|
-
desc "list (<
|
35
|
-
def list(
|
36
|
-
|
37
|
-
if SetDefault.for(list)
|
38
|
-
say "'#{list.name}' set to default."
|
39
|
-
end
|
40
|
-
ListPresenter.render_show(list)
|
41
|
-
else
|
42
|
-
if list_id
|
43
|
-
say "List not found."
|
44
|
-
else
|
45
|
-
say "Specify a <list_id> or use 'troo default list <list_id>' to set a default list first."
|
46
|
-
end
|
47
|
-
end
|
25
|
+
desc "list (<id>)", "Show all cards for list <id> (uses default list if <id> not provided)."
|
26
|
+
def list(id = nil)
|
27
|
+
initialize_and_dispatch(id, :list)
|
48
28
|
end
|
49
29
|
|
50
|
-
desc "card (<
|
51
|
-
def card(
|
52
|
-
|
53
|
-
if SetDefault.for(card)
|
54
|
-
say "'#{card.name}' set to default."
|
55
|
-
end
|
56
|
-
CardPresenter.render_show(card)
|
57
|
-
else
|
58
|
-
if card_id
|
59
|
-
say "Card not found."
|
60
|
-
else
|
61
|
-
say "Specify a <card_id> or use 'troo default card <card_id>' to set a default card first."
|
62
|
-
end
|
63
|
-
end
|
30
|
+
desc "card (<id>)", "Show a card including latest 3 comments for card <id> (uses default card if <id> not provided)."
|
31
|
+
def card(id = nil)
|
32
|
+
initialize_and_dispatch(id, :card)
|
64
33
|
end
|
65
34
|
|
66
|
-
desc "comments (<
|
67
|
-
def comments(
|
68
|
-
if card =
|
35
|
+
desc "comments (<id>)", "Show all comments for card <id> (uses default card if <id> not provided)."
|
36
|
+
def comments(id = nil)
|
37
|
+
if card = CardRetrieval.retrieve(id)
|
69
38
|
if SetDefault.for(card)
|
70
|
-
say "'#{card.name}' set to default."
|
39
|
+
say "'#{card.decorator.name}' set to default."
|
71
40
|
end
|
72
|
-
CommentPresenter.
|
41
|
+
CommentPresenter.show(card)
|
73
42
|
else
|
74
|
-
if
|
75
|
-
say "Card
|
43
|
+
if id
|
44
|
+
say "Card cannot be found."
|
76
45
|
else
|
77
|
-
say "Specify a <
|
46
|
+
say "Specify a <id> or use 'troo default card <id>' to set a default card first."
|
78
47
|
end
|
79
48
|
end
|
80
49
|
end
|
50
|
+
|
51
|
+
private
|
52
|
+
attr_reader :id, :type
|
53
|
+
|
54
|
+
def initialize_and_dispatch(id, type)
|
55
|
+
@id, @type = id, type
|
56
|
+
show_resource
|
57
|
+
end
|
58
|
+
|
59
|
+
def show_resource
|
60
|
+
resource.presenter.show if set_default
|
61
|
+
end
|
81
62
|
end
|
82
63
|
end
|
83
64
|
end
|
@@ -5,8 +5,8 @@ module Troo
|
|
5
5
|
new(board, options).render_all
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
9
|
-
new(board, options).
|
8
|
+
def show(board, options = {})
|
9
|
+
new(board, options).show
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -18,48 +18,54 @@ module Troo
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def render_all
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
puts board.decorator.title
|
22
|
+
|
23
|
+
print_error "No lists were found." if lists.empty?
|
24
|
+
|
25
|
+
print_lists
|
26
|
+
end
|
27
|
+
|
28
|
+
def show
|
29
|
+
puts board.decorator.title
|
30
|
+
|
31
|
+
print_error "No lists were found." if lists.empty?
|
32
|
+
|
33
|
+
print_lists_with_cards
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
attr_reader :board
|
38
|
+
|
39
|
+
def print_lists_with_cards
|
40
|
+
lists.each do |list|
|
41
|
+
title_for(list)
|
42
|
+
|
43
|
+
print_error "No cards were found." if list.cards.empty?
|
44
|
+
|
45
|
+
list.cards(unformatted).each do |card|
|
46
|
+
title_for(card)
|
32
47
|
end
|
33
48
|
end
|
49
|
+
puts
|
34
50
|
end
|
35
51
|
|
36
|
-
def
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
if board.lists.any?
|
41
|
-
board.lists.each do |list|
|
42
|
-
indent do
|
43
|
-
print ListDecorator.new(list).short
|
44
|
-
|
45
|
-
if list.cards.any?
|
46
|
-
list.cards.each do |card|
|
47
|
-
indent do
|
48
|
-
print CardDecorator.new(card).short
|
49
|
-
end
|
50
|
-
end
|
51
|
-
else
|
52
|
-
print_error "No cards were found."
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
else
|
57
|
-
print_error "No lists were found."
|
58
|
-
end
|
52
|
+
def print_lists
|
53
|
+
lists.each do |list|
|
54
|
+
title_for(list)
|
59
55
|
end
|
56
|
+
puts
|
60
57
|
end
|
61
58
|
|
62
|
-
|
63
|
-
|
59
|
+
def lists
|
60
|
+
board.decorator.lists
|
61
|
+
end
|
62
|
+
|
63
|
+
def unformatted
|
64
|
+
{
|
65
|
+
ansicolor: false,
|
66
|
+
colour: nil,
|
67
|
+
underline: nil
|
68
|
+
}
|
69
|
+
end
|
64
70
|
end
|
65
71
|
end
|
@@ -11,11 +11,6 @@ module Troo
|
|
11
11
|
[default_str, id_str, name_str].join + "\n"
|
12
12
|
end
|
13
13
|
|
14
|
-
def title
|
15
|
-
title_options = { ansicolor: true, colour: Esc.green, underline: Esc.underline }
|
16
|
-
highlight([default, brackets(id), name].join(" "), title_options)
|
17
|
-
end
|
18
|
-
|
19
14
|
def name_str
|
20
15
|
highlight(name, options)
|
21
16
|
end
|
@@ -61,7 +56,7 @@ module Troo
|
|
61
56
|
|
62
57
|
def members
|
63
58
|
if card.members.any?
|
64
|
-
MemberPresenter.new(card).
|
59
|
+
MemberPresenter.new(card).show
|
65
60
|
else
|
66
61
|
"No members have been assigned."
|
67
62
|
end
|
@@ -72,11 +67,11 @@ module Troo
|
|
72
67
|
end
|
73
68
|
|
74
69
|
def board
|
75
|
-
|
70
|
+
card.board.decorator(options).short
|
76
71
|
end
|
77
72
|
|
78
73
|
def list
|
79
|
-
|
74
|
+
card.list.decorator(options).short
|
80
75
|
end
|
81
76
|
|
82
77
|
private
|
@@ -88,18 +83,18 @@ module Troo
|
|
88
83
|
|
89
84
|
def defaults
|
90
85
|
{
|
91
|
-
ansicolor:
|
92
|
-
colour:
|
93
|
-
underline:
|
86
|
+
ansicolor: true,
|
87
|
+
colour: Esc.magenta,
|
88
|
+
underline: Esc.underline
|
94
89
|
}
|
95
90
|
end
|
96
91
|
|
97
92
|
def decorated_recent_comments
|
98
|
-
card.recent_comments.map { |comment|
|
93
|
+
card.recent_comments.map { |comment| comment.decorator.as_view }.join
|
99
94
|
end
|
100
95
|
|
101
96
|
def decorated_all_comments
|
102
|
-
card.comments.map { |comment|
|
97
|
+
card.comments.map { |comment| comment.decorator.as_view }.join
|
103
98
|
end
|
104
99
|
end
|
105
100
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Troo
|
2
2
|
class CardPresenter
|
3
3
|
class << self
|
4
|
-
def
|
5
|
-
new(card, options).
|
4
|
+
def show(card, options = {})
|
5
|
+
new(card, options).show
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
@@ -13,7 +13,7 @@ module Troo
|
|
13
13
|
@options = options
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
16
|
+
def show
|
17
17
|
print Template.parse(decorated_card, "/../views/card.erb")
|
18
18
|
end
|
19
19
|
|
@@ -21,7 +21,7 @@ module Troo
|
|
21
21
|
attr_reader :card
|
22
22
|
|
23
23
|
def decorated_card
|
24
|
-
@decorated_card ||=
|
24
|
+
@decorated_card ||= card.decorator
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|