troo 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed2c82d721d51141713465e09bf5650ec5f3df0f
4
- data.tar.gz: 3b8887b0a6ad8a980cd4693e8107d31c026c7486
3
+ metadata.gz: 4196fd2c2819ea9e6444d5095a58d98de11f2b97
4
+ data.tar.gz: 27e689c2d9d704d975e22fcb8706e15301ec4788
5
5
  SHA512:
6
- metadata.gz: a3cf035b86140d83819485280299e56efbe6d2de9406a88d3b4b179730e6ad05c4ab970eee37b7ce49bb70bfd1dab0f1756dcf8c043c7aa95f3133c1de48a3c4
7
- data.tar.gz: c21f92f094a490059d4292fc736a4bf744916921528d052d4022f8ffc7f030508cea31b875042c4bccbfc703cd6e05c86e03ccdd1dc9425cc13347e5fc3f5c85
6
+ metadata.gz: 1b753a287582cb83a7ef43e8f2ca55adfbb69025eee8c756acb55a5c2df42b3dc1b25fe976d96faa50be0b184efdda23e5582cd7bea6fc75124e72eb33753a0a
7
+ data.tar.gz: 99a457435748022541e62d94a4cfc6c9ba1d4ccc934946313318fd646f7eb40efbe9e94131631b49ce384523aa22e82791d294a3cc6b7d9793ed8686ffcfd320
@@ -1,4 +1,10 @@
1
1
  module Troo
2
+ class NullEntity
3
+ def default?
4
+ true
5
+ end
6
+ end
7
+
2
8
  class SetDefault
3
9
  class << self
4
10
  def for(entity)
@@ -31,5 +37,10 @@ module Troo
31
37
  def already_default?
32
38
  entity.default?
33
39
  end
40
+
41
+ def entity
42
+ return NullEntity.new if @entity.nil?
43
+ @entity
44
+ end
34
45
  end
35
46
  end
@@ -3,35 +3,44 @@ module Troo
3
3
  class Default < ThorFixes
4
4
  package_name "default"
5
5
 
6
- desc "board <board_id>", "Set the board <board_id> to default."
7
- def board(board_id)
8
- if board = Troo::BoardRetrieval.retrieve(board_id)
9
- SetDefault.for(board)
10
- say "Board '#{board.name}' set to default."
11
- else
12
- say "Board cannot be found."
13
- end
6
+ desc "board <id>", "Set the board <id> to default."
7
+ def board(id)
8
+ set_default(id, :board)
14
9
  end
15
10
 
16
- desc "card <card_id>", "Set the card <card_id> to default."
17
- def card(card_id)
18
- if card = Troo::CardRetrieval.retrieve(card_id)
19
- SetDefault.for(card)
20
- say "Card '#{card.name}' set to default."
21
- else
22
- say "Card cannot be found."
23
- end
11
+ desc "card <id>", "Set the card <id> to default."
12
+ def card(id)
13
+ set_default(id, :card)
14
+ end
15
+
16
+ desc "list <id>", "Set the list <id> to default."
17
+ def list(id)
18
+ set_default(id, :list)
24
19
  end
25
20
 
26
- desc "list <list_id>", "Set the list <list_id> to default."
27
- def list(list_id)
28
- if list = Troo::ListRetrieval.retrieve(list_id)
29
- SetDefault.for(list)
30
- say "List '#{list.name}' set to default."
31
- else
32
- say "List cannot be found."
21
+ private
22
+
23
+ def set_default(id, type)
24
+ @id, @type = id, type
25
+ return success(resource.name) if SetDefault.for(resource)
26
+ not_found
27
+ end
28
+
29
+ def resource
30
+ @resource ||= case @type
31
+ when :board then Troo::BoardRetrieval.retrieve(@id)
32
+ when :list then Troo::ListRetrieval.retrieve(@id)
33
+ when :card then Troo::CardRetrieval.retrieve(@id)
33
34
  end
34
35
  end
36
+
37
+ def success(resource_name = "")
38
+ say "'#{resource_name}' set as default #{@type.to_s.downcase}."
39
+ end
40
+
41
+ def not_found
42
+ say "#{@type.to_s.capitalize} cannot be found."
43
+ end
35
44
  end
36
45
  end
37
46
  end
@@ -1,6 +1,6 @@
1
1
  module Troo
2
2
  module External
3
- class Board
3
+ class Board < Resource
4
4
  class << self
