troo 0.0.8 → 0.0.9

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 (316) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.ruby-version +1 -1
  4. data/.trooconf.example +18 -0
  5. data/Gemfile.lock +178 -0
  6. data/README.md +77 -21
  7. data/Rakefile +1 -1
  8. data/bin/completion.bash +10 -0
  9. data/bin/completion.zsh +10 -0
  10. data/bin/init.sh +15 -0
  11. data/bin/troo +12 -3
  12. data/config/cucumber.yml +3 -3
  13. data/config/en.yml +29 -0
  14. data/config/trello_api.yml +19 -0
  15. data/features/add/board.feature +3 -19
  16. data/features/add/card.feature +14 -18
  17. data/features/add/comment.feature +14 -14
  18. data/features/add/list.feature +11 -14
  19. data/features/default/board.feature +4 -4
  20. data/features/default/card.feature +4 -4
  21. data/features/default/list.feature +4 -4
  22. data/features/move/card.feature +54 -0
  23. data/features/refresh/all.feature +8 -4
  24. data/features/refresh/board.feature +9 -6
  25. data/features/refresh/card.feature +9 -6
  26. data/features/refresh/list.feature +9 -6
  27. data/features/show/board.feature +7 -7
  28. data/features/show/boards.feature +19 -0
  29. data/features/show/card.feature +86 -15
  30. data/features/show/comment.feature +14 -12
  31. data/features/show/list.feature +19 -14
  32. data/features/status.feature +27 -13
  33. data/features/step_definitions/fabrication_steps.rb +43 -8
  34. data/features/step_definitions/troo_steps.rb +3 -2
  35. data/features/support/env.rb +1 -0
  36. data/features/troo.feature +0 -12
  37. data/lib/troo.rb +32 -29
  38. data/lib/troo/api/client.rb +117 -0
  39. data/lib/troo/api/endpoints.rb +39 -0
  40. data/lib/troo/api/headers.rb +44 -0
  41. data/lib/troo/api/oauth_settings.rb +36 -0
  42. data/lib/troo/api/request.rb +37 -0
  43. data/lib/troo/api/response.rb +31 -0
  44. data/lib/troo/cli/add.rb +8 -12
  45. data/lib/troo/cli/commands/add.rb +95 -0
  46. data/lib/troo/cli/commands/default.rb +44 -0
  47. data/lib/troo/cli/commands/move/card.rb +95 -0
  48. data/lib/troo/cli/commands/refresh.rb +80 -0
  49. data/lib/troo/cli/commands/refresh/all.rb +52 -0
  50. data/lib/troo/cli/commands/show.rb +56 -0
  51. data/lib/troo/cli/commands/show/show_boards.rb +36 -0
  52. data/lib/troo/cli/commands/show/show_comments.rb +54 -0
  53. data/lib/troo/cli/commands/status.rb +68 -0
  54. data/lib/troo/cli/default.rb +3 -3
  55. data/lib/troo/cli/main.rb +60 -9
  56. data/lib/troo/cli/refresh.rb +4 -4
  57. data/lib/troo/cli/show.rb +7 -7
  58. data/lib/troo/cli/thor_fixes.rb +1 -5
  59. data/lib/troo/configuration.rb +53 -0
  60. data/lib/troo/debug.rb +18 -0
  61. data/lib/troo/decorators/member.rb +2 -19
  62. data/lib/troo/decorators/resource.rb +130 -0
  63. data/lib/troo/helpers/decorator_helpers.rb +21 -74
  64. data/lib/troo/helpers/model_helpers.rb +19 -4
  65. data/lib/troo/helpers/remote_model_helpers.rb +54 -0
  66. data/lib/troo/models/board.rb +19 -11
  67. data/lib/troo/models/card.rb +20 -17
  68. data/lib/troo/models/comment.rb +28 -8
  69. data/lib/troo/models/list.rb +22 -14
  70. data/lib/troo/models/member.rb +21 -5
  71. data/lib/troo/models/refresh.rb +3 -4
  72. data/lib/troo/persistence/local.rb +63 -0
  73. data/lib/troo/presentation/formatter.rb +132 -0
  74. data/lib/troo/presentation/template.rb +0 -4
  75. data/lib/troo/presenters/board.rb +32 -51
  76. data/lib/troo/presenters/card.rb +4 -11
  77. data/lib/troo/presenters/comment.rb +30 -16
  78. data/lib/troo/presenters/list.rb +25 -21
  79. data/lib/troo/presenters/member.rb +1 -8
  80. data/lib/troo/remote/all.rb +16 -0
  81. data/lib/troo/remote/board.rb +64 -0
  82. data/lib/troo/remote/card.rb +81 -0
  83. data/lib/troo/remote/comment.rb +70 -0
  84. data/lib/troo/remote/comment_data.rb +11 -0
  85. data/lib/troo/remote/comment_data_board.rb +13 -0
  86. data/lib/troo/remote/comment_data_card.rb +15 -0
  87. data/lib/troo/remote/list.rb +49 -0
  88. data/lib/troo/remote/member.rb +75 -0
  89. data/lib/troo/remote/persistence/board.rb +57 -0
  90. data/lib/troo/remote/persistence/card.rb +59 -0
  91. data/lib/troo/remote/persistence/comment.rb +58 -0
  92. data/lib/troo/remote/persistence/list.rb +57 -0
  93. data/lib/troo/remote/persistence/move_card.rb +85 -0
  94. data/lib/troo/retrieval/local.rb +100 -0
  95. data/lib/troo/retrieval/remote.rb +91 -0
  96. data/lib/troo/troo.rb +42 -42
  97. data/lib/troo/version.rb +1 -1
  98. data/lib/troo/views/card.erb +8 -10
  99. data/lib/troo/views/comments.erb +4 -0
  100. data/test/cassettes/board_by_id.yml +21 -30
  101. data/test/cassettes/boards_all.yml +22 -90
  102. data/test/cassettes/card_by_id.yml +49 -0
  103. data/test/cassettes/cards_by_board_id.yml +22 -90
  104. data/test/cassettes/cards_by_list_id.yml +22 -87
  105. data/test/cassettes/comments_by_board_id.yml +22 -95
  106. data/test/cassettes/comments_by_card_id.yml +22 -87
  107. data/test/cassettes/create_board.yml +20 -32
  108. data/test/cassettes/create_card.yml +21 -35
  109. data/test/cassettes/create_comment.yml +19 -37
  110. data/test/cassettes/create_list.yml +18 -32
  111. data/test/cassettes/list_by_id.yml +46 -0
  112. data/test/cassettes/lists_by_board_id.yml +19 -91
  113. data/test/cassettes/member_by_id.yml +48 -0
  114. data/test/cassettes/members_by_board_id.yml +21 -82
  115. data/test/cassettes/move_card_board.yml +49 -0
  116. data/test/cassettes/move_card_list.yml +49 -0
  117. data/test/lib/troo/api/client_test.rb +75 -0
  118. data/test/lib/troo/api/endpoints_test.rb +48 -0
  119. data/test/lib/troo/api/headers_test.rb +27 -0
  120. data/test/lib/troo/api/oauth_settings_test.rb +10 -0
  121. data/test/lib/troo/api/request_test.rb +63 -0
  122. data/test/lib/troo/api/response_test.rb +15 -0
  123. data/test/lib/troo/cli/add_test.rb +113 -0
  124. data/test/lib/troo/cli/commands/add_test.rb +66 -0
  125. data/test/lib/troo/cli/commands/default_test.rb +39 -0
  126. data/test/lib/troo/cli/commands/move/card_test.rb +86 -0
  127. data/test/lib/troo/cli/commands/refresh/all_test.rb +37 -0
  128. data/test/lib/troo/cli/commands/refresh_test.rb +59 -0
  129. data/test/lib/troo/cli/commands/show/show_boards_test.rb +35 -0
  130. data/test/lib/troo/cli/commands/show/show_comments_test.rb +63 -0
  131. data/test/lib/troo/cli/commands/show_test.rb +65 -0
  132. data/test/lib/troo/cli/commands/status_test.rb +48 -0
  133. data/test/lib/troo/cli/default_test.rb +39 -0
  134. data/test/lib/troo/cli/main_test.rb +102 -0
  135. data/test/lib/troo/cli/refresh_test.rb +43 -0
  136. data/test/lib/troo/cli/show_test.rb +49 -0
  137. data/test/lib/troo/cli/thor_fixes_test.rb +38 -0
  138. data/test/lib/troo/configuration_test.rb +43 -0
  139. data/test/lib/troo/debug_test.rb +25 -0
  140. data/test/lib/troo/decorators/card_test.rb +105 -229
  141. data/test/lib/troo/decorators/member_test.rb +20 -35
  142. data/test/lib/troo/decorators/resource_test.rb +157 -0
  143. data/test/lib/troo/helpers/decorator_helpers_test.rb +10 -19
  144. data/test/lib/troo/helpers/model_helpers_test.rb +18 -8
  145. data/test/lib/troo/helpers/remote_model_helpers_test.rb +68 -0
  146. data/test/lib/troo/models/behaviours/set_default_test.rb +0 -10
  147. data/test/lib/troo/models/board_test.rb +2 -2
  148. data/test/lib/troo/models/card_test.rb +2 -2
  149. data/test/lib/troo/models/comment_test.rb +6 -2
  150. data/test/lib/troo/models/list_test.rb +2 -2
  151. data/test/lib/troo/models/member_test.rb +6 -2
  152. data/test/lib/troo/persistence/local_test.rb +31 -0
  153. data/test/lib/troo/presentation/formatter_test.rb +31 -0
  154. data/test/lib/troo/presentation/sentence_test.rb +0 -12
  155. data/test/lib/troo/presentation/template_test.rb +1 -14
  156. data/test/lib/troo/presenters/board_test.rb +17 -36
  157. data/test/lib/troo/presenters/card_test.rb +1 -31
  158. data/test/lib/troo/presenters/comment_test.rb +19 -19
  159. data/test/lib/troo/presenters/list_test.rb +18 -18
  160. data/test/lib/troo/presenters/member_test.rb +1 -14
  161. data/test/lib/troo/remote/board_test.rb +66 -0
  162. data/test/lib/troo/remote/card_test.rb +81 -0
  163. data/test/lib/troo/remote/comment_data_board.rb +9 -0
  164. data/test/lib/troo/remote/comment_data_card_test.rb +9 -0
  165. data/test/lib/troo/remote/comment_data_test.rb +9 -0
  166. data/test/lib/troo/remote/comment_test.rb +100 -0
  167. data/test/lib/troo/remote/list_test.rb +67 -0
  168. data/test/lib/troo/remote/member_test.rb +70 -0
  169. data/test/lib/troo/remote/persistence/board_test.rb +39 -0
  170. data/test/lib/troo/remote/persistence/card_test.rb +50 -0
  171. data/test/lib/troo/remote/persistence/comment_test.rb +45 -0
  172. data/test/lib/troo/remote/persistence/list_test.rb +45 -0
  173. data/test/lib/troo/remote/persistence/move_card_test.rb +78 -0
  174. data/test/lib/troo/retrieval/local_test.rb +192 -0
  175. data/test/lib/troo/retrieval/remote_test.rb +49 -0
  176. data/test/support/fabrication.rb +17 -17
  177. data/test/support/fake_trello/fake_response.rb +38 -0
  178. data/test/support/fake_trello/server.rb +124 -0
  179. data/test/support/remotes/all_boards.json +41 -0
  180. data/test/support/remotes/board.json +140 -0
  181. data/test/support/remotes/board_by_id.json +75 -0
  182. data/test/support/remotes/card.json +40 -0
  183. data/test/support/remotes/card_by_card_id.json +302 -0
  184. data/test/support/remotes/comment.json +27 -0
  185. data/test/support/remotes/create_board.json +38 -0
  186. data/test/support/remotes/list.json +7 -0
  187. data/test/support/remotes/member.json +50 -0
  188. data/test/system_test.sh +21 -1
  189. data/test/test_helper.rb +2 -1
  190. data/troo.gemspec +28 -20
  191. metadata +376 -269
  192. data/configuration.yml.example +0 -7
  193. data/features/cleanup.feature +0 -13
  194. data/lib/troo/actions/create_board.rb +0 -46
  195. data/lib/troo/actions/create_card.rb +0 -44
  196. data/lib/troo/actions/create_comment.rb +0 -46
  197. data/lib/troo/actions/create_list.rb +0 -42
  198. data/lib/troo/actions/move_card.rb +0 -37
  199. data/lib/troo/adaptors/board.rb +0 -32
  200. data/lib/troo/adaptors/card.rb +0 -67
  201. data/lib/troo/adaptors/comment.rb +0 -42
  202. data/lib/troo/adaptors/list.rb +0 -37
  203. data/lib/troo/adaptors/member.rb +0 -52
  204. data/lib/troo/adaptors/resource.rb +0 -17
  205. data/lib/troo/commands/add/board.rb +0 -26
  206. data/lib/troo/commands/add/card.rb +0 -33
  207. data/lib/troo/commands/add/comment.rb +0 -33
  208. data/lib/troo/commands/add/list.rb +0 -33
  209. data/lib/troo/commands/add/resource.rb +0 -21
  210. data/lib/troo/commands/commands.rb +0 -28
  211. data/lib/troo/commands/default/board.rb +0 -25
  212. data/lib/troo/commands/default/card.rb +0 -25
  213. data/lib/troo/commands/default/list.rb +0 -25
  214. data/lib/troo/commands/default/resource.rb +0 -26
  215. data/lib/troo/commands/refresh/all.rb +0 -41
  216. data/lib/troo/commands/refresh/board.rb +0 -28
  217. data/lib/troo/commands/refresh/card.rb +0 -29
  218. data/lib/troo/commands/refresh/list.rb +0 -29
  219. data/lib/troo/commands/refresh/resource.rb +0 -42
  220. data/lib/troo/commands/show/board.rb +0 -13
  221. data/lib/troo/commands/show/boards.rb +0 -35
  222. data/lib/troo/commands/show/card.rb +0 -13
  223. data/lib/troo/commands/show/comments.rb +0 -21
  224. data/lib/troo/commands/show/list.rb +0 -13
  225. data/lib/troo/commands/show/resource.rb +0 -41
  226. data/lib/troo/commands/status/board.rb +0 -30
  227. data/lib/troo/commands/status/card.rb +0 -30
  228. data/lib/troo/commands/status/list.rb +0 -30
  229. data/lib/troo/commands/status/resource.rb +0 -34
  230. data/lib/troo/decorators/board.rb +0 -66
  231. data/lib/troo/decorators/card.rb +0 -105
  232. data/lib/troo/decorators/comment.rb +0 -36
  233. data/lib/troo/decorators/list.rb +0 -60
  234. data/lib/troo/external/board.rb +0 -31
  235. data/lib/troo/external/card.rb +0 -31
  236. data/lib/troo/external/comment.rb +0 -27
  237. data/lib/troo/external/list.rb +0 -27
  238. data/lib/troo/external/member.rb +0 -27
  239. data/lib/troo/external/resource.rb +0 -42
  240. data/lib/troo/helpers/command_helpers.rb +0 -37
  241. data/lib/troo/models/persistence/board.rb +0 -19
  242. data/lib/troo/models/persistence/card.rb +0 -19
  243. data/lib/troo/models/persistence/comment.rb +0 -19
  244. data/lib/troo/models/persistence/list.rb +0 -19
  245. data/lib/troo/models/persistence/member.rb +0 -19
  246. data/lib/troo/models/persistence/resource.rb +0 -50
  247. data/lib/troo/models/remote/comment.rb +0 -21
  248. data/lib/troo/models/remote/resource.rb +0 -25
  249. data/lib/troo/models/retrieval/board.rb +0 -29
  250. data/lib/troo/models/retrieval/card.rb +0 -33
  251. data/lib/troo/models/retrieval/comment.rb +0 -25
  252. data/lib/troo/models/retrieval/list.rb +0 -29
  253. data/lib/troo/models/retrieval/member.rb +0 -25
  254. data/lib/troo/models/retrieval/resource.rb +0 -36
  255. data/lib/troo/views/comment.erb +0 -3
  256. data/test/cassettes/card_by_card_id.yml +0 -58
  257. data/test/cassettes/comments_by_list_id.yml +0 -109
  258. data/test/cassettes/list_by_list_id.yml +0 -56
  259. data/test/cassettes/member_by_member_id.yml +0 -60
  260. data/test/cassettes/move_card.yml +0 -61
  261. data/test/lib/troo/actions/create_board_test.rb +0 -66
  262. data/test/lib/troo/actions/create_card_test.rb +0 -71
  263. data/test/lib/troo/actions/create_comment_test.rb +0 -71
  264. data/test/lib/troo/actions/create_list_test.rb +0 -65
  265. data/test/lib/troo/actions/move_card_test.rb +0 -54
  266. data/test/lib/troo/adaptors/board_test.rb +0 -38
  267. data/test/lib/troo/adaptors/card_test.rb +0 -49
  268. data/test/lib/troo/adaptors/comment_test.rb +0 -41
  269. data/test/lib/troo/adaptors/list_test.rb +0 -38
  270. data/test/lib/troo/adaptors/member_test.rb +0 -44
  271. data/test/lib/troo/commands/add/board_test.rb +0 -43
  272. data/test/lib/troo/commands/add/card_test.rb +0 -44
  273. data/test/lib/troo/commands/add/comment_test.rb +0 -44
  274. data/test/lib/troo/commands/add/list_test.rb +0 -44
  275. data/test/lib/troo/commands/add/resource_test.rb +0 -25
  276. data/test/lib/troo/commands/default/board_test.rb +0 -37
  277. data/test/lib/troo/commands/default/card_test.rb +0 -37
  278. data/test/lib/troo/commands/default/list_test.rb +0 -37
  279. data/test/lib/troo/commands/default/resource_test.rb +0 -20
  280. data/test/lib/troo/commands/refresh/all_test.rb +0 -39
  281. data/test/lib/troo/commands/refresh/board_test.rb +0 -62
  282. data/test/lib/troo/commands/refresh/card_test.rb +0 -62
  283. data/test/lib/troo/commands/refresh/list_test.rb +0 -62
  284. data/test/lib/troo/commands/refresh/resource_test.rb +0 -20
  285. data/test/lib/troo/commands/show/board_test.rb +0 -65
  286. data/test/lib/troo/commands/show/boards_test.rb +0 -36
  287. data/test/lib/troo/commands/show/card_test.rb +0 -64
  288. data/test/lib/troo/commands/show/comments_test.rb +0 -64
  289. data/test/lib/troo/commands/show/list_test.rb +0 -64
  290. data/test/lib/troo/commands/show/resource_test.rb +0 -25
  291. data/test/lib/troo/commands/status/board_test.rb +0 -43
  292. data/test/lib/troo/commands/status/card_test.rb +0 -43
  293. data/test/lib/troo/commands/status/list_test.rb +0 -43
  294. data/test/lib/troo/commands/status/resource_test.rb +0 -19
  295. data/test/lib/troo/decorators/board_test.rb +0 -129
  296. data/test/lib/troo/decorators/comment_test.rb +0 -74
  297. data/test/lib/troo/decorators/list_test.rb +0 -102
  298. data/test/lib/troo/external/board_test.rb +0 -102
  299. data/test/lib/troo/external/card_test.rb +0 -131
  300. data/test/lib/troo/external/comment_test.rb +0 -109
  301. data/test/lib/troo/external/list_test.rb +0 -94
  302. data/test/lib/troo/external/member_test.rb +0 -94
  303. data/test/lib/troo/external/resource_test.rb +0 -25
  304. data/test/lib/troo/helpers/command_helpers_test.rb +0 -82
  305. data/test/lib/troo/models/persistence/board_test.rb +0 -62
  306. data/test/lib/troo/models/persistence/card_test.rb +0 -61
  307. data/test/lib/troo/models/persistence/comment_test.rb +0 -69
  308. data/test/lib/troo/models/persistence/list_test.rb +0 -60
  309. data/test/lib/troo/models/persistence/member_test.rb +0 -60
  310. data/test/lib/troo/models/remote/comment_test.rb +0 -56
  311. data/test/lib/troo/models/remote/resource_test.rb +0 -26
  312. data/test/lib/troo/models/retrieval/board_test.rb +0 -93
  313. data/test/lib/troo/models/retrieval/card_test.rb +0 -101
  314. data/test/lib/troo/models/retrieval/comment_test.rb +0 -46
  315. data/test/lib/troo/models/retrieval/list_test.rb +0 -93
  316. data/test/lib/troo/models/retrieval/member_test.rb +0 -58
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7cf7d75305007bbed1c23aa79c3f33230d9ed81a
4
- data.tar.gz: 46d9a18e57dbba06a2352f6fc39f7dfdd7133159
3
+ metadata.gz: e562cb940c1670f9685dab12000647ecbce6b8a1
4
+ data.tar.gz: 4bb70fcdaac0084038d99e5cff7232b765bc0718
5
5
  SHA512:
