troo 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|