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
@@ -5,7 +5,7 @@ module Troo
5
5
 
6
6
  class << self
7
7
  def all(boards, options = {})
8
- boards.map { |board| new(board.decorator, options).show }
8
+ boards.map { |board| new(board, options).show }
9
9
  nil
10
10
  end
11
11
  end
@@ -15,47 +15,45 @@ module Troo
15
15
  end
16
16
 
17
17
  def show
18
- output.render board.title
18
+ output.render Presenters::Resource.list_view(board)
19
19
 
20
20
  output.indent do
21
- if lists.empty?
22
- output.render error('No lists were found.') + "\n"
21
+ if board.lists.empty?
22
+ output.spacer do
23
+ output.render error('No lists were found.')
24
+ end
23
25
  else
24
- print_lists_with_cards
26
+ render_lists
25
27
  end
26
28
  end
27
29
  end
28
30
 
31
+ def render_lists
32
+ output.spacer
33
+
34
+ board.lists.map do |list|
35
+ Presenters::List.new(list, output: output).render_list
36
+ end
37
+
38
+ nil
39
+ end
40
+
29
41
  private
30
42
 
31
43
  attr_reader :board
32
44
 
33
45
  def output
34
- @output ||= Troo::Output.new
46
+ @output ||= options.fetch(:output)
35
47
  end
36
48
 
37
- def print_lists_with_cards
38
- output.render "\n"
39
- lists.each do |list|
40
- output.render list.title
41
-
42
- output.indent do
43
- if list.cards.empty?
44
- output.render error('No cards were found.') + "\n"
45
- else
46
- output.render "\n"
47
- list.cards.each do |card|
48
- output.render card.title
49
- end
50
- output.render "\n"
51
- end
52
- end
53
- end
54
- nil
49
+ def options
50
+ defaults.merge!(@options)
55
51
  end
56
52
 
57
- def lists
58
- board.lists
53
+ def defaults
54
+ {
55
+ output: Troo::Output.new
56
+ }
59
57
  end
60
58
  end
61
59
  end
@@ -13,7 +13,9 @@ module Troo
13
13
 
14
14
  private
15
15
 
16
- attr_reader :card
16
+ def card
17
+ Troo::Decorators::Resource.new(@card)
18
+ end
17
19
 
18
20
  def output
19
21
  @output ||= Troo::Output.new
@@ -8,18 +8,33 @@ module Troo
8
8
  end
9
9
 
10
10
  def show
11
- output.render list.board.title
12
- output.render "\n"
11
+ output.render Presenters::Resource.list_view(list.board)
12
+
13
+ output.spacer
13
14
 
14
15
  output.indent do
15
- output.render list.title
16
+ render_list
17
+ end
18
+ end
16
19
 
17
- output.indent do
18
- if cards.empty?
19
- output.render error('No cards were found.') + "\n"
20
- else
21
- print_list_with_cards
20
+ def render_list
21
+ output.render Presenters::Resource.list_view(list)
22
+
23
+ output.indent do
24
+ if list.cards.empty?
25
+ output.spacer do
26
+ output.render error('No cards were found.')
22
27
  end
28
+ else
29
+ render_cards
30
+ end
31
+ end
32
+ end
33
+
34
+ def render_cards
35
+ output.spacer do
36
+ list.cards.map do |card|
37
+ output.render Presenters::Resource.list_view(card)
23
38
  end
24
39
  end
25
40
  end
@@ -29,19 +44,17 @@ module Troo
29
44
  attr_reader :list
30
45
 
31
46
  def output
32
- @output ||= Troo::Output.new
47
+ @output ||= options.fetch(:output)
33
48
  end
34
49
 
35
- def print_list_with_cards
36
- output.render "\n"
37
- cards.each do |card|
38
- output.render card.title
39
- end
40
- nil
50
+ def options
51
+ defaults.merge!(@options)
41
52
  end
42
53
 
43
- def cards
44
- list.cards
54
+ def defaults
55
+ {
56
+ output: Troo::Output.new
57
+ }
45
58
  end
46
59
  end
47
60
  end