5
5
  def fetch(external_id, options = {})
6
6
  new(external_id, options).fetch_by_external_id.map do |resource|
@@ -13,12 +13,6 @@ module Troo
13
13
  Troo::BoardPersistence.for(resource) unless closed?(resource)
14
14
  end
15
15
  end
16
-
17
- private
18
-
19
- def closed?(resource)
20
- resource.nil? || resource.closed?
21
- end
22
16
  end
23
17
 
24
18
  def initialize(external_id = nil, options = {})
@@ -1,6 +1,6 @@
1
1
  module Troo
2
2
  module External
3
- class Card
3
+ class Card < Resource
4
4
  class << self
5
5
  def fetch(external_id, options = {})
6
6
  new(external_id, options).fetch_by_external_id.map do |resource|
@@ -10,12 +10,6 @@ module Troo
10
10
  end
11
11
  end
12
12
  end
13
-
14
- private
15
-
16
- def closed?(resource)
17
- resource.nil? || resource.closed?
18
- end
19
13
  end
20
14
 
21
15
  def initialize(external_id, options = {})
@@ -23,14 +17,6 @@ module Troo
23
17
  @options = options
24
18
  end
25
19
 
26
- def fetch_by_external_id
27
- case options.fetch(:mode)
28
- when :board then board_mode
29
- when :list then list_mode
30
- when :card then card_mode
31
- end
32
- end
33
-
34
20
  private
35
21
  attr_reader :external_id
36
22
 
@@ -42,27 +28,19 @@ module Troo
42
28
  { comments: true, mode: :board }
43
29
  end
44
30
 
45
- def board_mode
31
+ def by_board_id
46
32
  Trello::Board.find(external_id).cards
47
- rescue Trello::InvalidAccessToken
48
- raise Troo::InvalidAccessToken
49
- rescue Trello::Error
50
- []
51
33
  end
52
34
 
53
- def list_mode
35
+ def by_list_id
54
36
  Trello::List.find(external_id).cards
55
- rescue Trello::InvalidAccessToken
56
- raise Troo::InvalidAccessToken
57
- rescue Trello::Error
58
- []
59
37
  end
60
38
 
61
- def card_mode
39
+ def by_card_id
62
40
  [Trello::Card.find(external_id)]
63
- rescue Trello::InvalidAccessToken
64
- raise Troo::InvalidAccessToken
65
- rescue Trello::Error
41
+ end
42
+
43
+ def by_member_id
66
44
  []
67
45
  end
68
46
  end
@@ -1,6 +1,6 @@
1
1
  module Troo
2
2
  module External
3
- class Comment
3
+ class Comment < Resource
4
4
  class << self
5
5
  def fetch(external_id, options = {})
6
6
  new(external_id, options).fetch_by_external_id.map do |resource|
@@ -14,14 +14,6 @@ module Troo
14
14
  @options = options
15
15
  end
16
16
 
17
- def fetch_by_external_id
18
- case options.fetch(:mode)
19
- when :board then board_mode
20
- when :list then list_mode
21
- when :card then card_mode
22
- end
23
- end
24
-
25
17
  private
26
18
  attr_reader :external_id
27
19
 
@@ -33,30 +25,19 @@ module Troo
33
25
  { mode: :board }
34
26
  end
35
27
 
36
- def board_mode
37
- Trello::Board.find(external_id).actions({ filter: "commentCard" }).
38
- delete_if { |a| a.nil? || a.type != "commentCard" }
39
- rescue Trello::InvalidAccessToken
40
- raise Troo::InvalidAccessToken
41
- rescue Trello::Error
42
- []
28
+ def by_board_id
29
+ Trello::Board.find(external_id).actions({ filter: "commentCard" })
43
30
  end
44
31
 
45
- def list_mode
46
- Trello::List.find(external_id).actions({ filter: "commentCard" }).
47
- delete_if { |a| a.nil? || a.type != "commentCard" }
48
- rescue Trello::InvalidAccessToken
49
- raise Troo::InvalidAccessToken
50
- rescue Trello::Error
51
- []
32
+ def by_list_id
33
+ Trello::List.find(external_id).actions({ filter: "commentCard" })
34
+ end
35
+
36
+ def by_card_id
37
+ Trello::Card.find(external_id).actions({ filter: "commentCard" })
52
38
  end
53
39
 
