trello_cli 0.2.1 → 0.3.0

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: 9f6f168bd026bf25fdcd47f9f589a5837e1339d8
4
- data.tar.gz: dcff0a71503befe5a480088b17ea2835e9f9d548
3
+ metadata.gz: 67d3269ab8c44f68e1ecdadb52a096162df122d3
4
+ data.tar.gz: 0995679927099f04e253b604d145f8d414665c18
5
5
  SHA512:
6
- metadata.gz: 081b31895dd730abd67700638f2155f0b50c6c120f59bac61d99f7fa62c67eb7e7e3a21d57e4dbb5b556dd87b4fd165ce4f3dfacc0896ee2495d30f79162f1df
7
- data.tar.gz: 70fbeb8cbf808f989c9e30c56bfd5b6529772636cfec2a04636d213aa639d979780221890bfecf6c4b00c441493e580c9115529a88254961e1a3168a911aeec2
6
+ metadata.gz: a52aaeac10cf59ac1fdf54e614c83bcd3cbf0703ce545e3b699cdbc146ac74705847dd9b4701e1ab5d771c0789f31dac790d23349de5de56b6f8fe9c716dd21c
7
+ data.tar.gz: 01a9dcce612760fd26d7e3c3b83efff6cb683df5d9d394d73c81dd9430aab96a374d01303d3a7610064353b9bdbbdad13ffbd1e152e46a7adba33b1f60ae689b
@@ -1,3 +1,8 @@
1
+ ## 0.3.0:
2
+
3
+ * Add ability to assign member to card on creation
4
+ * Updated to ruby-trello 1.1.1
5
+
1
6
  ## 0.2.1:
2
7
 
3
8
  * Bug fix in listing closed boards
@@ -1,4 +1,5 @@
1
1
  require "trello_cli/cli"
2
+ require "trello_cli/errors"
2
3
  require "trello_cli/requests"
3
4
  require "trello_cli/version"
4
5
 
@@ -4,7 +4,7 @@ module TrelloCli
4
4
  class Create
5
5
 
6
6
  def initialize
7
- @options = {}
7
+ @options = { members: [] }
8
8
  end
9
9
 
10
10
  def run
@@ -42,6 +42,10 @@ module TrelloCli
42
42
  @options[:list_id] = l
43
43
  end
44
44
 
45
+ opts.on("-m", "--member [MEMBER_NAME]", "Member name to assign to card") do |m|
46
+ @options[:members] << m
47
+ end
48
+
45
49
  opts.on("-n", "--name [NAME]", "Name Of Card") do |n|
46
50
  @options[:name] = n
47
51
  end
@@ -8,6 +8,9 @@ module TrelloCli
8
8
  def create
9
9
  ensure_credential_envs_set
10
10
  TrelloCli::CLI::Card::Create.new.run
11
+ rescue TrelloCli::Errors => e
12
+ puts "error: #{e}"
13
+ exit 1
11
14
  end
12
15
 
13
16
  def list
@@ -0,0 +1,4 @@
1
+ module TrelloCli
2
+ class Errors < StandardError
3
+ end
4
+ end
@@ -1,6 +1,7 @@
1
1
  require 'trello'
2
2
 
3
3
  require 'trello_cli/requests/shared'
4
+ require 'trello_cli/requests/members'
4
5
 
5
6
  require 'trello_cli/requests/create_card'
6
7
  require 'trello_cli/requests/move_card'
@@ -9,13 +9,34 @@ module TrelloCli
9
9
  end
10
10
 
11
11
  def create(args)
