troo 0.0.9 → 0.0.10

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.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/Gemfile.lock +40 -32
  4. data/Guardfile +9 -1
  5. data/README.md +15 -10
  6. data/bin/troo +22 -2
  7. data/config/en.yml +11 -1
  8. data/config/help +16 -0
  9. data/{.trooconf.example → config/trooconf.yml} +4 -2
  10. data/features/add/card.feature +1 -1
  11. data/features/add/comment.feature +1 -1
  12. data/features/add/list.feature +1 -1
  13. data/features/default/board.feature +1 -1
  14. data/features/default/card.feature +1 -1
  15. data/features/default/list.feature +1 -1
  16. data/features/move/card.feature +5 -5
  17. data/features/refresh/board.feature +1 -1
  18. data/features/refresh/card.feature +1 -1
  19. data/features/refresh/list.feature +1 -1
  20. data/features/show/board.feature +11 -3
  21. data/features/show/boards.feature +1 -0
  22. data/features/show/card.feature +7 -7
  23. data/features/show/comment.feature +15 -6
  24. data/features/show/list.feature +3 -1
  25. data/features/status.feature +2 -2
  26. data/features/step_definitions/fabrication_steps.rb +11 -11
  27. data/features/step_definitions/troo_steps.rb +1 -1
  28. data/features/support/cassettes/200_board_by_id.yml +56 -0
  29. data/features/support/cassettes/200_card_by_id.yml +77 -0
  30. data/features/support/cassettes/200_create_board.yml +186 -0
  31. data/features/support/cassettes/200_create_card.yml +86 -0
  32. data/features/support/cassettes/200_create_comment.yml +73 -0
  33. data/features/support/cassettes/200_create_list.yml +53 -0
  34. data/{test/cassettes/list_by_id.yml → features/support/cassettes/200_list_by_id.yml} +6 -6
  35. data/features/support/cassettes/200_move_card_200_board.yml +86 -0
  36. data/features/support/cassettes/200_move_card_200_list.yml +86 -0
  37. data/features/support/cassettes/200_move_card_400_list.yml +46 -0
  38. data/{test/cassettes/lists_by_board_id.yml → features/support/cassettes/400_board_by_id.yml} +10 -10
  39. data/features/support/cassettes/400_card_by_id.yml +46 -0
  40. data/features/support/cassettes/400_create_card.yml +46 -0
  41. data/features/support/cassettes/400_create_comment.yml +46 -0
  42. data/features/support/cassettes/400_create_list.yml +46 -0
  43. data/features/support/cassettes/400_list_by_id.yml +46 -0
  44. data/features/support/cassettes/400_move_card_200_list.yml +46 -0
  45. data/features/support/cassettes/400_move_card_400_board.yml +46 -0
  46. data/features/support/cassettes/boards_all.yml +286 -0
  47. data/features/support/env.rb +1 -2
  48. data/lib/troo/cli/commands/refresh/all.rb +2 -0
  49. data/lib/troo/cli/main.rb +2 -23
  50. data/lib/troo/configuration.rb +5 -0
  51. data/lib/troo/database.rb +29 -0
  52. data/lib/troo/decorators/resource.rb +24 -10
  53. data/lib/troo/helpers/model_helpers.rb +3 -2
  54. data/lib/troo/models/board.rb +1 -1
  55. data/lib/troo/models/card.rb +1 -1
  56. data/lib/troo/models/comment.rb +0 -4
  57. data/lib/troo/models/list.rb +1 -1
  58. data/lib/troo/presentation/formatter.rb +99 -4
  59. data/lib/troo/presentation/template.rb +8 -9
  60. data/lib/troo/presenters/board.rb +24 -26
  61. data/lib/troo/presenters/card.rb +3 -1
  62. data/lib/troo/presenters/list.rb +30 -17
  63. data/lib/troo/presenters/resource.rb +90 -0
  64. data/lib/troo/retrieval/local.rb +5 -1
  65. data/lib/troo/troo.rb +2 -0
  66. data/lib/troo/version.rb +1 -1
  67. data/lib/troo.rb +7 -4
  68. data/test/cassettes/create_board.yml +15 -9
  69. data/test/cassettes/create_card.yml +10 -10
  70. data/test/cassettes/create_comment.yml +9 -9
  71. data/test/cassettes/create_list.yml +5 -5
  72. data/test/cassettes/move_card_board.yml +11 -11
  73. data/test/cassettes/move_card_list.yml +11 -11
  74. data/test/lib/troo/api/endpoints_test.rb +2 -2
  75. data/test/lib/troo/cli/commands/add_test.rb +2 -2
  76. data/test/lib/troo/cli/commands/refresh/all_test.rb +4 -9
  77. data/test/lib/troo/cli/main_test.rb +0 -25
  78. data/test/lib/troo/configuration_test.rb +18 -13
  79. data/test/lib/troo/decorators/member_test.rb +0 -27
  80. data/test/lib/troo/decorators/resource_test.rb +0 -32
  81. data/test/lib/troo/helpers/model_helpers_test.rb +15 -3
  82. data/test/lib/troo/models/board_test.rb +45 -1
  83. data/test/lib/troo/models/card_test.rb +60 -6
  84. data/test/lib/troo/models/comment_test.rb +44 -4
  85. data/test/lib/troo/models/database_test.rb +19 -0
  86. data/test/lib/troo/models/list_test.rb +46 -2
  87. data/test/lib/troo/models/member_test.rb +51 -1
  88. data/test/lib/troo/presentation/formatter_test.rb +54 -2
  89. data/test/lib/troo/presentation/template_test.rb +4 -4
  90. data/test/lib/troo/presenters/board_test.rb +4 -3
  91. data/test/lib/troo/presenters/list_test.rb +3 -3
  92. data/test/lib/troo/presenters/member_test.rb +1 -1
  93. data/test/lib/troo/presenters/resource_test.rb +79 -0
  94. data/test/lib/troo/remote/board_test.rb +5 -8
  95. data/test/lib/troo/remote/card_test.rb +7 -11
  96. data/test/lib/troo/remote/comment_test.rb +10 -14
  97. data/test/lib/troo/remote/list_test.rb +5 -9
  98. data/test/lib/troo/remote/member_test.rb +5 -9
  99. data/test/lib/troo/remote/persistence/card_test.rb +1 -1
  100. data/test/lib/troo/remote/persistence/comment_test.rb +1 -1
  101. data/test/lib/troo/remote/persistence/list_test.rb +1 -1
  102. data/test/lib/troo/remote/persistence/move_card_test.rb +3 -3
  103. data/test/lib/troo/retrieval/local_test.rb +13 -1
  104. data/test/lib/troo/retrieval/remote_test.rb +1 -1
  105. data/test/support/fabrication.rb +12 -12
  106. data/test/support/fake_trello/fake_response.rb +18 -1
  107. data/test/support/fake_trello/server.rb +2 -0
  108. data/test/support/remotes/all_boards.json +103 -4
  109. data/test/support/remotes/{board.json → all_boards_200.json} +13 -13
  110. data/test/support/remotes/board_200.json +140 -0
  111. data/test/support/remotes/board_by_id.json +9 -9
  112. data/test/support/remotes/board_by_id_200.json +75 -0
  113. data/test/support/remotes/card.json +4 -4
  114. data/test/support/remotes/card_200.json +40 -0
  115. data/test/support/remotes/card_by_card_id.json +64 -64
  116. data/test/support/remotes/card_by_card_id_200.json +302 -0
  117. data/test/support/remotes/comment.json +6 -6
  118. data/test/support/remotes/comment_200.json +27 -0
  119. data/test/support/remotes/create_board.json +1 -1
  120. data/test/support/remotes/create_board_200.json +38 -0
  121. data/test/support/remotes/list.json +2 -2
  122. data/test/support/remotes/list_200.json +7 -0
  123. data/test/support/remotes/member.json +4 -4
  124. data/test/support/remotes/member_200.json +50 -0
  125. data/test/test_helper.rb +9 -2
  126. data/troo.gemspec +4 -3
  127. metadata +92 -41
  128. data/test/cassettes/board_by_id.yml +0 -50
  129. data/test/cassettes/boards_all.yml +0 -50
  130. data/test/cassettes/card_by_id.yml +0 -49
  131. data/test/cassettes/cards_by_board_id.yml +0 -49
  132. data/test/cassettes/cards_by_list_id.yml +0 -49
  133. data/test/cassettes/comments_by_board_id.yml +0 -49
  134. data/test/cassettes/comments_by_card_id.yml +0 -49
  135. data/test/cassettes/member_by_id.yml +0 -48
  136. data/test/cassettes/members_by_board_id.yml +0 -48
  137. data/test/lib/troo/decorators/card_test.rb +0 -113
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "526d8e130a14a9d846001d96",
2
+ "id": "20010",
3
3
  "name": "My Test Board",