54
- def card_mode
55
- Trello::Card.find(external_id).actions({ filter: "commentCard" }).
56
- delete_if { |a| a.nil? || a.type != "commentCard" }
57
- rescue Trello::InvalidAccessToken
58
- raise Troo::InvalidAccessToken
59
- rescue Trello::Error
40
+ def by_member_id
60
41
  []
61
42
  end
62
43
  end
@@ -1,18 +1,12 @@
1
1
  module Troo
2
2
  module External
3
- class List
3
+ class List < Resource
4
4
  class << self
5
5
  def fetch(external_id, options = {})
6
6
  new(external_id, options).fetch_by_external_id.map do |resource|
7
7
  Troo::ListPersistence.for(resource) unless closed?(resource)
8
8
  end
9
9
  end
10
-
11
- private
12
-
13
- def closed?(resource)
14
- resource.nil? || resource.closed?
15
- end
16
10
  end
17
11
 
18
12
  def initialize(external_id, options = {})
@@ -20,13 +14,6 @@ module Troo
20
14
  @options = options
21
15
  end
22
16
 
23
- def fetch_by_external_id
24
- case options.fetch(:mode)
25
- when :board then board_mode
26
- when :list then list_mode
27
- end
28
- end
29
-
30
17
  private
31
18
  attr_reader :external_id
32
19
 
@@ -38,19 +25,19 @@ module Troo
38
25
  { mode: :board }
39
26
  end
40
27
 
41
- def board_mode
28
+ def by_board_id
42
29
  Trello::Board.find(external_id).lists
43
- rescue Trello::InvalidAccessToken
44
- raise Troo::InvalidAccessToken
45
- rescue Trello::Error
46
- []
47
30
  end
48
31
 
49
- def list_mode
32
+ def by_list_id
50
33
  [Trello::List.find(external_id)]
51
- rescue Trello::InvalidAccessToken
52
- raise Troo::InvalidAccessToken
53
- rescue Trello::Error
34
+ end
35
+
36
+ def by_card_id
37
+ []
38
+ end
39
+
40
+ def by_member_id
54
41
  []
55
42
  end
56
43
  end
@@ -1,6 +1,6 @@
1
1
  module Troo
2
2
  module External
3
- class Member
3
+ class Member < Resource
4
4
  class << self
5
5
  def fetch(external_id, options = {})
6
6
  new(external_id, options).fetch_by_external_id.map do |resource|
@@ -14,13 +14,6 @@ module Troo
14
14
  @options = options
15
15
  end
16
16
 
17
- def fetch_by_external_id
18
- case options.fetch(:mode)
19
- when :board then board_mode
20
- when :member then member_mode
21
- end
22
- end
23
-
24
17
  private
25
18
  attr_reader :external_id
26
19
 
@@ -32,21 +25,21 @@ module Troo
32
25
  { mode: :board }
33
26
  end
34
27
 
35
- def board_mode
28
+ def by_board_id
36
29
  Trello::Board.find(external_id).members
37
- rescue Trello::InvalidAccessToken
38
- raise Troo::InvalidAccessToken
39
- rescue Trello::Error
30
+ end
31
+
32
+ def by_list_id
40
33
  []
41
34
  end
42
35
 
43
- def member_mode
44
- [Trello::Member.find(external_id)]
45
- rescue Trello::InvalidAccessToken
46
- raise Troo::InvalidAccessToken
47
- rescue Trello::Error
36
+ def by_card_id
48
37
  []
49
38
  end
39
+
40
+ def by_member_id
41
+ [Trello::Member.find(external_id)]
42
+ end
50
43
  end
51
44
  end
52
45
  end
@@ -0,0 +1,27 @@
1
+ module Troo
2
+ module External
3
+ class Resource
4
+ class << self
5
+ private
6
+
7
+ def closed?(resource)
8
+ resource.nil? || resource.closed?
9
+ end
10
+ end
11
+
12
+ def fetch_by_external_id
13
+ case options.fetch(:mode)
14
+ when :board then by_board_id
15
+ when :list then by_list_id
16
+ when :card then by_card_id
17
+ when :member then by_member_id
18
+ end
19
+ rescue Trello::InvalidAccessToken
20
+ raise Troo::InvalidAccessToken
21
+ rescue Trello::Error
22
+ []
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -1,22 +1,12 @@
1
1
  module Troo
2
2
  class BoardPersistence