@@ -0,0 +1,90 @@
1
+ module Troo
2
+ module Presenters
3
+ class Resource
4
+ include DecoratorHelpers
5
+
6
+ class << self
7
+ def list_view(klass, options = {})
8
+ new(klass, options).list_view
9
+ end
10
+ end
11
+
12
+ def initialize(klass, options = {})
13
+ @klass, @options = klass, options
14
+ end
15
+
16
+ def list_view
17
+ [id, name, default].compact.join(' ') + "\n"
18
+ end
19
+
20
+ private
21
+
22
+ attr_reader :klass
23
+
24
+ def id
25
+ brackets(formatted_id)
26
+ end
27
+
28
+ def formatted_id
29
+ return highlight(resource_id) if card?
30
+ resource_id
31
+ end
32
+
33
+ def name
34
+ return formatted_name if card?
35
+ highlight(formatted_name)
36
+ end
37
+
38
+ def formatted_name
39
+ Troo::Wordwrap.this(resource_name, prune: true)
40
+ end
41
+
42
+ def default
43
+ return '*' if resource_default?
44
+ end
45
+
46
+ def resource_id
47
+ return klass.short_id if card?
48
+ klass.id
49
+ end
50
+
51
+ def resource_name
52
+ (klass.name && klass.name.chomp) || 'N/A'
53
+ end
54
+
55
+ def resource_default?
56
+ klass.default?
57
+ end
58
+
59
+ def card?
60
+ klass.type == :card
61
+ end
62
+
63
+ def highlight(value)
64
+ Troo::Formatter.highlight(value, options)
65
+ end
66
+
67
+ def options
68
+ defaults.merge!(@options)
69
+ end
70
+
71
+ def defaults
72
+ {
73
+ ansicolor: true,
74
+ colour: colour.fetch(klass.type, nil),
75
+ underline: true
76
+ }
77
+ end
78
+
79
+ def colour
80
+ {
81
+ board: Esc.blue,
82
+ card: Esc.magenta,
83
+ list: Esc.green,
84
+ comments: Esc.cyan,
85
+ member: Esc.white
86
+ }
87
+ end
88
+ end
89
+ end
90
+ end
@@ -81,7 +81,11 @@ module Troo
81
81
  end
82
82
 
83
83
  def special
84
- normal.merge!(board_criteria)
84
+ if klass.count(normal) > 1
85
+ normal.merge!(board_criteria)
86
+ else
87
+ normal
88
+ end
85
89
  end
86
90
 
87
91
  def board_criteria
data/lib/troo/troo.rb CHANGED
@@ -21,6 +21,7 @@ require 'yajl'
21
21
  require 'yaml'
22
22
 
23
23
  require_relative 'configuration'
24
+ require_relative 'database'
24
25
  require_relative 'debug'
25
26
 
26
27
  require_relative 'api/endpoints'
@@ -52,6 +53,7 @@ require_relative 'presenters/card'
52
53
  require_relative 'presenters/comment'
53
54
  require_relative 'presenters/list'
54
55
  require_relative 'presenters/member'
56
+ require_relative 'presenters/resource'
55
57
 
56
58
  require_relative 'persistence/local'
57
59
 
data/lib/troo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Troo
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
data/lib/troo.rb CHANGED
@@ -4,13 +4,13 @@ require_relative 'troo/troo'
4
4
  require_relative 'troo/version'
5
5
 
6
6
  module Troo
7
- InvalidAccessToken = Class.new(StandardError)
8
- EndpointNotFound = Class.new(StandardError)
7
+ ConfigurationNotFound = Class.new(StandardError)
8
+ InvalidAccessToken = Class.new(StandardError)
9
+ EndpointNotFound = Class.new(StandardError)
9
10
 
10
11
  def self.configuration(file = Dir.home + '/.trooconf', env = :default)
11
12
  @configuration ||= Troo::Configuration.load(file, env)
12
13
  end
13
- configuration
14
14
 
15
15
  def self.endpoints(version = :version_1)
16
16
  @endpoints ||= Troo::API::Endpoints
@@ -29,7 +29,7 @@ module Troo
29
29
 
30
30
  # RestClient.log = File.dirname(__FILE__) + '/../logs/restclient.log'
31
31
 
32
- Ohm.connect(db: Troo.configuration.database)
32
+ Database.connect(configuration)
33
33
 