12
- card = Trello::Card.new 'name' => args[:name],
13
- 'desc' => args[:description],
14
- 'idBoard' => args[:board_id],
15
- 'idList' => args[:list_id]
12
+ @board_id = args[:board_id]
13
+
14
+ args[:members].each do |member_username|
15
+ unless members.member_exists_in_board? member_username
16
+ msg = "member '#{member_username}' does not exist in board '#{@board_id}'."
17
+ raise Errors.new msg
18
+ end
19
+ end
20
+
21
+ member_ids = args[:members].map do |member_username|
22
+ m = members.find_member_by_username_in_board member_username
23
+ m.attributes[:id]
24
+ end
25
+
26
+ card = Trello::Card.new 'name' => args[:name],
27
+ 'desc' => args[:description],
28
+ 'idBoard' => @board_id,
29
+ 'idList' => args[:list_id],
30
+ 'idMembers' => member_ids.join(",")
16
31
  card.save
17
32
  end
18
33
 
34
+ private
35
+
36
+ def members
37
+ @members ||= Members.new @board_id
38
+ end
39
+
19
40
  end
20
41
  end
21
42
  end
@@ -0,0 +1,41 @@
1
+ module TrelloCli
2
+ module Requests
3
+ class Members
4
+
5
+ include Shared
6
+
7
+ def initialize(board_id)
8
+ connect_to_trello
9
+
10
+ @board_id = board_id
11
+ end
12
+
13
+ def member_exists_in_board?(member_username)
14
+ !!find_member_by_username_in_board(member_username)
15
+ end
16
+
17
+ def find_member_by_username_in_board(member_username)
18
+ members.each do |m|
19
+ return m if m.attributes[:username] == member_username
20
+ end
21
+
22
+ false
23
+ end
24
+
25
+ private
26
+
27
+ def member_id?(name)
28
+ Trello::Member.find(name)
29
+ end
30
+
31
+ def members
32
+ @members ||= board.members
33
+ end
34
+
35
+ def board
36
+ @board ||= Trello::Board.find @board_id
37
+ end
38
+
39
+ end
40
+ end
41
+ end
@@ -1,3 +1,3 @@
1
1
  module TrelloCli
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -5,20 +5,39 @@ describe TrelloCli::Requests::CreateCard do
5
5
  Trello.should_receive(:configure)
6
6
  end
7
7
 
8
+ let(:members_mock) { double "members" }
9
+ let(:trello_card_mock) { double 'trello card' }
10
+ let(:member_struct) { Struct.new(:attributes) }
11
+
12
+ before do
13
+ @args = { :name => 'name',
14
+ :description => 'desc',
15
+ :board_id => '123',
16
+ :list_id => '321',
17
+ :members => ["user1", "user2"] }
18
+ @options = { 'name' => @args[:name],
19
+ 'desc' => @args[:description],
20
+ 'idBoard' => @args[:board_id],
21
+ 'idList' => @args[:list_id],
22
+ 'idMembers' => "id1,id2" }
23
+ end
24
+
8
25
  it "should create the requested card" do
9
- args = { :name => 'name',
10
- :description => 'desc',
11
- :board_id => '123',
12
- :list_id => '321' }
13
- options = { 'name' => args[:name],
14
- 'desc' => args[:description],
15
- 'idBoard' => args[:board_id],
16
- 'idList' => args[:list_id] }
17
- trello_card_mock = double 'trello card'
26
+ TrelloCli::Requests::Members.should_receive(:new).
27
+ with("123").
28
+ and_return members_mock
29
+ @args[:members].each do |m|
30
+ members_mock.should_receive(:member_exists_in_board?).with(m).and_return true
31
+ end
32
+ members_mock.should_receive(:find_member_by_username_in_board).
33
+ with("user1").and_return member_struct.new(id: "id1")
34
+ members_mock.should_receive(:find_member_by_username_in_board).
35
+ with("user2").and_return member_struct.new(id: "id2")
36
+
18
37
  Trello::Card.should_receive(:new).
19
- with(options).
38
+ with(@options).
20
39
  and_return trello_card_mock
21
40
  trello_card_mock.should_receive(:save)
22
- subject.create args
41
+ subject.create @args
23
42
  end
24
43
  end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrelloCli::Requests::Members do
