taskmapper-trello 0.0.1
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 +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +20 -0
- data/README.md +116 -0
- data/Rakefile +7 -0
- data/lib/provider/project.rb +28 -0
- data/lib/provider/ticket.rb +103 -0
- data/lib/provider/trello.rb +45 -0
- data/lib/provider/version.rb +7 -0
- data/lib/taskmapper-trello.rb +7 -0
- data/spec/credentials.rb.example +15 -0
- data/spec/fixtures/boards.json +498 -0
- data/spec/fixtures/card.json +17 -0
- data/spec/fixtures/cards.json +557 -0
- data/spec/fixtures/member.json +68 -0
- data/spec/lib/project_spec.rb +58 -0
- data/spec/lib/ticket_spec.rb +107 -0
- data/spec/lib/trello_spec.rb +42 -0
- data/spec/lib/version_spec.rb +9 -0
- data/spec/spec_helper.rb +74 -0
- data/taskmapper-trello.gemspec +24 -0
- metadata +146 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
{
|
2
|
+
"id": "4ea4f9b1ad8ba68c10013887",
|
3
|
+
"avatarHash": "",
|
4
|
+
"bio": "",
|
5
|
+
"bioData": null,
|
6
|
+
"confirmed": true,
|
7
|
+
"fullName": "Test User",
|
8
|
+
"idPremOrgsAdmin": [
|
9
|
+
|
10
|
+
],
|
11
|
+
"initials": "AS",
|
12
|
+
"memberType": "normal",
|
13
|
+
"products": [
|
14
|
+
|
15
|
+
],
|
16
|
+
"status": "disconnected",
|
17
|
+
"url": "https:\/\/trello.com\/test_user",
|
18
|
+
"username": "test_user",
|
19
|
+
"avatarSource": "none",
|
20
|
+
"email": null,
|
21
|
+
"gravatarHash": "4490da1a9bfe605a1971632d1646635b",
|
22
|
+
"idBoards": [
|
23
|
+
"4ea4fa0cd791269d4e29a176",
|
24
|
+
"4ea4fd11fc8f1d3999192a7d",
|
25
|
+
"4f0b8693acbcd9212e362eae",
|
26
|
+
"4f0f2f4508f28652554231d2",
|
27
|
+
"4f1ef9220dc5a4633b3e9d9b",
|
28
|
+
"4f225e83ed560e771605d318",
|
29
|
+
"4f26e22814cd935006633fd9",
|
30
|
+
"4f2ac73accc68eeb0b24fc44"
|
31
|
+
],
|
32
|
+
"idBoardsInvited": [
|
33
|
+
|
34
|
+
],
|
35
|
+
"idBoardsPinned": [
|
36
|
+
"4f1ef9220dc5a4633b3e9d9b",
|
37
|
+
"4f225e83ed560e771605d318",
|
38
|
+
"4f26e22814cd935006633fd9"
|
39
|
+
],
|
40
|
+
"idOrganizations": [
|
41
|
+
"4ee269e0c9feba4446044c2f"
|
42
|
+
],
|
43
|
+
"idOrganizationsInvited": [
|
44
|
+
|
45
|
+
],
|
46
|
+
"loginTypes": null,
|
47
|
+
"newEmail": null,
|
48
|
+
"oneTimeMessagesDismissed": [
|
49
|
+
|
50
|
+
],
|
51
|
+
"prefs": {
|
52
|
+
"sendSummaries": true,
|
53
|
+
"minutesBetweenSummaries": 60,
|
54
|
+
"minutesBeforeDeadlineToNotify": 1440,
|
55
|
+
"colorBlind": false,
|
56
|
+
"timezoneInfo": {
|
57
|
+
"timezoneNext": "PST",
|
58
|
+
"dateNext": "2013-11-03T09:00:00.000Z",
|
59
|
+
"offsetNext": 480,
|
60
|
+
"timezoneCurrent": "PDT",
|
61
|
+
"offsetCurrent": 420
|
62
|
+
}
|
63
|
+
},
|
64
|
+
"trophies": [
|
65
|
+
|
66
|
+
],
|
67
|
+
"uploadedAvatarHash": null
|
68
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Trello::Project do
|
4
|
+
let(:tm) { create_instance }
|
5
|
+
let(:project_class) { TaskMapper::Provider::Trello::Project }
|
6
|
+
|
7
|
+
describe "#project" do
|
8
|
+
context "with a project ID" do
|
9
|
+
let(:project) { tm.project("4f0f2f4508f28652554231d2") }
|
10
|
+
|
11
|
+
it "returns the requested project" do
|
12
|
+
expect(project).to be_a project_class
|
13
|
+
expect(project.id).to eq "4f0f2f4508f28652554231d2"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "with a hash containing a project ID" do
|
18
|
+
let(:project) { tm.project(:id => "4f0f2f4508f28652554231d2") }
|
19
|
+
|
20
|
+
it "returns the requested project" do
|
21
|
+
expect(project).to be_a project_class
|
22
|
+
expect(project.id).to eq "4f0f2f4508f28652554231d2"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#projects" do
|
28
|
+
context "without params" do
|
29
|
+
let(:projects) { tm.projects }
|
30
|
+
|
31
|
+
it "returns an array of Projects" do
|
32
|
+
expect(projects).to be_an Array
|
33
|
+
expect(projects.first).to be_a project_class
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "with an array of IDs" do
|
38
|
+
let(:ids) { %w(4f0f2f4508f28652554231d2 4ea4fa0cd791269d4e29a176) }
|
39
|
+
let(:projects) { tm.projects(ids) }
|
40
|
+
|
41
|
+
it "returns an array of requested Projects" do
|
42
|
+
expect(projects).to be_an Array
|
43
|
+
expect(projects.first.id).to eq "4f0f2f4508f28652554231d2"
|
44
|
+
expect(projects.last.id).to eq "4ea4fa0cd791269d4e29a176"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "with a hash" do
|
49
|
+
let(:projects) { tm.projects(:id => "4f0f2f4508f28652554231d2") }
|
50
|
+
|
51
|
+
it "returns the requested project in an Array" do
|
52
|
+
expect(projects).to be_an Array
|
53
|
+
expect(projects.length).to eq 1
|
54
|
+
expect(projects.first.id).to eq "4f0f2f4508f28652554231d2"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Trello::Project do
|
4
|
+
let(:tm) { create_instance }
|
5
|
+
let(:ticket_class) { TaskMapper::Provider::Trello::Ticket }
|
6
|
+
let(:project) { tm.project "4ea4fa0cd791269d4e29a176" }
|
7
|
+
|
8
|
+
describe "#tickets" do
|
9
|
+
context "with no arguments" do
|
10
|
+
let(:tickets) { project.tickets }
|
11
|
+
let(:ticket) { project.tickets.first }
|
12
|
+
|
13
|
+
it "returns all tickets" do
|
14
|
+
expect(tickets).to be_an Array
|
15
|
+
expect(tickets).to_not be_empty
|
16
|
+
expect(ticket).to be_a ticket_class
|
17
|
+
end
|
18
|
+
|
19
|
+
it "contains the expected values" do
|
20
|
+
expect(ticket.id).to eq "4ea4fa0cd791269d4e29a198"
|
21
|
+
expect(ticket.name).to eq "This is a card."
|
22
|
+
expect(ticket.description).to eq "People can vote on cards."
|
23
|
+
expect(ticket.project_id).to eq project.id
|
24
|
+
expect(ticket.status).to eq 'open'
|
25
|
+
expect(ticket.updated_at).to_not be_nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "with an array of IDs" do
|
30
|
+
let(:ids) { %w(4ea4fa0cd791269d4e29a198 4ea4fa0dd791269d4e29a1bd) }
|
31
|
+
let(:tickets) { project.tickets ids }
|
32
|
+
|
33
|
+
it "returns the requested tickets" do
|
34
|
+
expect(tickets).to be_an Array
|
35
|
+
expect(tickets.length).to eq 2
|
36
|
+
expect(tickets[0].id).to eq "4ea4fa0cd791269d4e29a198"
|
37
|
+
expect(tickets[1].id).to eq "4ea4fa0dd791269d4e29a1bd"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "with a hash containing an ID" do
|
42
|
+
let(:tickets) { project.tickets(:id => '4ea4fa0cd791269d4e29a198' ) }
|
43
|
+
|
44
|
+
it "returns the requested ticket" do
|
45
|
+
expect(tickets).to be_an Array
|
46
|
+
expect(tickets.length).to eq 1
|
47
|
+
expect(tickets.first.id).to eq "4ea4fa0cd791269d4e29a198"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#ticket!" do
|
53
|
+
context "with a title and description" do
|
54
|
+
let(:ticket) do
|
55
|
+
project.ticket!(:name => "New Ticket", :description => "Desc")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "creates a new ticket" do
|
59
|
+
expect(ticket).to be_a ticket_class
|
60
|
+
expect(ticket.name).to eq "New Ticket"
|
61
|
+
expect(ticket.desc).to eq "Desc"
|
62
|
+
expect(ticket.description).to eq "Desc"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#ticket" do
|
68
|
+
describe "#save" do
|
69
|
+
let(:ticket) { project.tickets.first }
|
70
|
+
|
71
|
+
it "updates the ticket in Trello" do
|
72
|
+
expect_any_instance_of(::Trello::Card).to receive(:save)
|
73
|
+
ticket.name = "New Name!"
|
74
|
+
ticket.save
|
75
|
+
expect(ticket.name).to eq "New Name!"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "#close" do
|
80
|
+
let(:ticket) { project.tickets.first }
|
81
|
+
|
82
|
+
before do
|
83
|
+
expect_any_instance_of(::Trello::Card).to receive(:save)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "updates the status and saves the ticket" do
|
87
|
+
expect(ticket.status).to eq "open"
|
88
|
+
ticket.close
|
89
|
+
expect(ticket.status).to eq 'closed'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "#reopen" do
|
94
|
+
let(:ticket) { project.tickets.last }
|
95
|
+
|
96
|
+
before do
|
97
|
+
expect_any_instance_of(::Trello::Card).to receive(:save)
|
98
|
+
end
|
99
|
+
|
100
|
+
it "updates the status and saves the ticket" do
|
101
|
+
expect(ticket.status).to eq "closed"
|
102
|
+
ticket.reopen
|
103
|
+
expect(ticket.status).to eq 'open'
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Trello do
|
4
|
+
let(:tm) { create_instance }
|
5
|
+
|
6
|
+
describe "#new" do
|
7
|
+
context "with correct params" do
|
8
|
+
it "creates a new TaskMapper instance" do
|
9
|
+
expect(tm).to be_a TaskMapper
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can be called explicitly as a provider" do
|
13
|
+
tm = TaskMapper::Provider::Trello.new(
|
14
|
+
:developer_public_key => key,
|
15
|
+
:member_token => token,
|
16
|
+
:username => username
|
17
|
+
)
|
18
|
+
expect(tm).to be_a TaskMapper
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "with missing params" do
|
23
|
+
it "raises an error" do
|
24
|
+
expect {
|
25
|
+
TaskMapper.new(:trello, :developer_public_key => key)
|
26
|
+
}.to raise_error(TaskMapper::Exception)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "without a username" do
|
31
|
+
it "raises an error" do
|
32
|
+
expect {
|
33
|
+
TaskMapper.new(
|
34
|
+
:trello,
|
35
|
+
:developer_public_key => key,
|
36
|
+
:member_token => token
|
37
|
+
)
|
38
|
+
}.to raise_error(TaskMapper::Exception)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'taskmapper-trello'
|
2
|
+
require 'rspec'
|
3
|
+
require 'fakeweb'
|
4
|
+
|
5
|
+
FakeWeb.allow_net_connect = false
|
6
|
+
|
7
|
+
def fixture_file(filename)
|
8
|
+
return '' if filename == ''
|
9
|
+
file_path = File.expand_path "#{File.dirname(__FILE__)}/fixtures/#{filename}"
|
10
|
+
File.read(file_path)
|
11
|
+
end
|
12
|
+
|
13
|
+
def key
|
14
|
+
"test"
|
15
|
+
end
|
16
|
+
|
17
|
+
def token
|
18
|
+
"test"
|
19
|
+
end
|
20
|
+
|
21
|
+
def username
|
22
|
+
"test_user"
|
23
|
+
end
|
24
|
+
|
25
|
+
credentials_file = "#{File.dirname(__FILE__)}/credentials.rb"
|
26
|
+
require(credentials_file) if File.exists?(credentials_file)
|
27
|
+
|
28
|
+
def stub_request(method, url, filename, status=nil)
|
29
|
+
options = {:body => ""}
|
30
|
+
options.merge!({:body => fixture_file(filename)}) if filename
|
31
|
+
options.merge!({:body => status.last}) if status
|
32
|
+
options.merge!({:status => status}) if status
|
33
|
+
options.merge!({:content_type => 'application/json'})
|
34
|
+
|
35
|
+
FakeWeb.register_uri method, url, options
|
36
|
+
end
|
37
|
+
|
38
|
+
def stub_get(*args); stub_request(:get, *args) end
|
39
|
+
def stub_post(*args); stub_request(:post, *args) end
|
40
|
+
def stub_put(*args); stub_request(:put, *args) end
|
41
|
+
def stub_delete(*args); stub_request(:delete, *args) end
|
42
|
+
|
43
|
+
def create_instance
|
44
|
+
TaskMapper.new(
|
45
|
+
:trello,
|
46
|
+
:developer_public_key => key,
|
47
|
+
:member_token => token,
|
48
|
+
:username => username
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
RSpec.configure do |c|
|
53
|
+
c.before do
|
54
|
+
stub_get(
|
55
|
+
"https://api.trello.com/1/members/#{username}?key=#{key}&token=#{token}",
|
56
|
+
'member.json'
|
57
|
+
)
|
58
|
+
|
59
|
+
stub_get(
|
60
|
+
"https://api.trello.com/1/members/4ea4f9b1ad8ba68c10013887/boards?filter=all&key=#{key}&token=#{token}",
|
61
|
+
"boards.json"
|
62
|
+
)
|
63
|
+
|
64
|
+
stub_get(
|
65
|
+
"https://api.trello.com/1/boards/4ea4fa0cd791269d4e29a176/cards?filter=open&key=#{key}&token=#{token}",
|
66
|
+
"cards.json"
|
67
|
+
)
|
68
|
+
|
69
|
+
stub_post(
|
70
|
+
"https://api.trello.com/1/cards?key=#{key}&token=#{token}",
|
71
|
+
'card.json'
|
72
|
+
)
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path '../lib/provider/version', __FILE__
|
3
|
+
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "taskmapper-trello"
|
6
|
+
spec.version = TaskMapper::Provider::Trello::VERSION
|
7
|
+
spec.authors = ["www.hybridgroup.com"]
|
8
|
+
spec.email = ["info@hybridgroup.com"]
|
9
|
+
spec.description = %q{A TaskMapper provider for interfacing with Trello.}
|
10
|
+
spec.summary = %q{A TaskMapper provider for interfacing with Trello.}
|
11
|
+
spec.homepage = "http://ticketrb.com"
|
12
|
+
spec.license = "MIT"
|
13
|
+
|
14
|
+
spec.files = `git ls-files`.split($/)
|
15
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
|
+
spec.require_paths = ["lib"]
|
18
|
+
|
19
|
+
spec.add_dependency "ruby-trello", "~> 1.0.4"
|
20
|
+
spec.add_dependency "taskmapper", "~> 1.0"
|
21
|
+
spec.add_development_dependency "rake"
|
22
|
+
spec.add_development_dependency "rspec", "~> 2.14.1"
|
23
|
+
spec.add_development_dependency "fakeweb", "~> 1.3.0"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: taskmapper-trello
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- www.hybridgroup.com
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-09-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ruby-trello
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.4
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.4
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: taskmapper
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.14.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.14.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: fakeweb
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.3.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.0
|
83
|
+
description: A TaskMapper provider for interfacing with Trello.
|
84
|
+
email:
|
85
|
+
- info@hybridgroup.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- .travis.yml
|
92
|
+
- Gemfile
|
93
|
+
- LICENSE.txt
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- lib/provider/project.rb
|
97
|
+
- lib/provider/ticket.rb
|
98
|
+
- lib/provider/trello.rb
|
99
|
+
- lib/provider/version.rb
|
100
|
+
- lib/taskmapper-trello.rb
|
101
|
+
- spec/credentials.rb.example
|
102
|
+
- spec/fixtures/boards.json
|
103
|
+
- spec/fixtures/card.json
|
104
|
+
- spec/fixtures/cards.json
|
105
|
+
- spec/fixtures/member.json
|
106
|
+
- spec/lib/project_spec.rb
|
107
|
+
- spec/lib/ticket_spec.rb
|
108
|
+
- spec/lib/trello_spec.rb
|
109
|
+
- spec/lib/version_spec.rb
|
110
|
+
- spec/spec_helper.rb
|
111
|
+
- taskmapper-trello.gemspec
|
112
|
+
homepage: http://ticketrb.com
|
113
|
+
licenses:
|
114
|
+
- MIT
|
115
|
+
metadata: {}
|
116
|
+
post_install_message:
|
117
|
+
rdoc_options: []
|
118
|
+
require_paths:
|
119
|
+
- lib
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
requirements: []
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 2.1.2
|
133
|
+
signing_key:
|
134
|
+
specification_version: 4
|
135
|
+
summary: A TaskMapper provider for interfacing with Trello.
|
136
|
+
test_files:
|
137
|
+
- spec/credentials.rb.example
|
138
|
+
- spec/fixtures/boards.json
|
139
|
+
- spec/fixtures/card.json
|
140
|
+
- spec/fixtures/cards.json
|
141
|
+
- spec/fixtures/member.json
|
142
|
+
- spec/lib/project_spec.rb
|
143
|
+
- spec/lib/ticket_spec.rb
|
144
|
+
- spec/lib/trello_spec.rb
|
145
|
+
- spec/lib/version_spec.rb
|
146
|
+
- spec/spec_helper.rb
|