34
34
  class Launcher
35
35
  def initialize(argv, stdin = STDIN,
@@ -47,6 +47,9 @@ module Troo
47
47
  $stdin, $stdout, $stderr = @stdin, @stdout, @stderr
48
48
  pad { Troo::CLI::Main.start(@argv) }
49
49
  @kernel.exit(0)
50
+ rescue Redis::CannotConnectError
51
+ pad { puts 'Cannot connect to Redis database.' }
52
+ @kernel.exit(1)
50
53
  ensure
51
54
  $stdin, $stdout, $stderr = STDIN, STDOUT, STDERR
52
55
  end
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '896'
28
+ - '3258'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,18 +33,24 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"526d8e130a14a9d846001d96\",\"name\":\"My Test Board\",\"desc\":\"A
44
- very brief description...\",\"descData\":null,\"closed\":false,\"idOrganization\":null,\"pinned\":true,\"url\":\"<Trello
45
- URL>\",\"shortUrl\":\"<Trello URL>\",\"prefs\":{\"permissionLevel\":\"private\",\"voting\":\"disabled\",\"comments\":\"members\",\"invitations\":\"members\",\"selfJoin\":false,\"cardCovers\":true,\"cardAging\":\"regular\",\"background\":\"blue\",\"backgroundColor\":\"#23719F\",\"backgroundImage\":null,\"backgroundImageScaled\":null,\"backgroundTile\":false,\"backgroundBrightness\":\"unknown\",\"canBePublic\":true,\"canBeOrg\":true,\"canBePrivate\":true,\"canInvite\":true},\"labelNames\":{\"yellow\":\"Analysis
46
- Complete\",\"red\":\"\",\"purple\":\"\",\"orange\":\"\",\"green\":\"Ready
47
- to Pull\",\"blue\":\"\"}}"
43
+ string: '{"id":"20010","name":"My Test Board","desc":"A very brief description...","descData":null,"closed":false,"idOrganization":null,"pinned":true,"url":"<Trello
44
+ URL>","shortUrl":"<Trello URL>","prefs":{"permissionLevel":"private","voting":"disabled","comments":"members","invitations":"members","selfJoin":false,"cardCovers":true,"cardAging":"regular","background":"blue","backgroundColor":"#23719F","backgroundImage":null,"backgroundImageScaled":null,"backgroundTile":false,"backgroundBrightness":"unknown","canBePublic":true,"canBeOrg":true,"canBePrivate":true,"canInvite":true},"labelNames":{"yellow":"Analysis
45
+ Complete","red":"","purple":"","orange":"","green":"Ready to Pull","blue":""},"cards":[{"id":"20020","checkItemStates":[],"closed":true,"dateLastActivity":"2013-10-27T22:10:19.584Z","desc":"","descData":null,"idBoard":"20010","idList":"20040","idMembersVoted":[],"idShort":1,"idAttachmentCover":null,"manualCoverAttachment":false,"name":"Command:
46
+ config","pos":327679,"shortLink":"1G0cGaRV","badges":{"votes":0,"viewingMemberVoted":false,"subscribed":false,"fogbugz":"","checkItems":0,"checkItemsChecked":0,"comments":0,"attachments":0,"description":false,"due":null},"due":null,"idChecklists":[],"idMembers":[],"labels":[],"shortUrl":"<Trello
47
+ URL>","subscribed":false,"url":"<Trello URL>"},{"id":"20021","checkItemStates":[],"closed":false,"dateLastActivity":"2014-02-07T19:39:15.075Z","desc":"A
48
+ description to get us started.","descData":null,"idBoard":"20010","idList":"20040","idMembersVoted":[],"idShort":27,"idAttachmentCover":null,"manualCoverAttachment":false,"name":"My
49
+ New Card","pos":606207,"shortLink":"OMnSslgP","badges":{"votes":0,"viewingMemberVoted":false,"subscribed":false,"fogbugz":"","checkItems":0,"checkItemsChecked":0,"comments":1,"attachments":0,"description":true,"due":null},"due":null,"idChecklists":[],"idMembers":[],"labels":[],"shortUrl":"<Trello
50
+ URL>","subscribed":false,"url":"<Trello URL>"}],"members":[{"id":"20050","avatarHash":"20001","initials":"GL","fullName":"Gavin
51
+ Laking","username":"gavinlaking1","confirmed":true}],"lists":[{"id":"20040","name":"My
52
+ New List","closed":true,"idBoard":"20010","pos":256,"subscribed":false},{"id":"20041","name":"My
53
+ New List","closed":true,"idBoard":"20010","pos":512,"subscribed":false}]}'
48
54
  http_version:
49
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
55
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
50
56
  recorded_with: VCR 2.8.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: https://api.trello.com/1/cards
6
6
  body:
7
7
  encoding: UTF-8
8
- string: desc=A%20description%20to%20get%20us%20started.&list_id=526d8e130a14a9d846001d97&name=My%20New%20Card
8
+ string: desc=A%20description%20to%20get%20us%20started.&list_id=20040&name=My%20New%20Card
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*; q=0.5, application/xml"
@@ -14,7 +14,7 @@ http_interactions:
14
14
  Authorization:
15
15
  - "<OAuth Credentials>"
16
16
  Content-Length:
17
- - '101'
17
+ - '82'
18
18
  User-Agent:
19
19
  - Ruby
20
20
  response:
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '862'
28
+ - '786'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,17 +33,17 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"526d8f19ddb279532e005259\",\"badges\":{\"votes\":0,\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":0,\"checkItemsChecked\":0,\"comments\":10,\"attachments\":0,\"description\":false,\"due\":null},\"checkItemStates\":[],\"closed\":false,\"dateLastActivity\":\"2014-02-13T20:12:46.612Z\",\"desc\":\"some
44
- description\",\"descData\":null,\"due\":null,\"idBoard\":\"526d8e130a14a9d846001d96\",\"idChecklists\":[],\"idList\":\"526d8e130a14a9d846001d98\",\"idMembers\":[\"5195fdb5a8c01a2318004f5d\"],\"idShort\":67,\"idAttachmentCover\":null,\"manualCoverAttachment\":false,\"labels\":[{\"color\":\"green\",\"name\":\"Ready
45
- to Pull\"}],\"name\":\"My Test Card\",\"pos\":589823,\"shortUrl\":\"<Trello
46
- URL>\",\"url\":\"<Trello URL>\"}"
43
+ string: '{"id":"20020","badges":{"votes":0,"viewingMemberVoted":false,"subscribed":false,"fogbugz":"","checkItems":0,"checkItemsChecked":0,"comments":10,"attachments":0,"description":false,"due":null},"checkItemStates":[],"closed":false,"dateLastActivity":"2014-02-13T20:12:46.612Z","desc":"some
44
+ description","descData":null,"due":null,"idBoard":"20010","idChecklists":[],"idList":"20040","idMembers":["20050"],"idShort":67,"idAttachmentCover":null,"manualCoverAttachment":false,"labels":[{"color":"green","name":"Ready
45
+ to Pull"}],"name":"My Test Card","pos":589823,"shortUrl":"<Trello URL>","url":"<Trello
46
+ URL>"}'
47
47
  http_version:
48
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
48
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
49
49
  recorded_with: VCR 2.8.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://api.trello.com/1/cards/526d8f19ddb279532e005259/actions/comments
5
+ uri: https://api.trello.com/1/cards/20020/actions/comments
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: text=Some%20much%20needed%20feedback...
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '665'
28
+ - '543'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,17 +33,17 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"51f9277b2822b8654f0023af\",\"idMemberCreator\":\"5195fdb5a8c01a2318004f5d\",\"data\":{\"board\":{\"shortLink\":\"a3RnYKnD\",\"name\":\"My
44
- Test Board\",\"id\":\"526d8e130a14a9d846001d96\"},\"card\":{\"shortLink\":\"UJBK7pil\",\"idShort\":8,\"name\":\"My
45
- Test Card\",\"id\":\"526d8f19ddb279532e005259\"},\"text\":\"My Test Comment\"},\"type\":\"commentCard\",\"date\":\"2014-02-07T18:02:24.297Z\",\"memberCreator\":{\"id\":\"5195fdb5a8c01a2318004f5d\",\"avatarHash\":\"045fd924d84699c9ba451e181bba33a3\",\"fullName\":\"Gavin
46
- Laking\",\"initials\":\"GL\",\"username\":\"gavinlaking1\"}}"
43
+ string: '{"id":"20030","idMemberCreator":"20050","data":{"board":{"shortLink":"a3RnYKnD","name":"My
44
+ Test Board","id":"20010"},"card":{"shortLink":"UJBK7pil","idShort":8,"name":"My
45
+ Test Card","id":"20020"},"text":"My Test Comment"},"type":"commentCard","date":"2014-02-07T18:02:24.297Z","memberCreator":{"id":"20050","avatarHash":"20001","fullName":"Gavin
46
+ Laking","initials":"GL","username":"gavinlaking1"}}'
47
47
  http_version:
48
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
48
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
49
49
  recorded_with: VCR 2.8.0
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '141'
28
+ - '103'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,14 +33,14 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"526d8e130a14a9d846001d97\",\"name\":\"My Test List\",\"closed\":false,\"idBoard\":\"526d8e130a14a9d846001d96\",\"pos\":32768}"
43
+ string: '{"id":"20040","name":"My Test List","closed":false,"idBoard":"20010","pos":32768}'
44
44
  http_version:
45
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
45
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
46
46
  recorded_with: VCR 2.8.0
@@ -2,10 +2,10 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: put
5
- uri: https://api.trello.com/1/cards/526d8f19ddb279532e005259/idBoard
5
+ uri: https://api.trello.com/1/cards/20020/idBoard
6
6
  body:
7
7
  encoding: UTF-8
8
- string: idList=526d8e130a14a9d846001d97&value=526d8e130a14a9d846001d96
8
+ string: idList=20040&value=20010
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*; q=0.5, application/xml"
@@ -14,7 +14,7 @@ http_interactions:
14
14
  Authorization:
15
15
  - "<OAuth Credentials>"
16
16
  Content-Length:
17
- - '62'
17
+ - '24'
18
18
  User-Agent:
19
19
  - Ruby
20
20
  response:
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '862'
28
+ - '786'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,17 +33,17 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"526d8f19ddb279532e005259\",\"badges\":{\"votes\":0,\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":0,\"checkItemsChecked\":0,\"comments\":10,\"attachments\":0,\"description\":false,\"due\":null},\"checkItemStates\":[],\"closed\":false,\"dateLastActivity\":\"2014-02-13T20:12:46.612Z\",\"desc\":\"some
44
- description\",\"descData\":null,\"due\":null,\"idBoard\":\"526d8e130a14a9d846001d96\",\"idChecklists\":[],\"idList\":\"526d8e130a14a9d846001d98\",\"idMembers\":[\"5195fdb5a8c01a2318004f5d\"],\"idShort\":67,\"idAttachmentCover\":null,\"manualCoverAttachment\":false,\"labels\":[{\"color\":\"green\",\"name\":\"Ready
45
- to Pull\"}],\"name\":\"My Test Card\",\"pos\":589823,\"shortUrl\":\"<Trello
46
- URL>\",\"url\":\"<Trello URL>\"}"
43
+ string: '{"id":"20020","badges":{"votes":0,"viewingMemberVoted":false,"subscribed":false,"fogbugz":"","checkItems":0,"checkItemsChecked":0,"comments":10,"attachments":0,"description":false,"due":null},"checkItemStates":[],"closed":false,"dateLastActivity":"2014-02-13T20:12:46.612Z","desc":"some
44
+ description","descData":null,"due":null,"idBoard":"20010","idChecklists":[],"idList":"20040","idMembers":["20050"],"idShort":67,"idAttachmentCover":null,"manualCoverAttachment":false,"labels":[{"color":"green","name":"Ready
45
+ to Pull"}],"name":"My Test Card","pos":589823,"shortUrl":"<Trello URL>","url":"<Trello
46
+ URL>"}'
47
47
  http_version:
48
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
48
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
49
49
  recorded_with: VCR 2.8.0
@@ -2,10 +2,10 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: put
5
- uri: https://api.trello.com/1/cards/526d8f19ddb279532e005259/idList
5
+ uri: https://api.trello.com/1/cards/20020/idList
6
6
  body:
7
7
  encoding: UTF-8
8
- string: value=526d8e130a14a9d846001d97
8
+ string: value=20040
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*; q=0.5, application/xml"
@@ -14,7 +14,7 @@ http_interactions:
14
14
  Authorization:
15
15
  - "<OAuth Credentials>"
16
16
  Content-Length:
17
- - '30'
17
+ - '11'
18
18
  User-Agent:
19
19
  - Ruby
20
20
  response:
@@ -25,7 +25,7 @@ http_interactions:
25
25
  Content-Type:
26
26
  - text/html;charset=utf-8
27
27
  Content-Length:
28
- - '862'
28
+ - '786'
29
29
  X-Xss-Protection:
30
30
  - 1; mode=block
31
31
  X-Content-Type-Options:
@@ -33,17 +33,17 @@ http_interactions:
33
33
  X-Frame-Options:
34
34
  - SAMEORIGIN
35
35
  Server:
36
- - WEBrick/1.3.1 (Ruby/2.1.0/2013-12-25) OpenSSL/1.0.1e
36
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24) OpenSSL/1.0.1f
37
37
  Date:
