troo 0.0.3 → 0.0.4

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.
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