ruby-trello 0.4.2 → 0.4.3
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.
- data/lib/trello/basic_data.rb +1 -1
- data/lib/trello/card.rb +19 -0
- data/lib/trello/checklist.rb +2 -2
- data/lib/trello/list.rb +1 -1
- data/lib/trello.rb +14 -2
- data/spec/card_spec.rb +22 -0
- data/spec/checklist_spec.rb +50 -0
- metadata +15 -15
data/lib/trello/basic_data.rb
CHANGED
@@ -55,7 +55,7 @@ module Trello
|
|
55
55
|
resource = options.delete(:in) || self.class.to_s.split("::").last.downcase.pluralize
|
56
56
|
klass = options.delete(:via) || Trello.const_get(name.to_s.singularize.camelize)
|
57
57
|
params = options.merge(args[0] || {})
|
58
|
-
resources = Client.get("/#{resource}/#{id}/#{name}",
|
58
|
+
resources = Client.get("/#{resource}/#{id}/#{name}", params).json_into(klass)
|
59
59
|
MultiAssociation.new(self, resources).proxy
|
60
60
|
end
|
61
61
|
end
|
data/lib/trello/card.rb
CHANGED
@@ -110,6 +110,25 @@ module Trello
|
|
110
110
|
})
|
111
111
|
end
|
112
112
|
|
113
|
+
# Move this card to the given list
|
114
|
+
def move_to_list(list)
|
115
|
+
Client.put("/cards/#{id}/idList", {
|
116
|
+
:value => list.id
|
117
|
+
})
|
118
|
+
end
|
119
|
+
|
120
|
+
# Add a member to this card
|
121
|
+
def add_member(member)
|
122
|
+
Client.post("/cards/#{id}/members", {
|
123
|
+
:value => member.id
|
124
|
+
})
|
125
|
+
end
|
126
|
+
|
127
|
+
# Remove a member from this card
|
128
|
+
def remove_member(member)
|
129
|
+
Client.delete("/cards/#{id}/members/#{member.id}")
|
130
|
+
end
|
131
|
+
|
113
132
|
# Retrieve a list of labels
|
114
133
|
def labels
|
115
134
|
labels = Client.get("/cards/#{id}/labels").json_into(Label)
|
data/lib/trello/checklist.rb
CHANGED
@@ -14,7 +14,7 @@ module Trello
|
|
14
14
|
|
15
15
|
def create(options)
|
16
16
|
new('name' => options[:name],
|
17
|
-
'idBoard' => options[:board_id]).save
|
17
|
+
'idBoard' => options[:board_id]).save
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -50,7 +50,7 @@ module Trello
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def update!
|
53
|
-
Client.put("/checklists", { :name => name }).json_into(self)
|
53
|
+
Client.put("/checklists/#{id}", { :name => name }).json_into(self)
|
54
54
|
end
|
55
55
|
|
56
56
|
# Return a list of items on the checklist.
|
data/lib/trello/list.rb
CHANGED
data/lib/trello.rb
CHANGED
@@ -7,8 +7,20 @@ require 'active_model'
|
|
7
7
|
#
|
8
8
|
# First, set up your key information. You can get this information by {clicking here}[https://trello.com/1/appKey/generate].
|
9
9
|
#
|
10
|
-
# Trello
|
11
|
-
# Trello
|
10
|
+
# include Trello
|
11
|
+
# include Trello::Authorization
|
12
|
+
#
|
13
|
+
# Trello::Authorization.const_set :AuthPolicy, OAuthPolicy
|
14
|
+
#
|
15
|
+
# OAuthPolicy.consumer_credential = OAuthCredential.new 'PUBLIC_KEY', 'SECRET'
|
16
|
+
#
|
17
|
+
# You can get the key by going to this url in your browser:
|
18
|
+
# https://trello.com/1/connect?key=PUBLIC_KEY_FROM_ABOVE&name=MyApp&response_type=token&scope=read,write,account&expiration=never
|
19
|
+
# Only request the permissions you need; i.e., scope=read if you only need read, or scope=write if you only need write. Comma separate scopes you need.
|
20
|
+
# If you want your token to expire after 30 days, drop the &expiration=never. Then run the following code, where KEY denotes the key returned from the
|
21
|
+
# url above:
|
22
|
+
#
|
23
|
+
# OAuthPolicy.token = OAuthCredential.new 'KEY', nil
|
12
24
|
#
|
13
25
|
# All the calls this library make to Trello require authentication using these keys. Be sure to protect them.
|
14
26
|
#
|
data/spec/card_spec.rb
CHANGED
@@ -123,6 +123,13 @@ module Trello
|
|
123
123
|
Client.stub(:get).with("/lists/abcdef123456789123456789").and_return JSON.generate(lists_details.first)
|
124
124
|
@card.list.should_not be_nil
|
125
125
|
end
|
126
|
+
|
127
|
+
it 'can be moved to another list' do
|
128
|
+
other_list = stub(:id => '987654321987654321fedcba')
|
129
|
+
payload = {:value => other_list.id}
|
130
|
+
Client.should_receive(:put).with("/cards/abcdef123456789123456789/idList", payload)
|
131
|
+
@card.move_to_list(other_list)
|
132
|
+
end
|
126
133
|
end
|
127
134
|
|
128
135
|
context "members" do
|
@@ -133,6 +140,21 @@ module Trello
|
|
133
140
|
@card.board.should_not be_nil
|
134
141
|
@card.members.should_not be_nil
|
135
142
|
end
|
143
|
+
|
144
|
+
it "allows a member to be added to a card" do
|
145
|
+
new_member = stub(:id => '4ee7df3ce582acdec80000b2')
|
146
|
+
payload = {
|
147
|
+
:value => new_member.id
|
148
|
+
}
|
149
|
+
Client.should_receive(:post).with("/cards/abcdef123456789123456789/members", payload)
|
150
|
+
@card.add_member(new_member)
|
151
|
+
end
|
152
|
+
|
153
|
+
it "allows a member to be removed from a card" do
|
154
|
+
existing_member = stub(:id => '4ee7df3ce582acdec80000b2')
|
155
|
+
Client.should_receive(:delete).with("/cards/abcdef123456789123456789/members/#{existing_member.id}")
|
156
|
+
@card.remove_member(existing_member)
|
157
|
+
end
|
136
158
|
end
|
137
159
|
|
138
160
|
context "comments" do
|
data/spec/checklist_spec.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Trello
|
4
|
+
describe Checklist do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
Client.stub(:get).with("/checklists/abcdef123456789123456789").
|
9
|
+
and_return JSON.generate(checklists_details.first)
|
10
|
+
|
11
|
+
@checklist = Checklist.find('abcdef123456789123456789')
|
12
|
+
end
|
13
|
+
|
14
|
+
context "creating" do
|
15
|
+
it 'creates a new record and saves it on Trello', :refactor => true do
|
16
|
+
payload = {
|
17
|
+
:name => 'Test Checklist',
|
18
|
+
:desc => '',
|
19
|
+
}
|
20
|
+
|
21
|
+
result = JSON.generate(checklists_details.first.merge(payload.merge(:idBoard => boards_details.first['id'])))
|
22
|
+
|
23
|
+
expected_payload = {:name => "Test Checklist", :idBoard => "abcdef123456789123456789"}
|
24
|
+
|
25
|
+
Client.should_receive(:post).with("/checklists", expected_payload).and_return result
|
26
|
+
|
27
|
+
checklist = Checklist.create(checklists_details.first.merge(payload.merge(:board_id => boards_details.first['id'])))
|
28
|
+
|
29
|
+
checklist.class.should be Checklist
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "updating" do
|
34
|
+
it "updating name does a put on the correct resource with the correct value" do
|
35
|
+
expected_new_name = "xxx"
|
36
|
+
expected_resource = "/checklists/#{@checklist.id}"
|
37
|
+
payload = {
|
38
|
+
:name => expected_new_name
|
39
|
+
}
|
40
|
+
|
41
|
+
result = JSON.generate(checklists_details.first)
|
42
|
+
Client.should_receive(:put).once.with("/checklists/abcdef123456789123456789", payload).and_return result
|
43
|
+
checklist = @checklist.dup
|
44
|
+
checklist.name = expected_new_name
|
45
|
+
checklist.save
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-trello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-14 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|
16
|
-
requirement: &
|
16
|
+
requirement: &70366093754380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.4.5
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70366093754380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: addressable
|
27
|
-
requirement: &
|
27
|
+
requirement: &70366093753620 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.2.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70366093753620
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rest-client
|
38
|
-
requirement: &
|
38
|
+
requirement: &70366093752440 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.6.7
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70366093752440
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: activemodel
|
49
|
-
requirement: &
|
49
|
+
requirement: &70366093750780 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70366093750780
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70366093749620 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70366093749620
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70366093747380 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 2.8.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70366093747380
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &70366093746180 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70366093746180
|
91
91
|
description: A wrapper around the trello.com API.
|
92
92
|
email: jeremy@tregunna.ca
|
93
93
|
executables: []
|