6
- metadata.gz: 2a9b909ea4d6d641703b2e41ee7be9f9dacd5550e4c38e2f3c17274b7145909c889fe51bc3ccc885051c62fa78df667392a943e64720bc70526a2d7cd337dc39
7
- data.tar.gz: 5068ac55e7be3ea02fa13eb48a39b3b681d279d546d0a9643b8184df46ac05b72ebfe967b71e5d28c394a89a7ba98edf9fff6af9a2e4a050dc4462d17f78aca4
6
+ metadata.gz: 4d136fa04838de005b32223db2dfc78340741edf1df0179b71a3d441aa0c072ef7f656e45fe84e45cbdea6833c4c848452ac8838071a7106d8e520199c9c381d
7
+ data.tar.gz: 9b3e03a4587a2d70a1c4885a5f0e5c6660ea35227772541aff74902308ae73eedf28981f6232fe37a5e1124fd540dcfc7b2ec75c48e29c52cbf3752f5e4164ac
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
@@ -15,9 +14,12 @@ rerun.txt
15
14
  spec/reports
16
15
  test/tmp
17
16
  test/version_tmp
17
+ test/support/.trooconf
18
18
  tmp
19
19
 
20
20
  features/support/fixtures/cassettes/*.yml
21
21
  logs/*.log
22
22
  troo.db
23
23
  tags
24
+ test/support/fake_trello/my-server.crt
25
+ test/support/fake_trello/my-server.key
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.1.1
@@ -0,0 +1,18 @@
1
+ default:
2
+ api_url: http://www.example.com
3
+ api_key: some_key
4
+ api_token: some_secret
5
+ api_oauth_token: some_oauth_token
6
+ api_oauth_token_secret: some_oauth_token_secret
7
+ database: 1
8
+ allow_remote: true
9
+ logs: true
10
+ test:
11
+ api_url: http://www.example.com
12
+ api_key: some_key
13
+ api_token: some_secret
14
+ api_oauth_token: some_oauth_token
15
+ api_oauth_token_secret: some_oauth_token_secret
16
+ database: 2
17
+ allow_remote: true
18
+ logs: true
@@ -0,0 +1,178 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ troo (0.0.8)
5
+ addressable
6
+ dispel
7
+ json
8
+ oauth
9
+ ohm
10
+ ohm-contrib
11
+ pry
12
+ pry-nav
13
+ rest-client
14
+ term-ansicolor
15
+ thor
16
+ virtus
17
+ yajl-ruby
18
+
19
+ GEM
20
+ remote: https://rubygems.org/
21
+ specs:
22
+ addressable (2.3.5)
23
+ aruba (0.5.4)
24
+ childprocess (>= 0.3.6)
25
+ cucumber (>= 1.1.1)
26
+ rspec-expectations (>= 2.7.0)
27
+ ast (1.1.0)
28
+ axiom-types (0.0.5)
29
+ descendants_tracker (~> 0.0.1)
30
+ ice_nine (~> 0.9)
31
+ builder (3.2.2)
32
+ celluloid (0.15.2)
33
+ timers (~> 1.1.0)
34
+ celluloid-io (0.15.0)
35
+ celluloid (>= 0.15.0)
36
+ nio4r (>= 0.5.0)
37
+ childprocess (0.5.1)
38
+ ffi (~> 1.0, >= 1.0.11)
39
+ coderay (1.1.0)
40
+ coercible (1.0.0)
41
+ descendants_tracker (~> 0.0.1)
42
+ crack (0.4.2)
43
+ safe_yaml (~> 1.0.0)
44
+ cucumber (1.3.11)
45
+ builder (>= 2.1.2)
46
+ diff-lcs (>= 1.1.3)
47
+ gherkin (~> 2.12)
48
+ multi_json (>= 1.7.5, < 2.0)
49
+ multi_test (>= 0.0.2)
50
+ curses (1.0.0)
51
+ descendants_tracker (0.0.3)
52
+ diff-lcs (1.2.5)
53
+ dispel (0.0.7)
54
+ curses
55
+ docile (1.1.3)
56
+ equalizer (0.0.9)
57
+ fabrication (2.9.8)
58
+ ffi (1.9.3)
59
+ formatador (0.2.4)
60
+ gherkin (2.12.2)
61
+ multi_json (~> 1.3)
62
+ guard (2.5.1)
63
+ formatador (>= 0.2.4)
64
+ listen (~> 2.6)
65
+ lumberjack (~> 1.0)
66
+ pry (>= 0.9.12)
67
+ thor (>= 0.18.1)
68
+ guard-cucumber (1.4.1)
69
+ cucumber (>= 1.2.0)
70
+ guard (>= 1.1.0)
71
+ guard-minitest (2.2.0)
72
+ guard (~> 2.0)
73
+ minitest (>= 3.0)
74
+ ice_nine (0.11.0)
75
+ json (1.8.1)
76
+ listen (2.6.2)
77
+ celluloid (>= 0.15.2)
78
+ celluloid-io (>= 0.15.0)
79
+ rb-fsevent (>= 0.9.3)
80
+ rb-inotify (>= 0.9)
81
+ lumberjack (1.0.4)
82
+ metaclass (0.0.4)
83
+ method_source (0.8.2)
84
+ mime-types (2.1)
85
+ minitest (5.3.0)
86
+ mocha (1.0.0)
87
+ metaclass (~> 0.0.1)
88
+ multi_json (1.8.4)
89
+ multi_test (0.0.3)
90
+ nest (1.1.2)
91
+ redis
92
+ nio4r (1.0.0)
93
+ oauth (0.4.7)
94
+ ohm (1.3.2)
95
+ nest (~> 1.0)
96
+ redis
97
+ scrivener (~> 0.0.3)
98
+ ohm-contrib (1.2)
99
+ ohm (~> 1.2)
100
+ parser (2.1.5)
101
+ ast (~> 1.1)
102
+ slop (~> 3.4, >= 3.4.5)
103
+ powerpack (0.0.9)
104
+ pry (0.9.12.6)
105
+ coderay (~> 1.0)
106
+ method_source (~> 0.8)
107
+ slop (~> 3.4)
108
+ pry-nav (0.2.3)
109
+ pry (~> 0.9.10)
110
+ rack (1.5.2)
111
+ rack-protection (1.5.2)
112
+ rack
113
+ rainbow (2.0.0)
114
+ rake (10.1.1)
115
+ rb-fsevent (0.9.4)
116
+ rb-inotify (0.9.3)
117
+ ffi (>= 0.5.0)
118
+ redis (3.0.7)
119
+ rest-client (1.6.7)
120
+ mime-types (>= 1.16)
121
+ rspec-expectations (2.14.5)
122
+ diff-lcs (>= 1.1.3, < 2.0)
123
+ rubocop (0.18.1)
124
+ json (>= 1.7.7, < 2)
125
+ parser (~> 2.1.3)
126
+ powerpack (~> 0.0.6)
127
+ rainbow (>= 1.99.1, < 3.0)
128
+ ruby-prof (0.14.2)
129
+ safe_yaml (1.0.1)
130
+ scrivener (0.0.3)
131
+ simplecov (0.8.2)
132
+ docile (~> 1.1.0)
133
+ multi_json
134
+ simplecov-html (~> 0.8.0)
135
+ simplecov-html (0.8.0)
136
+ sinatra (1.4.4)
137
+ rack (~> 1.4)
138
+ rack-protection (~> 1.4)
139
+ tilt (~> 1.3, >= 1.3.4)
140
+ slop (3.4.7)
141
+ term-ansicolor (1.3.0)
142
+ tins (~> 1.0)
143
+ thor (0.18.1)
144
+ tilt (1.4.1)
145
+ timers (1.1.0)
146
+ tins (1.0.0)
147
+ vcr (2.8.0)
148
+ virtus (1.0.1)
149
+ axiom-types (~> 0.0.5)
150
+ coercible (~> 1.0)
151
+ descendants_tracker (~> 0.0.1)
152
+ equalizer (~> 0.0.7)
153
+ webmock (1.17.4)
154
+ addressable (>= 2.2.7)
155
+ crack (>= 0.3.2)
156
+ yajl-ruby (1.2.0)
157
+
158
+ PLATFORMS
159
+ ruby
160
+
161
+ DEPENDENCIES
162
+ aruba
163
+ bundler
164
+ cucumber
165
+ fabrication
166
+ guard
167
+ guard-cucumber
168
+ guard-minitest
169
+ minitest
170
+ mocha
171
+ rake
172
+ rubocop
173
+ ruby-prof
174
+ simplecov
175
+ sinatra
176
+ troo!
177
+ vcr
178
+ webmock
data/README.md CHANGED
@@ -4,32 +4,58 @@
4
4
 
5
5
  CLI interface for Trello. Named after Trello's mascot 'Roo'.
6
6
 
7
- ## Features
8
-
9
- troo refresh
10
- troo refresh --lists
11
- troo refresh --cards
12
- troo default board <board_id>
13
- troo default card <card_id>
14
- troo default list <list_id>
15
- troo add board <name>
16
- troo add card <list_id>
17
- troo add comment <card_id>
18
- troo add list <board_id>
19
- troo show boards
20
- troo show board (<board_id>)
21
- troo show list <list_id>
22
- troo show card <card_id>
23
- troo show comments <card_id>
24
- troo move <card_id> <list_id>
25
- troo cleanup
26
- troo version
7
+ ## Commands
8
+
9
+ - Add board, list, card or comment.
10
+
11
+ troo add [board|list|card|comment] <id>
12
+
13
+ - Remove all local data.
14
+
15
+ troo cleanup
16
+
17
+ - Show the current configuration.
18
+
19
+ troo config
20
+
21
+ - Set board, list or card to be default.
22
+
23
+ troo default [board|list|card] <id>
24
+
25
+ - Describe available commands or one specific command
26
+
27
+ troo help [COMMAND]
28
+
29
+ - Prepare to use Troo.
30
+
31
+ troo init
32
+
33
+ - Move card with <card_id> to list with <list_id> optionally to another board with <board_id>.
34
+
35
+ troo move <card_id> <list_id> (<board_id>)
36
+
37
+ - Refresh board, list or card with <id>.
38
+
39
+ troo refresh [board|list|card] <id>
40
+
41
+ - Show all the boards or the board, list, card with <id>. Also, show all comments for card with <id>.
42
+
43
+ troo show [boards|board|list|card|comments] <id>
44
+
45
+ - Get troo status.
46
+
47
+ troo status
48
+
49
+ - Print the version.
50
+
51
+ troo version
52
+
27
53
 
28
54
  ## Requirements
29
55
 
30
56
  - A Trello account with API key/secret.
31
57
  - MacOSX/Linux (I've not tested with Windows, sorry.)
32
- - Ruby 2.1.0 (>= 1.9.3 should be fine.)
58
+ - Ruby 2.1.1 (>= 1.9.3 should be fine, developed mainly in 2.1.0 so far.)
33
59
  - Redis.
34
60
 
35
61
  ## Installation
@@ -66,6 +92,36 @@ You will need user authentication tokens to access your Trello account.
66
92
 
67
93
  - Fix multitude of sins.
68
94
  - Write cucumber integration tests.
95
+ - Convert dates/times to Time.iso8601().
96
+
97
+ ## Testing
98
+
99
+ I've put a simple fake server together so that I'm not hitting the Trello API continuously. You can activate and use this too.
100
+
101
+ 1) Create own SSL certificate .crt and .key files:
102
+
103
+ openssl req -new -x509 -nodes -out my-server.crt -keyout my-server.key
104
+
105
+ 2) Forward all port 80 and port 443 requests to your local server.
106
+
107
+ sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
108
+ sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443
109
+
110
+ 3) Tell your machine to be `api.trello.com` by updating the `/etc/hosts` file:
111
+
112
+ 127.0.0.1 api.trello.com
113
+
114
+ 4) Run `server.rb`:
115
+
116
+ cd ./test/support/fake_trello
117
+ ruby ./server.rb
118
+
119
+ 5) Have fun.
120
+
121
+ 6) When done, kill the server, revert `/etc/hosts` and remove the forwarding.
122
+
123
+ sudo ipfw del 100
124
+ sudo ipfw del 101
69
125
 
70
126
  ## Contributing
71
127
 
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'cucumber'
4
4
  require 'cucumber/rake/task'
5
5
 
6
6
  Cucumber::Rake::Task.new(:cucumber) do |t|
7
- t.cucumber_opts = "features --format pretty"
7
+ t.cucumber_opts = "features --format progress"
8
8
  end
9
9
 
10
10
  Rake::TestTask.new do |t|
@@ -0,0 +1,10 @@
1
+ # https://blog.jcoglan.com/2013/02/12/tab-completion-for-your-command-line-apps/
2
+
3
+ _troo_complete() {
4
+ COMPREPLY=()
5
+ local word="${COMP_WORDS[COMP_CWORD]}"
6
+ local completions="$(troo autocomplete "$word")"
7
+ COMPREPLY=( $(compgen -W "$completions" -- "$word") )
8
+ }
9
+
10
+ complete -f -F _troo_complete troo
@@ -0,0 +1,10 @@
1
+ # https://blog.jcoglan.com/2013/02/12/tab-completion-for-your-command-line-apps/
2
+
3
+ _troo_complete() {
4
+ local word completions
5
+ word="$1"
6
+ completions="$(troo autocomplete "${word}")"
7
+ reply=( "${(ps:\n:)completions}" )
8
+ }
9
+
10
+ compctl -f -K _troo_complete troo
@@ -0,0 +1,15 @@
1
+ # https://blog.jcoglan.com/2013/02/12/tab-completion-for-your-command-line-apps/
2
+
3
+ # Add this to your .bash_profile (or .zsh_profile):
4
+ #
5
+ # Add autocompletion for Troo.
6
+ # which troo > /dev/null && . "$(troo path)/init.sh"
7
+
8
+ if [ -n "$BASH_VERSION" ]; then
9
+ root="$(dirname "${BASH_SOURCE[0]}")"
10
+ source "$root/completion.bash"
11
+
12
+ elif [ -n "$ZSH_VERSION" ]; then
13
+ root="$(dirname "$0")"
14
+ source "$root/completion.zsh"
15
+ fi
data/bin/troo CHANGED
@@ -1,7 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ -> { its -> { a } }
3
4
  trap('INT') { exit! }
4
5
 
5
- require_relative '../lib/troo'
6
-
7
- Troo::Launcher.new(ARGV.dup).execute!
6
+ if ARGV.include?('autocomplete')
7
+ command = ARGV.delete_if { |a| a == 'autocomplete' }
8
+ %w{add cleanup config default init move refresh
9
+ show status version}.find_all { |e| /^#{command}/ =~ e }
10
+ .map { |c| puts c }
11
+ elsif ARGV.include?('path')
12
+ puts File.expand_path File.dirname(__FILE__)
13
+ else
14
+ require_relative '../lib/troo'
15
+ Troo::Launcher.new(ARGV.dup).execute!
16
+ end
@@ -1,8 +1,8 @@
1
1
  <%
2
2
  rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
3
  rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
- std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip --tags ~@ok --tags ~@pending"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'rerun'} --strict --tags ~@wip --tags ~@ok --tags ~@pending --tags ~@failing"
5
5
  %>
6
- default: <%= std_opts %> features
7
- wip: --tags @wip:99 --wip features
6
+ default: <%= std_opts %> features --format rerun
7
+ wip: --tags @wip:99 --wip features --format pretty
8
8
  rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -0,0 +1,29 @@
1
+ en:
2
+ cli:
3
+ add:
4
+ board: 'Add a new board with <name>; prompts if <name> not provided.'
5
+ card: 'Add a new card to the list with <list_id> with <name>; prompts if <name> not provided.'
6
+ comment: 'Add a new comment to the card with <card_id> with <comment>; prompts if <comment> not provided.'
7
+ list: 'Add a new list to the board with <board_id> with <name>; prompts if <name> not provided.'
8
+ default:
9
+ board: 'Set the board <id> to default.'
10
+ card: 'Set the card <id> to default.'
11
+ list: 'Set the list <id> to default.'
12
+ main:
13
+ init: 'Prepare to use Troo.'
14
+ status: 'Get troo status.'
15
+ config: 'Show the current configuration.'
16
+ cleanup: 'Removes all local data.'
17
+ version: 'Print the version.'
18
+ move: 'Move card with <card_id> to list with <list_id> optionally to another board with <board_id>.'
19
+ refresh:
20
+ all: 'Refresh all the local data.'
21
+ board: 'Refresh the default board or board with <id>.'
22
+ card: 'Refresh the default card or card with <id>.'
23
+ list: 'Refresh the default list or list with <id>.'
24
+ show:
25
+ boards: 'Show all the boards with lists.'
26
+ board: 'Show lists and cards for board <id> (uses default board if <id> not provided).'
27
+ list: 'Show all cards for list <id> (uses default list if <id> not provided).'
28
+ card: 'Show a card <id> including last 3 comments' (uses default card if <id> not provided).'
29
+ comments: 'Show all comments for card <id> (uses default card if <id> not provided).'