38
- - Fri, 21 Feb 2014 19:12:13 GMT
38
+ - Tue, 11 Mar 2014 21:34:41 GMT
39
39
  Connection:
40
40
  - Keep-Alive
41
41
  body:
42
42
  encoding: UTF-8
43
- string: "{\"id\":\"526d8f19ddb279532e005259\",\"badges\":{\"votes\":0,\"viewingMemberVoted\":false,\"subscribed\":false,\"fogbugz\":\"\",\"checkItems\":0,\"checkItemsChecked\":0,\"comments\":10,\"attachments\":0,\"description\":false,\"due\":null},\"checkItemStates\":[],\"closed\":false,\"dateLastActivity\":\"2014-02-13T20:12:46.612Z\",\"desc\":\"some
44
- description\",\"descData\":null,\"due\":null,\"idBoard\":\"526d8e130a14a9d846001d96\",\"idChecklists\":[],\"idList\":\"526d8e130a14a9d846001d98\",\"idMembers\":[\"5195fdb5a8c01a2318004f5d\"],\"idShort\":67,\"idAttachmentCover\":null,\"manualCoverAttachment\":false,\"labels\":[{\"color\":\"green\",\"name\":\"Ready
45
- to Pull\"}],\"name\":\"My Test Card\",\"pos\":589823,\"shortUrl\":\"<Trello
46
- URL>\",\"url\":\"<Trello URL>\"}"
43
+ string: '{"id":"20020","badges":{"votes":0,"viewingMemberVoted":false,"subscribed":false,"fogbugz":"","checkItems":0,"checkItemsChecked":0,"comments":10,"attachments":0,"description":false,"due":null},"checkItemStates":[],"closed":false,"dateLastActivity":"2014-02-13T20:12:46.612Z","desc":"some
44
+ description","descData":null,"due":null,"idBoard":"20010","idChecklists":[],"idList":"20040","idMembers":["20050"],"idShort":67,"idAttachmentCover":null,"manualCoverAttachment":false,"labels":[{"color":"green","name":"Ready
45
+ to Pull"}],"name":"My Test Card","pos":589823,"shortUrl":"<Trello URL>","url":"<Trello
46
+ URL>"}'
47
47
  http_version:
48
- recorded_at: Fri, 21 Feb 2014 19:12:13 GMT
48
+ recorded_at: Tue, 11 Mar 2014 21:34:41 GMT
49
49
  recorded_with: VCR 2.8.0
@@ -22,7 +22,7 @@ module Troo
22
22
 
23
23
  describe '#interpolate!' do
24
24
  let(:endpoint) { :board_by_id }
25
- let(:value) { { id: '526d8e130a14a9d846001d96' } }
25
+ let(:value) { { id: '20001' } }
26
26
 
27
27
  subject do
28
28
  described_class.new(endpoints)
@@ -31,7 +31,7 @@ module Troo
31
31
 
32
32
  context 'when the endpoint exists' do
33
33
  it 'returns the interpolated endpoint' do
34
- subject.must_equal('/boards/526d8e130a14a9d846001d96')
34
+ subject.must_equal('/boards/20001')
35
35
  end
36
36
  end
37
37