3
- class << self
4
- def for(resource, options = {})
5
- new(resource, options).persist
6
- end
7
- end
3
+ include Persistence
8
4
 
9
5
  def initialize(resource, options = {})
10
6
  @resource = resource
11
7
  @options = options
12
8
  end
13
9
 
14
- def persist
15
- return local if local_identical?
16
- return updated if local_exists?
17
- return created
18
- end
19
-
20
10
  private
21
11
  attr_reader :resource, :options
22
12
 
@@ -24,24 +14,6 @@ module Troo
24
14
  Troo::Board.create(remote)
25
15
  end
26
16
 
27
- def updated
28
- local.update(remote) && local
29
- end
30
-
31
- def local_identical?
32
- return false unless local_exists?
33
- return false if local_data != remote
34
- true
35
- end
36
-
37
- def local_data
38
- local.external_attributes
39
- end
40
-
41
- def local_exists?
42
- !!local
43
- end
44
-
45
17
  def local
46
18
  @local ||= Troo::Board.first(external_board_id: resource.id)
47
19
  end
@@ -1,22 +1,12 @@
1
1
  module Troo
2
2
  class CardPersistence
3
- class << self
4
- def for(resource, options = {})
5
- new(resource, options).persist
6
- end
7
- end
3
+ include Persistence
8
4
 
9
5
  def initialize(resource, options = {})
10
6
  @resource = resource
11
7
  @options = options
12
8
  end
13
9
 
14
- def persist
15
- return local if local_identical?
16
- return updated if local_exists?
17
- return created
18
- end
19
-
20
10
  private
21
11
  attr_reader :resource, :options
22
12
 
@@ -24,24 +14,6 @@ module Troo
24
14
  Troo::Card.create(remote)
25
15
  end
26
16
 
27
- def updated
28
- local.update(remote) && local
29
- end
30
-
31
- def local_identical?
32
- return false unless local_exists?
33
- return false if local_data != remote
34
- true
35
- end
36
-
37
- def local_data
38
- local.external_attributes
39
- end
40
-
41
- def local_exists?
42
- !!local
43
- end
44
-
45
17
  def local
46
18
  @local ||= Troo::Card.first(external_card_id: resource.id)
47
19
  end
@@ -1,22 +1,12 @@
1
1
  module Troo
2
2
  class CommentPersistence
3
- class << self
4
- def for(resource, options = {})
5
- new(resource, options).persist
6
- end
7
- end
3
+ include Persistence
8
4
 
9
5
  def initialize(resource, options = {})
10
6
  @resource = resource
11
7
  @options = options
12
8
  end
13
9
 
14
- def persist
15
- return local if local_identical?
16
- return updated if local_exists?
17
- return created
18
- end
19
-
20
10
  private
21
11
  attr_reader :resource, :options
22
12
 
@@ -24,24 +14,6 @@ module Troo
24
14
  Troo::Comment.create(remote)
25
15
  end
26
16
 
27
- def updated
28
- local.update(remote) && local
29
- end
30
-
31
- def local_identical?
32
- return false unless local_exists?
33
- return false if local_data != remote
34
- true
35
- end
36
-
37
- def local_data
38
- local.external_attributes
39
- end
40
-
41
- def local_exists?
42
- !!local
43
- end
44
-
45
17
  def local
46
18
  @local ||= Troo::Comment.first(external_comment_id: resource.id)
47
19
  end
@@ -1,22 +1,12 @@
1
1
  module Troo
2
2
  class ListPersistence
3
- class << self
4
- def for(resource, options = {})
5
- new(resource, options).persist
6
- end
7
- end
3
+ include Persistence
8
4
 
9
5
  def initialize(resource, options = {})
10
6
  @resource = resource
11
7
  @options = options
12
8
  end
13
9
 
14
- def persist
15
- return local if local_identical?
16
- return updated if local_exists?
17
- return created
18
- end
19
-
20
10
  private
21
11
  attr_reader :resource, :options
22
12
 
@@ -24,24 +14,6 @@ module Troo
24
14
  Troo::List.create(remote)
25
15
  end
26
16
 
27
- def updated
28
- local.update(remote) && local
29
- end
30
-
31
- def local_identical?
32
- return false unless local_exists?
33
- return false if local_data != remote
34
- true
35
- end
36
-
37
- def local_data
38
- local.external_attributes
39
- end
40
-
41
- def local_exists?
42
- !!local
43
- end
44
-
45
17
  def local
