ruby-trello-czuger 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +182 -0
- data/lib/trello.rb +163 -0
- data/lib/trello/action.rb +68 -0
- data/lib/trello/association.rb +14 -0
- data/lib/trello/association_proxy.rb +42 -0
- data/lib/trello/attachment.rb +40 -0
- data/lib/trello/authorization.rb +187 -0
- data/lib/trello/basic_data.rb +132 -0
- data/lib/trello/board.rb +211 -0
- data/lib/trello/card.rb +467 -0
- data/lib/trello/checklist.rb +143 -0
- data/lib/trello/client.rb +120 -0
- data/lib/trello/comment.rb +62 -0
- data/lib/trello/configuration.rb +68 -0
- data/lib/trello/core_ext/array.rb +6 -0
- data/lib/trello/core_ext/hash.rb +6 -0
- data/lib/trello/core_ext/string.rb +6 -0
- data/lib/trello/cover_image.rb +8 -0
- data/lib/trello/has_actions.rb +9 -0
- data/lib/trello/item.rb +37 -0
- data/lib/trello/item_state.rb +30 -0
- data/lib/trello/json_utils.rb +64 -0
- data/lib/trello/label.rb +108 -0
- data/lib/trello/label_name.rb +31 -0
- data/lib/trello/list.rb +114 -0
- data/lib/trello/member.rb +112 -0
- data/lib/trello/multi_association.rb +12 -0
- data/lib/trello/net.rb +39 -0
- data/lib/trello/notification.rb +61 -0
- data/lib/trello/organization.rb +68 -0
- data/lib/trello/plugin_datum.rb +34 -0
- data/lib/trello/token.rb +37 -0
- data/lib/trello/webhook.rb +103 -0
- data/spec/action_spec.rb +149 -0
- data/spec/array_spec.rb +13 -0
- data/spec/association_spec.rb +26 -0
- data/spec/basic_auth_policy_spec.rb +51 -0
- data/spec/board_spec.rb +442 -0
- data/spec/card_spec.rb +822 -0
- data/spec/checklist_spec.rb +296 -0
- data/spec/client_spec.rb +257 -0
- data/spec/configuration_spec.rb +95 -0
- data/spec/hash_spec.rb +15 -0
- data/spec/integration/how_to_authorize_spec.rb +53 -0
- data/spec/integration/how_to_use_boards_spec.rb +48 -0
- data/spec/integration/integration_test.rb +40 -0
- data/spec/item_spec.rb +75 -0
- data/spec/json_utils_spec.rb +73 -0
- data/spec/label_spec.rb +205 -0
- data/spec/list_spec.rb +253 -0
- data/spec/member_spec.rb +159 -0
- data/spec/notification_spec.rb +143 -0
- data/spec/oauth_policy_spec.rb +160 -0
- data/spec/organization_spec.rb +71 -0
- data/spec/spec_helper.rb +435 -0
- data/spec/string_spec.rb +55 -0
- data/spec/token_spec.rb +89 -0
- data/spec/trello_spec.rb +134 -0
- data/spec/webhook_spec.rb +130 -0
- metadata +200 -0
data/spec/string_spec.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'trello/core_ext/string'
|
3
|
+
|
4
|
+
describe String, '#json_into' do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
def example_class
|
8
|
+
@example_class ||= Class.new do
|
9
|
+
include Trello::JsonUtils
|
10
|
+
|
11
|
+
attr_accessor :name, :description
|
12
|
+
|
13
|
+
def initialize(options = {})
|
14
|
+
@name = options['name']
|
15
|
+
@description = options['description']
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'converts json into an instance of a class' do
|
21
|
+
expect('{}'.json_into(example_class)).to be_a example_class
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'supplies the parsed json to the class ctor as a hash' do
|
25
|
+
expect(example_class)
|
26
|
+
.to receive(:new)
|
27
|
+
.once
|
28
|
+
.with({
|
29
|
+
"name" => "Jazz Kang",
|
30
|
+
"description" => "Plonker"
|
31
|
+
})
|
32
|
+
|
33
|
+
json_text = '{"name" : "Jazz Kang", "description": "Plonker"}'
|
34
|
+
|
35
|
+
json_text.json_into example_class
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'can also handle arrays of instances of a class' do
|
39
|
+
json_text = <<-JSON
|
40
|
+
[
|
41
|
+
{"name" : "Jazz Kang", "description": "Plonker"},
|
42
|
+
{"name" : "Phil Murphy", "description": "Shoreditch hipster"}
|
43
|
+
]
|
44
|
+
JSON
|
45
|
+
|
46
|
+
result = json_text.json_into example_class
|
47
|
+
|
48
|
+
expect(result).to be_an Array
|
49
|
+
expect(result.size).to eq 2
|
50
|
+
result.each do |parsed|
|
51
|
+
expect(parsed).to be_a example_class
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
data/spec/token_spec.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Trello
|
4
|
+
describe Token do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
let(:token) { client.find(:token, '1234') }
|
8
|
+
let(:client) { Client.new }
|
9
|
+
|
10
|
+
before do
|
11
|
+
allow(client)
|
12
|
+
.to receive(:get)
|
13
|
+
.with('/tokens/1234', {})
|
14
|
+
.and_return token_payload
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'finding' do
|
18
|
+
let(:client) { Trello.client }
|
19
|
+
|
20
|
+
it 'delegates to Trello.client#find' do
|
21
|
+
expect(client)
|
22
|
+
.to receive(:find)
|
23
|
+
.with(:token, '1234', {webhooks: true})
|
24
|
+
|
25
|
+
Token.find('1234')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'is equivalent to client#find' do
|
29
|
+
expect(Token.find('1234', {})).to eq(token)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'attributes' do
|
34
|
+
it 'has an id' do
|
35
|
+
expect(token.id).to eq '4f2c10c7b3eb95a45b294cd5'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'gets its created_at date' do
|
39
|
+
expect(token.created_at).to eq Time.iso8601('2012-02-03T16:52:23.661Z')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'has a permission grant' do
|
43
|
+
expect(token.permissions.count).to eq 3
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'members' do
|
48
|
+
before do
|
49
|
+
allow(client)
|
50
|
+
.to receive(:get)
|
51
|
+
.with('/members/abcdef123456789123456789', {})
|
52
|
+
.and_return user_payload
|
53
|
+
|
54
|
+
allow(Trello.client)
|
55
|
+
.to receive(:get)
|
56
|
+
.with('/members/abcdef123456789123456789', {})
|
57
|
+
.and_return user_payload
|
58
|
+
|
59
|
+
allow(client)
|
60
|
+
.to receive(:get)
|
61
|
+
.with('/tokens/1234', {})
|
62
|
+
.and_return token_payload
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'retrieves the member who authorized the token' do
|
66
|
+
expect(token.member).to eq Member.find('abcdef123456789123456789')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "#update_fields" do
|
71
|
+
it "does not set any fields when the fields argument is empty" do
|
72
|
+
expected = {
|
73
|
+
'id' => 'id',
|
74
|
+
'idMember' => 'member_id',
|
75
|
+
'permissions' => 'permissions',
|
76
|
+
'webhooks' => 'webhooks'
|
77
|
+
}
|
78
|
+
|
79
|
+
token = Token.new(expected)
|
80
|
+
|
81
|
+
token.update_fields({})
|
82
|
+
|
83
|
+
expected.each do |key, value|
|
84
|
+
expect(token.send(value)).to eq expected[key]
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/spec/trello_spec.rb
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'launchy'
|
3
|
+
|
4
|
+
include Trello
|
5
|
+
include Trello::Authorization
|
6
|
+
|
7
|
+
describe Trello do
|
8
|
+
|
9
|
+
describe 'self.configure' do
|
10
|
+
before do
|
11
|
+
Trello.configure do |config|
|
12
|
+
config.developer_public_key = 'developer_public_key'
|
13
|
+
config.member_token = 'member_token'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'builds auth policy client uses to make requests' do
|
18
|
+
allow(TInternet).to receive(:execute)
|
19
|
+
expect(Trello.auth_policy).to receive(:authorize)
|
20
|
+
Trello.client.get(:member, params = {})
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'configures basic auth policy' do
|
24
|
+
auth_policy = Trello.auth_policy
|
25
|
+
expect(auth_policy).to be_a(BasicAuthPolicy)
|
26
|
+
expect(auth_policy.developer_public_key).to eq('developer_public_key')
|
27
|
+
expect(auth_policy.member_token).to eq('member_token')
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'oauth' do
|
31
|
+
before do
|
32
|
+
Trello.configure do |config|
|
33
|
+
config.consumer_key = 'consumer_key'
|
34
|
+
config.consumer_secret = 'consumer_secret'
|
35
|
+
config.oauth_token = 'oauth_token'
|
36
|
+
config.oauth_token_secret = 'oauth_token_secret'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'configures oauth policy' do
|
41
|
+
auth_policy = Trello.auth_policy
|
42
|
+
|
43
|
+
expect(auth_policy).to be_a(OAuthPolicy)
|
44
|
+
expect(auth_policy.consumer_key).to eq('consumer_key')
|
45
|
+
expect(auth_policy.consumer_secret).to eq('consumer_secret')
|
46
|
+
expect(auth_policy.oauth_token).to eq('oauth_token')
|
47
|
+
expect(auth_policy.oauth_token_secret).to eq('oauth_token_secret')
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'updates auth policy configuration' do
|
51
|
+
auth_policy = Trello.auth_policy
|
52
|
+
expect(auth_policy.consumer_key).to eq('consumer_key')
|
53
|
+
|
54
|
+
Trello.configure do |config|
|
55
|
+
config.consumer_key = 'new_consumer_key'
|
56
|
+
config.consumer_secret = 'new_consumer_secret'
|
57
|
+
config.oauth_token = 'new_oauth_token'
|
58
|
+
config.oauth_token_secret = nil
|
59
|
+
end
|
60
|
+
|
61
|
+
auth_policy = Trello.auth_policy
|
62
|
+
|
63
|
+
expect(auth_policy).to be_a(OAuthPolicy)
|
64
|
+
expect(auth_policy.consumer_key).to eq('new_consumer_key')
|
65
|
+
expect(auth_policy.consumer_secret).to eq('new_consumer_secret')
|
66
|
+
expect(auth_policy.oauth_token).to eq('new_oauth_token')
|
67
|
+
expect(auth_policy.oauth_token_secret).to be_nil
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'not configured' do
|
72
|
+
before do
|
73
|
+
Trello.configure
|
74
|
+
end
|
75
|
+
|
76
|
+
it { expect(Trello.auth_policy).to be_a(AuthPolicy) }
|
77
|
+
it { expect { Trello.client.get(:member) }.to raise_error(Trello::ConfigurationError) }
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'client authorization helpers' do
|
82
|
+
before do
|
83
|
+
allow(Launchy).to receive(:open)
|
84
|
+
end
|
85
|
+
|
86
|
+
it { expect(Trello.public_key_url).to eq('https://trello.com/app-key') }
|
87
|
+
it { expect(Trello.authorize_url(key: 'foo')).to match(%r{^https://trello.com/1/authorize}) }
|
88
|
+
|
89
|
+
describe '.authorize_url' do
|
90
|
+
it 'allows the scope to be set' do
|
91
|
+
expect(Trello.authorize_url(key: 'foo', scope: 'read')).to match(%r{scope=read$})
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe '.open_public_key_url' do
|
96
|
+
it 'launches app key endpoint' do
|
97
|
+
expect(Launchy).to receive(:open).with('https://trello.com/app-key')
|
98
|
+
|
99
|
+
Trello.open_public_key_url
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'rescues LoadError', :silence_warnings do
|
103
|
+
allow(Launchy).to receive(:open).and_raise(LoadError)
|
104
|
+
|
105
|
+
expect { Trello.open_public_key_url }.to_not raise_error(LoadError)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe '.open_authorization_url' do
|
110
|
+
it 'launches authorize endpoint with configured public key' do
|
111
|
+
app_key = 'abcd1234'
|
112
|
+
allow(Trello.configuration).to receive(:developer_public_key).and_return(app_key)
|
113
|
+
authorize_url = "https://trello.com/1/authorize?expiration=never&key=#{app_key}&name=Ruby%20Trello&response_type=token&scope=read%2Cwrite%2Caccount"
|
114
|
+
expect(Launchy).to receive(:open).with(authorize_url)
|
115
|
+
|
116
|
+
Trello.open_authorization_url
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'launches authorize endpoint with given public key' do
|
120
|
+
app_key = 'wxyz6789'
|
121
|
+
authorize_url = "https://trello.com/1/authorize?expiration=never&key=#{app_key}&name=Ruby%20Trello&response_type=token&scope=read%2Cwrite%2Caccount"
|
122
|
+
expect(Launchy).to receive(:open).with(authorize_url)
|
123
|
+
|
124
|
+
Trello.open_authorization_url(key: 'wxyz6789')
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'raises an error if key not configured' do
|
128
|
+
expect(Launchy).to_not receive(:open)
|
129
|
+
|
130
|
+
expect { Trello.open_authorization_url }.to raise_error(ArgumentError)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Trello
|
4
|
+
describe Webhook do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
let(:webhook) { client.find(:webhook, "1234") }
|
8
|
+
let(:client) { Client.new }
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
allow(client)
|
12
|
+
.to receive(:get)
|
13
|
+
.with("/webhooks/1234", {})
|
14
|
+
.and_return webhook_payload
|
15
|
+
end
|
16
|
+
|
17
|
+
context "finding" do
|
18
|
+
let(:client) { Trello.client }
|
19
|
+
|
20
|
+
it "delegates to Trello.client#find" do
|
21
|
+
expect(client)
|
22
|
+
.to receive(:find)
|
23
|
+
.with(:webhook, '1234', {})
|
24
|
+
|
25
|
+
Webhook.find('1234')
|
26
|
+
end
|
27
|
+
|
28
|
+
it "is equivalent to client#find" do
|
29
|
+
expect(Webhook.find('1234')).to eq(webhook)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "creating" do
|
34
|
+
let(:client) { Trello.client }
|
35
|
+
|
36
|
+
it "creates a new webhook" do
|
37
|
+
webhook = Webhook.new(webhooks_details.first)
|
38
|
+
expect(webhook).to be_valid
|
39
|
+
end
|
40
|
+
|
41
|
+
it "initializes all fields from response-like formatted hash" do
|
42
|
+
webhook_details = webhooks_details.first
|
43
|
+
webhook = Webhook.new(webhook_details)
|
44
|
+
expect(webhook.id).to eq webhook_details['id']
|
45
|
+
expect(webhook.description).to eq webhook_details['description']
|
46
|
+
expect(webhook.id_model).to eq webhook_details['idModel']
|
47
|
+
expect(webhook.callback_url).to eq webhook_details['callbackURL']
|
48
|
+
expect(webhook.active).to eq webhook_details['active']
|
49
|
+
end
|
50
|
+
|
51
|
+
it "initializes required fields from options-like formatted hash" do
|
52
|
+
webhook_details = webhooks_details[1]
|
53
|
+
webhook = Webhook.new(webhook_details)
|
54
|
+
expect(webhook.description).to eq webhook_details[:description]
|
55
|
+
expect(webhook.id_model).to eq webhook_details[:id_model]
|
56
|
+
expect(webhook.callback_url).to eq webhook_details[:callback_url]
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'creates a new webhook and saves it on Trello', refactor: true do
|
60
|
+
payload = { name: 'Test Card', desc: nil }
|
61
|
+
|
62
|
+
webhook = webhooks_details.first
|
63
|
+
result = JSON.generate(webhook)
|
64
|
+
|
65
|
+
expected_payload = {description: webhook[:description], idModel: webhook[:idModel], callbackURL: webhook[:callbackURL]}
|
66
|
+
|
67
|
+
expect(client)
|
68
|
+
.to receive(:post)
|
69
|
+
.with("/webhooks", expected_payload)
|
70
|
+
.and_return result
|
71
|
+
|
72
|
+
webhook = Webhook.create(webhooks_details.first)
|
73
|
+
|
74
|
+
expect(webhook.class).to be Webhook
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
context "updating" do
|
79
|
+
it "updating description does a put on the correct resource with the correct value" do
|
80
|
+
expected_new_description = "xxx"
|
81
|
+
|
82
|
+
expected_payload = {description: expected_new_description, idModel: webhook.id_model, callbackURL: webhook.callback_url, active: webhook.active}
|
83
|
+
|
84
|
+
expect(client)
|
85
|
+
.to receive(:put)
|
86
|
+
.once
|
87
|
+
.with("/webhooks/#{webhook.id}", expected_payload)
|
88
|
+
|
89
|
+
webhook.description = expected_new_description
|
90
|
+
webhook.save
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context "deleting" do
|
95
|
+
it "deletes the webhook" do
|
96
|
+
expect(client)
|
97
|
+
.to receive(:delete)
|
98
|
+
.with("/webhooks/#{webhook.id}")
|
99
|
+
|
100
|
+
webhook.delete
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "activated?" do
|
105
|
+
it "returns the active attribute" do
|
106
|
+
expect(webhook).to be_activated
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
describe "#update_fields" do
|
111
|
+
it "does not set any fields when the fields argument is empty" do
|
112
|
+
expected = {
|
113
|
+
'id' => 'id',
|
114
|
+
'description' => 'description',
|
115
|
+
'idModel' => 'id_model',
|
116
|
+
'callbackURL' => 'callback_url',
|
117
|
+
'active' => 'active'
|
118
|
+
}
|
119
|
+
|
120
|
+
webhook = Webhook.new(expected)
|
121
|
+
|
122
|
+
webhook.update_fields({})
|
123
|
+
|
124
|
+
expected.each do |key, value|
|
125
|
+
expect(webhook.send(value)).to eq expected[key]
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
metadata
ADDED
@@ -0,0 +1,200 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby-trello-czuger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Tregunna
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-01-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: addressable
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
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: oauth
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.5
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.5
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rest-client
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.8.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.8.0
|
83
|
+
description: A wrapper around the trello.com API.
|
84
|
+
email: jeremy@tregunna.ca
|
85
|
+
executables: []
|
86
|
+
extensions: []
|
87
|
+
extra_rdoc_files:
|
88
|
+
- README.md
|
89
|
+
files:
|
90
|
+
- README.md
|
91
|
+
- lib/trello.rb
|
92
|
+
- lib/trello/action.rb
|
93
|
+
- lib/trello/association.rb
|
94
|
+
- lib/trello/association_proxy.rb
|
95
|
+
- lib/trello/attachment.rb
|
96
|
+
- lib/trello/authorization.rb
|
97
|
+
- lib/trello/basic_data.rb
|
98
|
+
- lib/trello/board.rb
|
99
|
+
- lib/trello/card.rb
|
100
|
+
- lib/trello/checklist.rb
|
101
|
+
- lib/trello/client.rb
|
102
|
+
- lib/trello/comment.rb
|
103
|
+
- lib/trello/configuration.rb
|
104
|
+
- lib/trello/core_ext/array.rb
|
105
|
+
- lib/trello/core_ext/hash.rb
|
106
|
+
- lib/trello/core_ext/string.rb
|
107
|
+
- lib/trello/cover_image.rb
|
108
|
+
- lib/trello/has_actions.rb
|
109
|
+
- lib/trello/item.rb
|
110
|
+
- lib/trello/item_state.rb
|
111
|
+
- lib/trello/json_utils.rb
|
112
|
+
- lib/trello/label.rb
|
113
|
+
- lib/trello/label_name.rb
|
114
|
+
- lib/trello/list.rb
|
115
|
+
- lib/trello/member.rb
|
116
|
+
- lib/trello/multi_association.rb
|
117
|
+
- lib/trello/net.rb
|
118
|
+
- lib/trello/notification.rb
|
119
|
+
- lib/trello/organization.rb
|
120
|
+
- lib/trello/plugin_datum.rb
|
121
|
+
- lib/trello/token.rb
|
122
|
+
- lib/trello/webhook.rb
|
123
|
+
- spec/action_spec.rb
|
124
|
+
- spec/array_spec.rb
|
125
|
+
- spec/association_spec.rb
|
126
|
+
- spec/basic_auth_policy_spec.rb
|
127
|
+
- spec/board_spec.rb
|
128
|
+
- spec/card_spec.rb
|
129
|
+
- spec/checklist_spec.rb
|
130
|
+
- spec/client_spec.rb
|
131
|
+
- spec/configuration_spec.rb
|
132
|
+
- spec/hash_spec.rb
|
133
|
+
- spec/integration/how_to_authorize_spec.rb
|
134
|
+
- spec/integration/how_to_use_boards_spec.rb
|
135
|
+
- spec/integration/integration_test.rb
|
136
|
+
- spec/item_spec.rb
|
137
|
+
- spec/json_utils_spec.rb
|
138
|
+
- spec/label_spec.rb
|
139
|
+
- spec/list_spec.rb
|
140
|
+
- spec/member_spec.rb
|
141
|
+
- spec/notification_spec.rb
|
142
|
+
- spec/oauth_policy_spec.rb
|
143
|
+
- spec/organization_spec.rb
|
144
|
+
- spec/spec_helper.rb
|
145
|
+
- spec/string_spec.rb
|
146
|
+
- spec/token_spec.rb
|
147
|
+
- spec/trello_spec.rb
|
148
|
+
- spec/webhook_spec.rb
|
149
|
+
homepage: https://github.com/czuger/ruby-trello
|
150
|
+
licenses:
|
151
|
+
- MIT
|
152
|
+
metadata: {}
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options:
|
155
|
+
- "--charset=UTF-8"
|
156
|
+
require_paths:
|
157
|
+
- lib
|
158
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 2.1.0
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
requirements: []
|
169
|
+
rubyforge_project: ruby-trello
|
170
|
+
rubygems_version: 2.6.13
|
171
|
+
signing_key:
|
172
|
+
specification_version: 4
|
173
|
+
summary: A wrapper around the trello.com API.
|
174
|
+
test_files:
|
175
|
+
- spec/client_spec.rb
|
176
|
+
- spec/token_spec.rb
|
177
|
+
- spec/trello_spec.rb
|
178
|
+
- spec/item_spec.rb
|
179
|
+
- spec/notification_spec.rb
|
180
|
+
- spec/checklist_spec.rb
|
181
|
+
- spec/string_spec.rb
|
182
|
+
- spec/hash_spec.rb
|
183
|
+
- spec/integration/integration_test.rb
|
184
|
+
- spec/integration/how_to_authorize_spec.rb
|
185
|
+
- spec/integration/how_to_use_boards_spec.rb
|
186
|
+
- spec/basic_auth_policy_spec.rb
|
187
|
+
- spec/spec_helper.rb
|
188
|
+
- spec/list_spec.rb
|
189
|
+
- spec/oauth_policy_spec.rb
|
190
|
+
- spec/member_spec.rb
|
191
|
+
- spec/array_spec.rb
|
192
|
+
- spec/board_spec.rb
|
193
|
+
- spec/json_utils_spec.rb
|
194
|
+
- spec/action_spec.rb
|
195
|
+
- spec/configuration_spec.rb
|
196
|
+
- spec/label_spec.rb
|
197
|
+
- spec/card_spec.rb
|
198
|
+
- spec/association_spec.rb
|
199
|
+
- spec/webhook_spec.rb
|
200
|
+
- spec/organization_spec.rb
|