ruby-trello 0.6.0 → 1.0.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.
- data/lib/trello/checklist.rb +25 -15
- data/lib/trello/member.rb +2 -1
- data/spec/checklist_spec.rb +19 -4
- data/spec/member_spec.rb +4 -0
- data/spec/spec_helper.rb +3 -2
- metadata +4 -4
data/lib/trello/checklist.rb
CHANGED
@@ -2,9 +2,9 @@ module Trello
|
|
2
2
|
# A Checklist holds items which are like a "task" list. Checklists are linked to a card.
|
3
3
|
class Checklist < BasicData
|
4
4
|
register_attributes :id, :name, :description, :closed, :url, :check_items, :board_id, :list_id, :member_ids,
|
5
|
-
|
5
|
+
:readonly => [:id, :description, :closed, :url, :check_items, :board_id, :list_id, :member_ids]
|
6
6
|
validates_presence_of :id, :board_id, :list_id
|
7
|
-
validates_length_of
|
7
|
+
validates_length_of :name, :in => 1..16384
|
8
8
|
|
9
9
|
class << self
|
10
10
|
# Locate a specific checklist by its id.
|
@@ -14,8 +14,8 @@ module Trello
|
|
14
14
|
|
15
15
|
def create(options)
|
16
16
|
client.create(:checklist,
|
17
|
-
|
18
|
-
|
17
|
+
'name' => options[:name],
|
18
|
+
'idBoard' => options[:board_id])
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -24,15 +24,15 @@ module Trello
|
|
24
24
|
# Supply a hash of string keyed data retrieved from the Trello API representing
|
25
25
|
# a checklist.
|
26
26
|
def update_fields(fields)
|
27
|
-
attributes[:id]
|
28
|
-
attributes[:name]
|
27
|
+
attributes[:id] = fields['id']
|
28
|
+
attributes[:name] = fields['name']
|
29
29
|
attributes[:description] = fields['desc']
|
30
|
-
attributes[:closed]
|
31
|
-
attributes[:url]
|
30
|
+
attributes[:closed] = fields['closed']
|
31
|
+
attributes[:url] = fields['url']
|
32
32
|
attributes[:check_items] = fields['checkItems']
|
33
|
-
attributes[:board_id]
|
34
|
-
attributes[:list_id]
|
35
|
-
attributes[:member_ids]
|
33
|
+
attributes[:board_id] = fields['idBoard']
|
34
|
+
attributes[:list_id] = fields['idList']
|
35
|
+
attributes[:member_ids] = fields['idMembers']
|
36
36
|
self
|
37
37
|
end
|
38
38
|
|
@@ -46,13 +46,13 @@ module Trello
|
|
46
46
|
return update! if id
|
47
47
|
|
48
48
|
client.post("/checklists", {
|
49
|
-
|
50
|
-
|
49
|
+
:name => name,
|
50
|
+
:idBoard => board_id
|
51
51
|
}).json_into(self)
|
52
52
|
end
|
53
53
|
|
54
54
|
def update!
|
55
|
-
client.put("/checklists/#{id}", {
|
55
|
+
client.put("/checklists/#{id}", {:name => name}).json_into(self)
|
56
56
|
end
|
57
57
|
|
58
58
|
# Return a list of items on the checklist.
|
@@ -78,7 +78,17 @@ module Trello
|
|
78
78
|
|
79
79
|
# Add an item to the checklist
|
80
80
|
def add_item(name)
|
81
|
-
client.post("/checklists/#{id}/checkItems", {
|
81
|
+
client.post("/checklists/#{id}/checkItems", {:name => name})
|
82
|
+
end
|
83
|
+
|
84
|
+
# Delete a checklist item
|
85
|
+
def delete_checklist_item(item_id)
|
86
|
+
client.delete("/checklists/#{id}/checkItems/#{item_id}")
|
87
|
+
end
|
88
|
+
|
89
|
+
# Delete a checklist
|
90
|
+
def delete
|
91
|
+
client.delete("/checklists/#{id}")
|
82
92
|
end
|
83
93
|
end
|
84
94
|
end
|
data/lib/trello/member.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Trello
|
2
2
|
# A Member is a user of the Trello service.
|
3
3
|
class Member < BasicData
|
4
|
-
register_attributes :id, :username, :full_name, :avatar_id, :bio, :url, :readonly => [ :id, :username, :avatar_id, :url ]
|
4
|
+
register_attributes :id, :username, :email, :full_name, :avatar_id, :bio, :url, :readonly => [ :id, :username, :avatar_id, :url ]
|
5
5
|
validates_presence_of :id, :username
|
6
6
|
validates_length_of :full_name, :minimum => 4
|
7
7
|
validates_length_of :bio, :maximum => 16384
|
@@ -24,6 +24,7 @@ module Trello
|
|
24
24
|
def update_fields(fields)
|
25
25
|
attributes[:id] = fields['id']
|
26
26
|
attributes[:full_name] = fields['fullName']
|
27
|
+
attributes[:email] = fields['email']
|
27
28
|
attributes[:username] = fields['username']
|
28
29
|
attributes[:avatar_id] = fields['avatarHash']
|
29
30
|
attributes[:bio] = fields['bio']
|
data/spec/checklist_spec.rb
CHANGED
@@ -9,7 +9,7 @@ module Trello
|
|
9
9
|
|
10
10
|
before(:each) do
|
11
11
|
client.stub(:get).with("/checklists/abcdef123456789123456789").
|
12
|
-
|
12
|
+
and_return JSON.generate(checklists_details.first)
|
13
13
|
end
|
14
14
|
|
15
15
|
context "finding" do
|
@@ -30,8 +30,8 @@ module Trello
|
|
30
30
|
|
31
31
|
it 'creates a new record and saves it on Trello', :refactor => true do
|
32
32
|
payload = {
|
33
|
-
|
34
|
-
|
33
|
+
:name => 'Test Checklist',
|
34
|
+
:desc => '',
|
35
35
|
}
|
36
36
|
|
37
37
|
result = JSON.generate(checklists_details.first.merge(payload.merge(:idBoard => boards_details.first['id'])))
|
@@ -46,12 +46,27 @@ module Trello
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
context "deleting" do
|
50
|
+
let(:client) { Trello.client }
|
51
|
+
|
52
|
+
it "deletes a checklist" do
|
53
|
+
client.should_receive(:delete).with("/checklists/#{checklist.id}")
|
54
|
+
checklist.delete
|
55
|
+
end
|
56
|
+
|
57
|
+
it "deletes a checklist item" do
|
58
|
+
item_id = checklist.check_items.first.last
|
59
|
+
client.should_receive(:delete).with("/checklists/#{checklist.id}/checkItems/#{item_id}")
|
60
|
+
checklist.delete_checklist_item(item_id)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
49
64
|
context "updating" do
|
50
65
|
it "updating name does a put on the correct resource with the correct value" do
|
51
66
|
expected_new_name = "xxx"
|
52
67
|
expected_resource = "/checklists/abcdef123456789123456789"
|
53
68
|
payload = {
|
54
|
-
|
69
|
+
:name => expected_new_name
|
55
70
|
}
|
56
71
|
|
57
72
|
result = JSON.generate(checklists_details.first)
|
data/spec/member_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -40,7 +40,8 @@ module Helpers
|
|
40
40
|
"username" => "me",
|
41
41
|
"avatarHash" => "abcdef1234567890abcdef1234567890",
|
42
42
|
"bio" => "a rather dumb user",
|
43
|
-
"url" => "https://trello.com/me"
|
43
|
+
"url" => "https://trello.com/me",
|
44
|
+
"email" => "johnsmith@example.com"
|
44
45
|
}
|
45
46
|
end
|
46
47
|
|
@@ -73,7 +74,7 @@ module Helpers
|
|
73
74
|
"idBoard" => "abcdef123456789123456789",
|
74
75
|
"idList" => "abcdef123456789123456789",
|
75
76
|
"idMembers" => ["abcdef123456789123456789"],
|
76
|
-
"checkItems" => {}
|
77
|
+
"checkItems" => { "id" => "ghijk987654321" }
|
77
78
|
}]
|
78
79
|
end
|
79
80
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-trello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
- 6
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 1.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jeremy Tregunna
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-03-
|
18
|
+
date: 2013-03-23 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activemodel
|