46
18
  @local ||= Troo::List.first(external_list_id: resource.id)
47
19
  end
@@ -1,22 +1,12 @@
1
1
  module Troo
2
2
  class MemberPersistence
3
- class << self
4
- def for(resource, options = {})
5
- new(resource, options).persist
6
- end
7
- end
3
+ include Persistence
8
4
 
9
5
  def initialize(resource, options = {})
10
6
  @resource = resource
11
7
  @options = options
12
8
  end
13
9
 
14
- def persist
15
- return local if local_identical?
16
- return updated if local_exists?
17
- return created
18
- end
19
-
20
10
  private
21
11
  attr_reader :resource, :options
22
12
 
@@ -24,24 +14,6 @@ module Troo
24
14
  Troo::Member.create(remote)
25
15
  end
26
16
 
27
- def updated
28
- local.update(remote) && local
29
- end
30
-
31
- def local_identical?
32
- return false unless local_exists?
33
- return false if local_data != remote
34
- true
35
- end
36
-
37
- def local_data
38
- local.external_attributes
39
- end
40
-
41
- def local_exists?
42
- !!local
43
- end
44
-
45
17
  def local
46
18
  @local ||= Troo::Member.first(external_member_id: resource.id)
47
19
  end
@@ -0,0 +1,39 @@
1
+ module Troo
2
+ module Persistence
3
+ module ClassMethods
4
+ def for(resource, options = {})
5
+ new(resource, options).persist
6
+ end
7
+ end
8
+
9
+ def self.included(base)
10
+ base.extend(ClassMethods)
11
+ end
12
+
13
+ def persist
14
+ return local if local_identical?
15
+ return updated if local_exists?
16
+ return created
17
+ end
18
+
19
+ private
20
+
21
+ def updated
22
+ local.update(remote) && local
23
+ end
24
+
25
+ def local_identical?
26
+ return false unless local_exists?
27
+ return false if local_data != remote
28
+ true
29
+ end
30
+
31
+ def local_data
32
+ local.external_attributes
33
+ end
34
+
35
+ def local_exists?
36
+ !!local
37
+ end
38
+ end
39
+ end
data/lib/troo/troo.rb CHANGED
@@ -19,6 +19,7 @@ require_relative "actions/move_card"
19
19
  require_relative "actions/refresh_all"
20
20
  require_relative "actions/set_default"
21
21
 
22
+ require_relative "external/resource"
22
23
  require_relative "external/board"
23
24
  require_relative "external/card"
24
25
  require_relative "external/comment"
@@ -46,6 +47,7 @@ require_relative "display/member_presenter"
46
47
  require_relative "presentation/template"
47
48
 
48
49
  require_relative "models/model_helpers"
50
+ require_relative "models/persistence"
49
51
  require_relative "models/board"
50
52
  require_relative "models/board_retrieval"
51
53
  require_relative "models/board_persistence"
data/lib/troo/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Troo
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
4
4
 
@@ -5,26 +5,13 @@ module Troo
5
5
  module CLI
6
6
  describe Default do
7
7
  let(:described_class) { Default }
8
- let(:board_id) { "526d8e130a14a9d846001d96" }
9
- let(:card_id) { "526d8f19ddb279532e005259" }
10
- let(:list_id) { "526d8e130a14a9d846001d97" }
11
-
12
- before do
13
- @board = Fabricate.build(:board)
14
- @list = Fabricate.build(:list)
15
- @card = Fabricate.build(:card)
16
-
17
- Troo::BoardRetrieval.stubs(:retrieve).returns(@board)
18
- Troo::CardRetrieval.stubs(:retrieve).returns(@card)
19
- Troo::ListRetrieval.stubs(:retrieve).returns(@list)
20
- end
21
-
22
- after { database_cleanup }
23
8
 
24
9
  describe "#board" do
25
- subject { capture_io { described_class.new.board(board_id) }.join }
10
+ let(:id) { "526d8e130a14a9d846001d96" }
11
+
12
+ subject { capture_io { described_class.new.board(id) }.join }
26
13
 
27
- context "when the board_id cannot be found" do
14
+ context "when the id cannot be found" do
28
15
  before { Troo::BoardRetrieval.stubs(:retrieve).returns(nil) }
29
16
 
30
17
  it "returns a polite message" do
@@ -32,17 +19,29 @@ module Troo
32
19
  end
33
20
  end
34
21
 