4
4
  "desc": "A very brief description...",
5
5
  "descData": null,
@@ -37,14 +37,14 @@
37
37
  },
38
38
  "cards": [
39
39
  {
40
- "id": "526d8e201fd7dac675004c49",
40
+ "id": "20020",
41
41
  "checkItemStates": [],
42
42
  "closed": true,
43
43
  "dateLastActivity": "2013-10-27T22:10:19.584Z",
44
44
  "desc": "",
45
45
  "descData": null,
46
- "idBoard": "526d8e130a14a9d846001d96",
47
- "idList": "526d8e130a14a9d846001d97",
46
+ "idBoard": "20010",
47
+ "idList": "20040",
48
48
  "idMembersVoted": [],
49
49
  "idShort": 1,
50
50
  "idAttachmentCover": null,
@@ -73,14 +73,14 @@
73
73
  "url": "<Trello URL>"
74
74
  },
75
75
  {
76
- "id": "52cb0eb873b2cf2f3a60a973",
76
+ "id": "20021",
77
77
  "checkItemStates": [],
78
78
  "closed": false,
79
79
  "dateLastActivity": "2014-02-07T19:39:15.075Z",
80
80
  "desc": "A description to get us started.",
81
81
  "descData": null,
82
- "idBoard": "526d8e130a14a9d846001d96",
83
- "idList": "526d8e130a14a9d846001d97",
82
+ "idBoard": "20010",
83
+ "idList": "20040",
84
84
  "idMembersVoted": [],
85
85
  "idShort": 27,
86
86
  "idAttachmentCover": null,
@@ -111,8 +111,8 @@
111
111
  ],
112
112
  "members": [
113
113
  {
114
- "id": "5195fdb5a8c01a2318004f5d",
115
- "avatarHash": "045fd924d84699c9ba451e181bba33a3",
114
+ "id": "20050",
115
+ "avatarHash": "20001",
116
116
  "initials": "GL",
117
117
  "fullName": "Gavin Laking",
118
118
  "username": "gavinlaking1",
@@ -121,18 +121,18 @@
121
121
  ],
122
122
  "lists": [
123
123
  {
124
- "id": "52d5982f59cba13377bfed33",
124
+ "id": "20040",
125
125
  "name": "My New List",
126
126
  "closed": true,
127
- "idBoard": "526d8e130a14a9d846001d96",
127
+ "idBoard": "20010",
128
128
  "pos": 256,
129
129
  "subscribed": false
130
130
  },
131
131
  {
132
- "id": "52d1c3448a4da3ab7d1c6ae9",
132
+ "id": "20041",
133
133
  "name": "My New List",
134
134
  "closed": true,
135
- "idBoard": "526d8e130a14a9d846001d96",
135
+ "idBoard": "20010",
136
136
  "pos": 512,
137
137
  "subscribed": false
138
138
  }
@@ -0,0 +1,140 @@
1
+ {
2
+ "id": "20010",
3
+ "name": "My Test Board",
4
+ "desc": "A very brief description...",
5
+ "descData": null,
6
+ "closed": false,
7
+ "idOrganization": null,
8
+ "pinned": true,
9
+ "url": "<Trello URL>",
10
+ "shortUrl": "<Trello URL>",
11
+ "prefs": {
12
+ "permissionLevel": "private",
13
+ "voting": "disabled",
14
+ "comments": "members",
15
+ "invitations": "members",
16
+ "selfJoin": false,
17
+ "cardCovers": true,
18
+ "cardAging": "regular",
19
+ "background": "blue",
20
+ "backgroundColor": "#23719F",
21
+ "backgroundImage": null,
22
+ "backgroundImageScaled": null,
23
+ "backgroundTile": false,
24
+ "backgroundBrightness": "unknown",
25
+ "canBePublic": true,
26
+ "canBeOrg": true,
27
+ "canBePrivate": true,
28
+ "canInvite": true
29
+ },
30
+ "labelNames": {
31
+ "yellow": "Analysis Complete",
32
+ "red": "",
33
+ "purple": "",
34
+ "orange": "",
35
+ "green": "Ready to Pull",
36
+ "blue": ""
37
+ },
38
+ "cards": [
39
+ {
40
+ "id": "20020",
41
+ "checkItemStates": [],
42
+ "closed": true,
43
+ "dateLastActivity": "2013-10-27T22:10:19.584Z",
44
+ "desc": "",
45
+ "descData": null,
46
+ "idBoard": "20010",
47
+ "idList": "20040",
48
+ "idMembersVoted": [],
49
+ "idShort": 1,
50
+ "idAttachmentCover": null,
51
+ "manualCoverAttachment": false,
52
+ "name": "Command: config",
53
+ "pos": 327679,
54
+ "shortLink": "1G0cGaRV",
55
+ "badges": {
56
+ "votes": 0,
57
+ "viewingMemberVoted": false,
58
+ "subscribed": false,
59
+ "fogbugz": "",
60
+ "checkItems": 0,
61
+ "checkItemsChecked": 0,
62
+ "comments": 0,
63
+ "attachments": 0,
64
+ "description": false,
65
+ "due": null
66
+ },
67
+ "due": null,
68
+ "idChecklists": [],
69
+ "idMembers": [],
70
+ "labels": [],
71
+ "shortUrl": "<Trello URL>",
72
+ "subscribed": false,
73
+ "url": "<Trello URL>"
74
+ },
75
+ {
76
+ "id": "20021",
77
+ "checkItemStates": [],
78
+ "closed": false,
79
+ "dateLastActivity": "2014-02-07T19:39:15.075Z",
80
+ "desc": "A description to get us started.",
81
+ "descData": null,
82
+ "idBoard": "20010",
83
+ "idList": "20040",
84
+ "idMembersVoted": [],
85
+ "idShort": 27,
86
+ "idAttachmentCover": null,
87
+ "manualCoverAttachment": false,
88
+ "name": "My New Card",
89
+ "pos": 606207,
90
+ "shortLink": "OMnSslgP",
91
+ "badges": {
92
+ "votes": 0,
93
+ "viewingMemberVoted": false,
94
+ "subscribed": false,
95
+ "fogbugz": "",
96
+ "checkItems": 0,
97
+ "checkItemsChecked": 0,
98
+ "comments": 1,
99
+ "attachments": 0,
100
+ "description": true,
101
+ "due": null
102
+ },
103
+ "due": null,
104
+ "idChecklists": [],
105
+ "idMembers": [],
106
+ "labels": [],
107
+ "shortUrl": "<Trello URL>",
108
+ "subscribed": false,
109
+ "url": "<Trello URL>"
110
+ }
111
+ ],
112
+ "members": [
113
+ {
114
+ "id": "20050",
115
+ "avatarHash": "20001",
116
+ "initials": "GL",
117
+ "fullName": "Gavin Laking",
118
+ "username": "gavinlaking1",
119
+ "confirmed": true
120
+ }
121
+ ],
122
+ "lists": [
123
+ {
124
+ "id": "20040",
125
+ "name": "My New List",
126
+ "closed": true,
127
+ "idBoard": "20010",
128
+ "pos": 256,
129
+ "subscribed": false
130
+ },
131
+ {
132
+ "id": "20041",
133
+ "name": "My New List",
134
+ "closed": true,
135
+ "idBoard": "20010",
136
+ "pos": 512,
137
+ "subscribed": false
138
+ }
139
+ ]
140
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "5314dd74bffa89560a22d520",
2
+ "id": "20010",
3
3
  "name": "Troo Board",
4
4
  "desc": "",
5
5
  "descData": null,
@@ -38,8 +38,8 @@
38
38
  "cards": [],
39
39
  "members": [
40
40
  {
41
- "id": "5195fdb5a8c01a2318004f5d",
42
- "avatarHash": "045fd924d84699c9ba451e181bba33a3",
41
+ "id": "20050",
42
+ "avatarHash": "20001",
43
43
  "initials": "GL",
44
44
  "fullName": "Gavin Laking",
45
45
  "username": "gavinlaking1",
@@ -48,26 +48,26 @@
48
48
  ],
49
49
  "lists": [
50
50
  {
51
- "id": "5314dd74bffa89560a22d521",
51
+ "id": "20040",
52
52
  "name": "To Do",
53
53
  "closed": false,
54
- "idBoard": "5314dd74bffa89560a22d520",
54
+ "idBoard": "20010",
55
55
  "pos": 16384,
56
56
  "subscribed": false
57
57
  },
58
58
  {
59
- "id": "5314dd74bffa89560a22d522",
59
+ "id": "20041",
60
60
  "name": "Doing",
61
61
  "closed": false,
62
- "idBoard": "5314dd74bffa89560a22d520",
62
+ "idBoard": "20010",
63
63
  "pos": 32768,
64
64
  "subscribed": false
65
65
  },
66
66
  {
67
- "id": "5314dd74bffa89560a22d523",
67
+ "id": "20042",
68
68
  "name": "Done",
69
69
  "closed": false,
70
- "idBoard": "5314dd74bffa89560a22d520",
70
+ "idBoard": "20010",
71
71
  "pos": 49152,
72
72
  "subscribed": false
73
73
  }
@@ -0,0 +1,75 @@
1
+ {
2
+ "id": "20010",
3
+ "name": "Troo Board",
4
+ "desc": "",
5
+ "descData": null,
6
+ "closed": false,
7
+ "idOrganization": null,
8
+ "pinned": true,
9
+ "url": "https://trello.com/b/cGD87Ml3/troo-board",
10
+ "shortUrl": "https://trello.com/b/cGD87Ml3",
11
+ "prefs": {
12
+ "permissionLevel": "private",
13
+ "voting": "disabled",
14
+ "comments": "members",
15
+ "invitations": "members",
16
+ "selfJoin": false,
17
+ "cardCovers": true,
18
+ "cardAging": "regular",
19
+ "background": "blue",
20
+ "backgroundColor": "#23719F",
21
+ "backgroundImage": null,
22
+ "backgroundImageScaled": null,
23
+ "backgroundTile": false,
24
+ "backgroundBrightness": "unknown",
25
+ "canBePublic": true,
26
+ "canBeOrg": true,
27
+ "canBePrivate": true,
28
+ "canInvite": true
29
+ },
30
+ "labelNames": {
31
+ "red": "",
32
+ "orange": "",
33
+ "yellow": "",
34
+ "green": "",
35
+ "blue": "",
36
+ "purple": ""
37
+ },
38
+ "cards": [],
39
+ "members": [
40
+ {
41
+ "id": "20050",
42
+ "avatarHash": "20001",
43
+ "initials": "GL",
44
+ "fullName": "Gavin Laking",
45
+ "username": "gavinlaking1",
46
+ "confirmed": true
47
+ }
48
+ ],
49
+ "lists": [
50
+ {
51
+ "id": "20040",
52
+ "name": "To Do",
53
+ "closed": false,
54
+ "idBoard": "20010",
55
+ "pos": 16384,
56
+ "subscribed": false
57
+ },
58
+ {
59
+ "id": "20041",
60
+ "name": "Doing",
61
+ "closed": false,
62
+ "idBoard": "20010",
63
+ "pos": 32768,
64
+ "subscribed": false
65
+ },
66
+ {
67
+ "id": "20042",
68
+ "name": "Done",
69
+ "closed": false,
70
+ "idBoard": "20010",
71
+ "pos": 49152,
72
+ "subscribed": false
73
+ }
74
+ ]
75
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "526d8f19ddb279532e005259",
2
+ "id": "20020",
3
3
  "badges": {
4
4
  "votes": 0,
5
5
  "viewingMemberVoted": false,
@@ -18,11 +18,11 @@
18
18
  "desc": "some description",
19
19
  "descData": null,
20
20
  "due": null,
21
- "idBoard": "526d8e130a14a9d846001d96",
21
+ "idBoard": "20010",
22
22
  "idChecklists": [],
23
- "idList": "526d8e130a14a9d846001d98",
23
+ "idList": "20040",
24
24
  "idMembers": [
25
- "5195fdb5a8c01a2318004f5d"
25
+ "20050"
26
26
  ],
27
27
  "idShort": 67,
28
28
  "idAttachmentCover": null,
@@ -0,0 +1,40 @@
1
+ {
2
+ "id": "20020",
3
+ "badges": {
4
+ "votes": 0,
5
+ "viewingMemberVoted": false,
6
+ "subscribed": false,
7
+ "fogbugz": "",
8
+ "checkItems": 0,
9
+ "checkItemsChecked": 0,
10
+ "comments": 10,
11
+ "attachments": 0,
12
+ "description": false,
13
+ "due": null
14
+ },
15
+ "checkItemStates": [],
16
+ "closed": false,
17
+ "dateLastActivity": "2014-02-13T20:12:46.612Z",
18
+ "desc": "some description",
19
+ "descData": null,
20
+ "due": null,
21
+ "idBoard": "20010",
22
+ "idChecklists": [],
23
+ "idList": "20040",
24
+ "idMembers": [
25
+ "20050"
26
+ ],
27
+ "idShort": 67,
28
+ "idAttachmentCover": null,
29
+ "manualCoverAttachment": false,
30
+ "labels": [
31
+ {
32
+ "color": "green",
33
+ "name": "Ready to Pull"
34
+ }
35
+ ],
36
+ "name": "My Test Card",
37
+ "pos": 589823,
38
+ "shortUrl": "<Trello URL>",
39
+ "url": "<Trello URL>"
40
+ }