trello_cli 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +24 -4
- data/lib/trello_cli/cli/board/list.rb +9 -5
- data/lib/trello_cli/cli/card/create.rb +10 -7
- data/lib/trello_cli/cli/card/list.rb +6 -6
- data/lib/trello_cli/cli/card/move.rb +9 -2
- data/lib/trello_cli/cli/commands/card.rb +0 -3
- data/lib/trello_cli/cli/list/list.rb +10 -5
- data/lib/trello_cli/cli/run.rb +3 -0
- data/lib/trello_cli/formatters/base.rb +30 -0
- data/lib/trello_cli/formatters/board_list.rb +13 -0
- data/lib/trello_cli/formatters/card_create.rb +15 -0
- data/lib/trello_cli/formatters/card_list.rb +19 -0
- data/lib/trello_cli/formatters/card_move.rb +17 -0
- data/lib/trello_cli/formatters/list_list.rb +13 -0
- data/lib/trello_cli/formatters.rb +7 -0
- data/lib/trello_cli/requests/create_card.rb +3 -1
- data/lib/trello_cli/requests/move_card.rb +1 -1
- data/lib/trello_cli/version.rb +1 -1
- data/lib/trello_cli.rb +1 -0
- data/spec/cli/board/list_spec.rb +1 -2
- data/spec/formatters/base_spec.rb +10 -0
- data/spec/requests/create_card_spec.rb +6 -6
- data/spec/requests/move_card_spec.rb +3 -2
- metadata +10 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40df02ef5553721b45c97fbcab9439acd9877248
|
4
|
+
data.tar.gz: 7400fe025f43fce5f77b373abb012eda3d39a0f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57ef11ccd5519f117c77d8dbd1e949005a7582d07b0afabd50aae9e4d6df448e288ede1386cb6a1e1bdaaf1c22d9b78f10461a31a6be49b5bfcc068f7b56a964
|
7
|
+
data.tar.gz: 4a479da7c1e9559ab8d7532cb3220b818a42a9d477998664d3f6b983a61578248da24c8025da37f6dbe13f1f1cae001cc783833c07b0e70dc2355badb57204fd
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -62,19 +62,39 @@ To see help for a specific command:
|
|
62
62
|
-l, --list [LIST] List Of Card
|
63
63
|
-n, --name [NAME] Name Of Card
|
64
64
|
|
65
|
+
### Output Formatters
|
66
|
+
|
67
|
+
To allow for easy integration, the output of any command can format as either TSV (Tab
|
68
|
+
Seperated Values) or JSON.
|
69
|
+
|
70
|
+
**JSON Output**
|
71
|
+
|
72
|
+
```json
|
73
|
+
# trello card list -o json
|
74
|
+
[{"name":"board1","id":"1234"},{"name":"board2","id":"4567"}]
|
75
|
+
```
|
76
|
+
|
77
|
+
**TSV Output**
|
78
|
+
|
79
|
+
```
|
80
|
+
# trello card list -o tsv
|
81
|
+
1234 board1
|
82
|
+
4567 board2
|
83
|
+
```
|
84
|
+
|
65
85
|
## Examples
|
66
86
|
|
67
87
|
List the boards available to the given credentials:
|
68
88
|
|
69
89
|
trello board list
|
70
90
|
|
71
|
-
List the lists for a given board id:
|
91
|
+
List the lists for a given board id and output as a TSV list:
|
72
92
|
|
73
|
-
trello list list -b 123
|
93
|
+
trello list list -b 123 -o tsv
|
74
94
|
|
75
|
-
Create a card:
|
95
|
+
Create a card and output as JSON:
|
76
96
|
|
77
|
-
trello card create -b 123 -l 321 -n 'card name' -d 'card description'
|
97
|
+
trello card create -b 123 -l 321 -n 'card name' -d 'card description' -o json
|
78
98
|
|
79
99
|
## Contributing
|
80
100
|
|
@@ -10,12 +10,12 @@ module TrelloCli
|
|
10
10
|
def run
|
11
11
|
option_parser.parse!
|
12
12
|
|
13
|
-
list_boards(@options[:closed]).
|
14
|
-
name
|
15
|
-
|
16
|
-
closed = board.attributes[:closed]
|
17
|
-
puts "#{name} ( #{id} )"
|
13
|
+
data = list_boards(@options[:closed]).map do |b|
|
14
|
+
{ name: b.attributes[:name],
|
15
|
+
id: b.attributes[:id] }
|
18
16
|
end
|
17
|
+
|
18
|
+
puts TrelloCli::Formatters::BoardList.new(data).output @options[:output]
|
19
19
|
end
|
20
20
|
|
21
21
|
private
|
@@ -36,6 +36,10 @@ module TrelloCli
|
|
36
36
|
opts.on("-c", "--closed", "Include closed board." ) do |o|
|
37
37
|
@options[:closed] = o
|
38
38
|
end
|
39
|
+
|
40
|
+
opts.on("-o", "--output [OUTPUT]", "Output format [json|tsv|legacy]." ) do |o|
|
41
|
+
@options[:output] = o
|
42
|
+
end
|
39
43
|
end
|
40
44
|
end
|
41
45
|
|
@@ -10,13 +10,12 @@ module TrelloCli
|
|
10
10
|
def run
|
11
11
|
option_parser.parse!
|
12
12
|
|
13
|
-
card
|
14
|
-
|
15
|
-
|
13
|
+
card = create_card
|
14
|
+
data = { id: card.attributes[:id],
|
15
|
+
name: card.attributes[:name],
|
16
|
+
desc: card.attributes[:desc] }
|
16
17
|
|
17
|
-
puts
|
18
|
-
puts "Name : #{name}"
|
19
|
-
puts "Description : #{description}"
|
18
|
+
puts TrelloCli::Formatters::CardCreate.new(data).output @options[:output]
|
20
19
|
end
|
21
20
|
|
22
21
|
private
|
@@ -35,7 +34,7 @@ module TrelloCli
|
|
35
34
|
end
|
36
35
|
|
37
36
|
opts.on("-d", "--description [DESCRIPTION]", "Description Of Card") do |d|
|
38
|
-
@options[:
|
37
|
+
@options[:desc] = d
|
39
38
|
end
|
40
39
|
|
41
40
|
opts.on("-l", "--list [LIST]", "List Of Card") do |l|
|
@@ -49,6 +48,10 @@ module TrelloCli
|
|
49
48
|
opts.on("-n", "--name [NAME]", "Name Of Card") do |n|
|
50
49
|
@options[:name] = n
|
51
50
|
end
|
51
|
+
|
52
|
+
opts.on("-o", "--output [OUTPUT]", "Output format [json|tsv|legacy]." ) do |o|
|
53
|
+
@options[:output] = o
|
54
|
+
end
|
52
55
|
end
|
53
56
|
end
|
54
57
|
|
@@ -10,11 +10,11 @@ module TrelloCli
|
|
10
10
|
def run
|
11
11
|
option_parser.parse!
|
12
12
|
|
13
|
-
list_cards.
|
14
|
-
|
15
|
-
puts "| Description: #{card.description}" if @options[:description]
|
16
|
-
puts "|------------------------"
|
13
|
+
data = list_cards.map do |c|
|
14
|
+
{ name: c.name, id: c.id, desc: c.desc }
|
17
15
|
end
|
16
|
+
|
17
|
+
puts TrelloCli::Formatters::CardList.new(data).output(@options[:output])
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
@@ -35,8 +35,8 @@ module TrelloCli
|
|
35
35
|
@options[:list_id] = l
|
36
36
|
end
|
37
37
|
|
38
|
-
opts.on("-
|
39
|
-
@options[:
|
38
|
+
opts.on("-o", "--output [OUTPUT]", "Output format [json|tsv|legacy]." ) do |o|
|
39
|
+
@options[:output] = o
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -10,9 +10,12 @@ module TrelloCli
|
|
10
10
|
def run
|
11
11
|
option_parser.parse!
|
12
12
|
|
13
|
-
move_card
|
13
|
+
result = move_card
|
14
|
+
data = { card_id: result["id"],
|
15
|
+
list_id: result["idList"],
|
16
|
+
success: (result["idList"] == @options[:list_id]) }
|
14
17
|
|
15
|
-
puts
|
18
|
+
puts TrelloCli::Formatters::CardMove.new(data).output @options[:output]
|
16
19
|
end
|
17
20
|
|
18
21
|
private
|
@@ -33,6 +36,10 @@ module TrelloCli
|
|
33
36
|
opts.on("-l", "--list_id [LIST_ID]", "New List ID") do |l|
|
34
37
|
@options[:list_id] = l
|
35
38
|
end
|
39
|
+
|
40
|
+
opts.on("-o", "--output [OUTPUT]", "Output format [json|tsv|legacy]." ) do |o|
|
41
|
+
@options[:output] = o
|
42
|
+
end
|
36
43
|
end
|
37
44
|
end
|
38
45
|
|
@@ -10,12 +10,14 @@ module TrelloCli
|
|
10
10
|
def run
|
11
11
|
option_parser.parse!
|
12
12
|
|
13
|
-
list_lists.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
data = list_lists.map do |l|
|
14
|
+
{
|
15
|
+
id: l.attributes[:id],
|
16
|
+
name: l.attributes[:name]
|
17
|
+
}
|
18
18
|
end
|
19
|
+
|
20
|
+
puts TrelloCli::Formatters::ListList.new(data).output @options[:output]
|
19
21
|
end
|
20
22
|
|
21
23
|
private
|
@@ -34,6 +36,9 @@ module TrelloCli
|
|
34
36
|
@options[:board_id] = b
|
35
37
|
end
|
36
38
|
|
39
|
+
opts.on("-o", "--output [OUTPUT]", "Output format [json|tsv|legacy]." ) do |o|
|
40
|
+
@options[:output] = o
|
41
|
+
end
|
37
42
|
end
|
38
43
|
end
|
39
44
|
|
data/lib/trello_cli/cli/run.rb
CHANGED
@@ -16,6 +16,9 @@ module TrelloCli
|
|
16
16
|
rescue OptionParser::InvalidOption, Trello::Error => e
|
17
17
|
puts e.message
|
18
18
|
exit 1
|
19
|
+
rescue TrelloCli::Errors => e
|
20
|
+
puts "error: #{e}"
|
21
|
+
exit 1
|
19
22
|
rescue NoMethodError => e
|
20
23
|
if e.message.match /SocketError/
|
21
24
|
puts 'Please connect to the internet to access Trello'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module TrelloCli
|
4
|
+
module Formatters
|
5
|
+
class Base
|
6
|
+
def initialize(data)
|
7
|
+
@data = data
|
8
|
+
end
|
9
|
+
|
10
|
+
def output(format)
|
11
|
+
case format
|
12
|
+
when "json"
|
13
|
+
self.to_json
|
14
|
+
when "tsv"
|
15
|
+
self.to_tsv
|
16
|
+
else
|
17
|
+
self.to_legacy
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_json
|
22
|
+
data.to_json
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
attr_reader :data
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module TrelloCli
|
2
|
+
module Formatters
|
3
|
+
class CardCreate < Base
|
4
|
+
def to_legacy
|
5
|
+
msg = "Card Created.\n"
|
6
|
+
msg << "Name : #{data[:name]}\n"
|
7
|
+
msg << "Description : #{data[:desc]}\n"
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_tsv
|
11
|
+
[data[:id], data[:name], data[:desc]].join("\t") + "\n"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module TrelloCli
|
2
|
+
module Formatters
|
3
|
+
class CardList < Base
|
4
|
+
def to_legacy
|
5
|
+
data.map do |d|
|
6
|
+
msg = "| Name: #{d[:name]} ( #{d[:id]} )\n"
|
7
|
+
msg << "| Description: #{d[:desc]}\n" if d[:desc]
|
8
|
+
msg << "|------------------------\n"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_tsv
|
13
|
+
data.map do |d|
|
14
|
+
[d[:id], d[:name], d[:desc]].join("\t") + "\n"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module TrelloCli
|
2
|
+
module Formatters
|
3
|
+
class CardMove < Base
|
4
|
+
def to_legacy
|
5
|
+
if data[:success]
|
6
|
+
"Card #{data[:card_id]} was succesfully moved to #{data[:list_id]}.\n"
|
7
|
+
else
|
8
|
+
"Error moving card."
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_tsv
|
13
|
+
[data[:success], data[:card_id], data[:list_id]].join("\t") + "\n"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -24,11 +24,13 @@ module TrelloCli
|
|
24
24
|
end
|
25
25
|
|
26
26
|
card = Trello::Card.new 'name' => args[:name],
|
27
|
-
'desc' => args[:
|
27
|
+
'desc' => args[:desc],
|
28
28
|
'idBoard' => @board_id,
|
29
29
|
'idList' => args[:list_id],
|
30
30
|
'idMembers' => member_ids.join(",")
|
31
31
|
card.save
|
32
|
+
|
33
|
+
card
|
32
34
|
end
|
33
35
|
|
34
36
|
private
|
data/lib/trello_cli/version.rb
CHANGED
data/lib/trello_cli.rb
CHANGED
data/spec/cli/board/list_spec.rb
CHANGED
@@ -22,8 +22,7 @@ describe TrelloCli::CLI::Board::List do
|
|
22
22
|
|
23
23
|
it "should puts all boards" do
|
24
24
|
subject.instance_variable_set(:@options, { closed: true })
|
25
|
-
expect(subject).to receive(:puts).with("board1 ( 1 )")
|
26
|
-
expect(subject).to receive(:puts).with("board2 ( 2 )")
|
25
|
+
expect(subject).to receive(:puts).with("board1 ( 1 )\nboard2 ( 2 )")
|
27
26
|
subject.run
|
28
27
|
end
|
29
28
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TrelloCli::Formatters::Base do
|
4
|
+
let(:data) { ( { data: "test1234" } ) }
|
5
|
+
let(:subject) { TrelloCli::Formatters::Base.new data }
|
6
|
+
it "should create a formater and output the data as JSON" do
|
7
|
+
subject.output("json").should == data.to_json
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -10,13 +10,13 @@ describe TrelloCli::Requests::CreateCard do
|
|
10
10
|
let(:member_struct) { Struct.new(:attributes) }
|
11
11
|
|
12
12
|
before do
|
13
|
-
@args = { :name
|
14
|
-
:
|
15
|
-
:board_id
|
16
|
-
:list_id
|
17
|
-
:members
|
13
|
+
@args = { :name => 'name',
|
14
|
+
:desc => 'desc',
|
15
|
+
:board_id => '123',
|
16
|
+
:list_id => '321',
|
17
|
+
:members => ["user1", "user2"] }
|
18
18
|
@options = { 'name' => @args[:name],
|
19
|
-
'desc' => @args[:
|
19
|
+
'desc' => @args[:desc],
|
20
20
|
'idBoard' => @args[:board_id],
|
21
21
|
'idList' => @args[:list_id],
|
22
22
|
'idMembers' => "id1,id2" }
|
@@ -15,7 +15,8 @@ describe TrelloCli::Requests::MoveCard do
|
|
15
15
|
Trello::List.should_receive(:find).
|
16
16
|
with(args[:list_id]).
|
17
17
|
and_return trello_list_mock
|
18
|
-
trello_card_mock.should_receive(:move_to_list).with(trello_list_mock)
|
19
|
-
|
18
|
+
trello_card_mock.should_receive(:move_to_list).with(trello_list_mock).
|
19
|
+
and_return({}.to_json)
|
20
|
+
subject.move(args).should == {} # JSON.parses results
|
20
21
|
end
|
21
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trello_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Weaver
|
@@ -97,6 +97,13 @@ files:
|
|
97
97
|
- lib/trello_cli/cli/list/list.rb
|
98
98
|
- lib/trello_cli/cli/run.rb
|
99
99
|
- lib/trello_cli/errors.rb
|
100
|
+
- lib/trello_cli/formatters.rb
|
101
|
+
- lib/trello_cli/formatters/base.rb
|
102
|
+
- lib/trello_cli/formatters/board_list.rb
|
103
|
+
- lib/trello_cli/formatters/card_create.rb
|
104
|
+
- lib/trello_cli/formatters/card_list.rb
|
105
|
+
- lib/trello_cli/formatters/card_move.rb
|
106
|
+
- lib/trello_cli/formatters/list_list.rb
|
100
107
|
- lib/trello_cli/requests.rb
|
101
108
|
- lib/trello_cli/requests/create_card.rb
|
102
109
|
- lib/trello_cli/requests/list_boards.rb
|
@@ -109,6 +116,7 @@ files:
|
|
109
116
|
- spec/cli/board/list_spec.rb
|
110
117
|
- spec/cli/commands/shared_spec.rb
|
111
118
|
- spec/cli/run_spec.rb
|
119
|
+
- spec/formatters/base_spec.rb
|
112
120
|
- spec/requests/create_card_spec.rb
|
113
121
|
- spec/requests/list_boards_spec.rb
|
114
122
|
- spec/requests/list_card_spec.rb
|
@@ -145,6 +153,7 @@ test_files:
|
|
145
153
|
- spec/cli/board/list_spec.rb
|
146
154
|
- spec/cli/commands/shared_spec.rb
|
147
155
|
- spec/cli/run_spec.rb
|
156
|
+
- spec/formatters/base_spec.rb
|
148
157
|
- spec/requests/create_card_spec.rb
|
149
158
|
- spec/requests/list_boards_spec.rb
|
150
159
|
- spec/requests/list_card_spec.rb
|