35
- context "when the board_id was found" do
22
+ context "when the id was found" do
23
+ before do
24
+ @board = Fabricate.build(:board)
25
+ Troo::BoardRetrieval.stubs(:retrieve).returns(@board)
26
+ end
27
+
36
28
  it "returns a polite message" do
37
- subject.must_match /Board '#{@board.name}' set to default/
29
+ subject.must_match /'#{@board.name}' set as default/
38
30
  end
39
31
  end
40
32
  end
41
33
 
42
34
  describe "#card" do
43
- subject { capture_io { described_class.new.card(card_id) }.join }
35
+ let(:id) { "526d8f19ddb279532e005259" }
44
36
 
45
- context "when the card_id cannot be found" do
37
+ before do
38
+ @card = Fabricate.build(:card)
39
+ Troo::CardRetrieval.stubs(:retrieve).returns(@card)
40
+ end
41
+
42
+ subject { capture_io { described_class.new.card(id) }.join }
43
+
44
+ context "when the id cannot be found" do
46
45
  before { Troo::CardRetrieval.stubs(:retrieve).returns(nil) }
47
46
 
48
47
  it "returns a polite message" do
@@ -50,17 +49,19 @@ module Troo
50
49
  end
51
50
  end
52
51
 
53
- context "when the card_id was found" do
52
+ context "when the id was found" do
54
53
  it "returns a polite message" do
55
- subject.must_match /Card '#{@card.name}' set to default/
54
+ subject.must_match /'#{@card.name}' set as default/
56
55
  end
57
56
  end
58
57
  end
59
58
 
60
59
  describe "#list" do
61
- subject { capture_io { described_class.new.list(list_id) }.join }
60
+ let(:id) { "526d8e130a14a9d846001d97" }
61
+
62
+ subject { capture_io { described_class.new.list(id) }.join }
62
63
 
63
- context "when the list_id cannot be found" do
64
+ context "when the id cannot be found" do
64
65
  before { Troo::ListRetrieval.stubs(:retrieve).returns(nil) }
65
66
 
66
67
  it "returns a polite message" do
@@ -68,9 +69,14 @@ module Troo
68
69
  end
69
70
  end
70
71
 
71
- context "when the list_id was found" do
72
+ context "when the id was found" do
73
+ before do
74
+ @list = Fabricate.build(:list)
75
+ Troo::ListRetrieval.stubs(:retrieve).returns(@list)
76
+ end
77
+
72
78
  it "returns a polite message" do
73
- subject.must_match /List '#{@list.name}' set to default/
79
+ subject.must_match /'#{@list.name}' set as default/
74
80
  end
75
81
  end
76
82
  end
@@ -103,6 +103,17 @@ module Troo
103
103
  subject.size.must_equal(1)
104
104
  end
105
105
  end
106
+
107
+ describe "when the mode is member" do
108
+ let(:member_id) { "5195fdb5a8c01a2318004f5d" }
109
+ let(:options) { { mode: :member, comments: false } }
110
+
111
+ subject { described_class.fetch(member_id, options) }
112
+
113
+ it "returns an empty collection" do
114
+ subject.must_equal([])
115
+ end
116
+ end
106
117
  end
107
118
  end
108
119
  end
@@ -83,6 +83,17 @@ module Troo
83
83
  end
84
84
  end
85
85
  end
86
+
87
+ describe "when the mode is member" do
88
+ let(:member_id) { "5195fdb5a8c01a2318004f5d" }
89
+ let(:options) { { mode: :member } }
90
+
91
+ subject { described_class.fetch(member_id, options) }
92
+
93
+ it "returns an empty collection" do
94
+ subject.must_equal([])
95
+ end
96
+ end
86
97
  end
87
98
  end
88
99
  end
@@ -60,6 +60,28 @@ module Troo
60
60
  end
61
61
  end
62
62
  end
63
+
64
+ describe "when the mode is card" do
65
+ let(:card_id) { "526d8f19ddb279532e005259" }
66
+ let(:options) { { mode: :card } }
67
+
68
+ subject { described_class.fetch(card_id, options) }
69
+
70
+ it "returns an empty collection" do
71
+ subject.must_equal([])
72
+ end
73
+ end
74
+
75
+ describe "when the mode is member" do
76
+ let(:member_id) { "5195fdb5a8c01a2318004f5d" }
77
+ let(:options) { { mode: :member } }
78
+
79
+ subject { described_class.fetch(member_id, options) }
80
+
81
+ it "returns an empty collection" do
82
+ subject.must_equal([])
83
+ end
84
+ end
63
85
  end
