trello_cli 0.3.0 → 0.4.0
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 +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
|