troo 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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).'