64
86
  end
65
87
  end
@@ -39,6 +39,28 @@ module Troo
39
39
  end
40
40
  end
41
41
 
42
+ describe "when the mode is list" do
43
+ let(:list_id) { "526d8e130a14a9d846001d97" }
44
+ let(:options) { { mode: :list } }
45
+
46
+ subject { described_class.fetch(list_id, options) }
47
+
48
+ it "returns an empty collection" do
49
+ subject.must_equal([])
50
+ end
51
+ end
52
+
53
+ describe "when the mode is card" do
54
+ let(:card_id) { "526d8f19ddb279532e005259" }
55
+ let(:options) { { mode: :card } }
56
+
57
+ subject { described_class.fetch(card_id, options) }
58
+
59
+ it "returns an empty collection" do
60
+ subject.must_equal([])
61
+ end
62
+ end
63
+
42
64
  describe "when the mode is member" do
43
65
  before { VCR.insert_cassette(:member_by_member_id, decode_compressed_response: true) }
44
66
  after { VCR.eject_cassette }
@@ -0,0 +1,8 @@
1
+ require_relative "../../../test_helper"
2
+
3
+ module Troo
4
+ module External
5
+ describe Resource do
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ require_relative "../../../test_helper"
2
+
3
+ module Troo
4
+ describe Persistence do
5
+ end
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: troo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Laking
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-17 00:00:00.000000000 Z
11
+ date: 2014-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba
@@ -345,6 +345,7 @@ files:
345
345
  - lib/troo/external/list_adaptor.rb
346
346
  - lib/troo/external/member.rb
347
347
  - lib/troo/external/member_adaptor.rb
348
+ - lib/troo/external/resource.rb
348
349
  - lib/troo/models/board.rb
349
350
  - lib/troo/models/board_persistence.rb
350
351
  - lib/troo/models/board_retrieval.rb
@@ -361,6 +362,7 @@ files:
361
362
  - lib/troo/models/member_persistence.rb
362
363
  - lib/troo/models/member_retrieval.rb
363
364
  - lib/troo/models/model_helpers.rb
365
+ - lib/troo/models/persistence.rb
364
366
  - lib/troo/models/refresh.rb
365
367
  - lib/troo/presentation/template.rb
366
368
  - lib/troo/troo.rb
@@ -418,6 +420,7 @@ files:
418
420
  - test/lib/troo/external/list_test.rb
419
421
  - test/lib/troo/external/member_adaptor_test.rb
420
422
  - test/lib/troo/external/member_test.rb
423
+ - test/lib/troo/external/resource_test.rb
421
424
  - test/lib/troo/models/board_persistence_test.rb
422
425
  - test/lib/troo/models/board_retrieval_test.rb
423
426
  - test/lib/troo/models/board_test.rb
@@ -434,6 +437,7 @@ files:
434
437
  - test/lib/troo/models/member_retrieval_test.rb
435
438
  - test/lib/troo/models/member_test.rb
436
439
  - test/lib/troo/models/model_helpers_test.rb
440
+ - test/lib/troo/models/persistence_test.rb
437
441
  - test/lib/troo/models/refresh_test.rb
438
442
  - test/lib/troo/presentation/template_test.rb
439
443
  - test/support/fabrication.rb
@@ -534,6 +538,7 @@ test_files:
534
538
  - test/lib/troo/external/list_test.rb
535
539
  - test/lib/troo/external/member_adaptor_test.rb
536
540
  - test/lib/troo/external/member_test.rb
541
+ - test/lib/troo/external/resource_test.rb
537
542
  - test/lib/troo/models/board_persistence_test.rb
538
543
  - test/lib/troo/models/board_retrieval_test.rb
539
544
  - test/lib/troo/models/board_test.rb
@@ -550,6 +555,7 @@ test_files:
550
555
  - test/lib/troo/models/member_retrieval_test.rb
551
556
  - test/lib/troo/models/member_test.rb
552
557
  - test/lib/troo/models/model_helpers_test.rb
558
+ - test/lib/troo/models/persistence_test.rb
553
559
  - test/lib/troo/models/refresh_test.rb
554
560
  - test/lib/troo/presentation/template_test.rb
555
561
  - test/support/fabrication.rb