4
+ before do
5
+ Trello.should_receive(:configure)
6
+ end
7
+
8
+ let(:subject) { TrelloCli::Requests::Members.new "123" }
9
+ let(:board_mock) { double "board" }
10
+ let(:member_object) { Struct.new(:attributes) }
11
+ let(:member1) { member_object.new(username: "member1") }
12
+ let(:member2) { member_object.new(username: "member2") }
13
+ let(:members) { [member1, member2] }
14
+
15
+ before do
16
+ Trello::Board.should_receive(:find).with("123").and_return board_mock
17
+ board_mock.should_receive(:members).and_return members
18
+ end
19
+
20
+ describe "#member_exists_in_board?" do
21
+ it "should return true if the member exists" do
22
+ subject.member_exists_in_board?("member1").should == true
23
+ end
24
+ it "should return false if the member does not exists" do
25
+ subject.member_exists_in_board?("member999").should == false
26
+ end
27
+ end
28
+
29
+ describe "#find_member_by_username_in_board" do
30
+ it "should return the member object for a given username" do
31
+ subject.find_member_by_username_in_board("member1").should == member1
32
+ end
33
+ end
34
+
35
+ end
@@ -18,8 +18,9 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_development_dependency "rspec"
22
- gem.add_development_dependency "rake"
21
+ gem.add_development_dependency "rspec", "~> 2.14"
22
+ gem.add_development_dependency "rake", "~> 10.1"
23
23
 
24
- gem.add_runtime_dependency 'ruby-trello', '0.5.1'
24
+ gem.add_runtime_dependency 'json', '1.8.0' # Added to resolve version conflict
25
+ gem.add_runtime_dependency 'ruby-trello', '1.1.1'
25
26
  end
metadata CHANGED
@@ -1,57 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trello_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Weaver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-21 00:00:00.000000000 Z
11
+ date: 2014-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '2.14'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '2.14'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.8.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.8.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: ruby-trello
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - '='
46
60
  - !ruby/object:Gem::Version
47
- version: 0.5.1
61
+ version: 1.1.1
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - '='
53
67
  - !ruby/object:Gem::Version
54
- version: 0.5.1
68
+ version: 1.1.1
55
69
  description: Simple Trello Command Line Interface
56
70
  email:
57
71
  - brett@weav.net
@@ -82,11 +96,13 @@ files:
82
96
  - lib/trello_cli/cli/list.rb
83
97
  - lib/trello_cli/cli/list/list.rb
84
98
  - lib/trello_cli/cli/run.rb
99
+ - lib/trello_cli/errors.rb
85
100
  - lib/trello_cli/requests.rb
86
101
  - lib/trello_cli/requests/create_card.rb
87
102
  - lib/trello_cli/requests/list_boards.rb
88
103
  - lib/trello_cli/requests/list_cards.rb
89
104
  - lib/trello_cli/requests/list_lists.rb
105
+ - lib/trello_cli/requests/members.rb
90
106
  - lib/trello_cli/requests/move_card.rb
91
107
  - lib/trello_cli/requests/shared.rb
92
108
  - lib/trello_cli/version.rb
@@ -97,6 +113,7 @@ files:
97
113
  - spec/requests/list_boards_spec.rb
98
114
  - spec/requests/list_card_spec.rb
99
115
  - spec/requests/list_lists_spec.rb
116
+ - spec/requests/members_spec.rb
100
117
  - spec/requests/move_card_spec.rb
101
118
  - spec/requests/shared_spec.rb
102
119
  - spec/spec_helper.rb
@@ -132,6 +149,7 @@ test_files:
132
149
  - spec/requests/list_boards_spec.rb
133
150
  - spec/requests/list_card_spec.rb
134
151
  - spec/requests/list_lists_spec.rb
152
+ - spec/requests/members_spec.rb
135
153
  - spec/requests/move_card_spec.rb
136
154
  - spec/requests/shared_spec.rb
137
155
  - spec/spec_helper.rb