ruby-trello 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trello.rb +1 -0
- data/lib/trello/action.rb +16 -7
- data/lib/trello/basic_data.rb +4 -1
- data/lib/trello/board.rb +5 -3
- data/lib/trello/card.rb +55 -21
- data/lib/trello/checklist.rb +3 -2
- data/lib/trello/client.rb +1 -0
- data/lib/trello/core_ext/array.rb +5 -0
- data/lib/trello/core_ext/hash.rb +6 -0
- data/lib/trello/{string.rb → core_ext/string.rb} +1 -6
- data/lib/trello/cover_image.rb +8 -0
- data/lib/trello/organization.rb +2 -2
- data/spec/action_spec.rb +9 -0
- data/spec/array_spec.rb +10 -0
- data/spec/card_spec.rb +16 -1
- data/spec/checklist_spec.rb +17 -1
- data/spec/hash_spec.rb +11 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/string_spec.rb +5 -5
- metadata +12 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 646b1425d617c5840facf57bee4cf7b52a7ef4a7
|
4
|
+
data.tar.gz: 805feb33ce7d86288b20612451bbe523fce80e91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5c21fc97bbfe409dadf87336190dd6ec1c875bae9f4154ae761529a1dae50c17fe7757af4b9cb66c6bf40498c8a2f9a9085da1978ddfba279486c93bdb09baa
|
7
|
+
data.tar.gz: 74655e09b8a6fb6ed6a00e10a63b5e4f4d9e9b7d4014aaf74575e8a473f9644e9759f75b6f9722800b8af2852de8e2a75dbd706afc1404c3f50c778120dc9cf7
|
data/lib/trello.rb
CHANGED
@@ -41,6 +41,7 @@ module Trello
|
|
41
41
|
autoload :Association, 'trello/association'
|
42
42
|
autoload :AssociationProxy, 'trello/association_proxy'
|
43
43
|
autoload :Attachment, 'trello/attachment'
|
44
|
+
autoload :CoverImage, 'trello/cover_image'
|
44
45
|
autoload :BasicData, 'trello/basic_data'
|
45
46
|
autoload :Board, 'trello/board'
|
46
47
|
autoload :Card, 'trello/card'
|
data/lib/trello/action.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module Trello
|
2
2
|
# Action represents some event that occurred. For instance, when a card is created.
|
3
3
|
class Action < BasicData
|
4
|
-
register_attributes :id, :type, :data, :date, :member_creator_id,
|
5
|
-
:readonly => [ :id, :type, :data, :date, :member_creator_id ]
|
4
|
+
register_attributes :id, :type, :data, :date, :member_creator_id, :member_participant,
|
5
|
+
:readonly => [ :id, :type, :data, :date, :member_creator_id, :member_participant ]
|
6
6
|
validates_presence_of :id, :type, :date, :member_creator_id
|
7
7
|
|
8
8
|
class << self
|
@@ -10,6 +10,14 @@ module Trello
|
|
10
10
|
def find(id, params = {})
|
11
11
|
client.find(:action, id, params)
|
12
12
|
end
|
13
|
+
|
14
|
+
def search(query, opts={})
|
15
|
+
response = client.get("/search/", { query: query }.merge(opts))
|
16
|
+
formatted_response = JSON.parse(response).except("options").inject({}) do |res, key|
|
17
|
+
res.merge!({ key.first => key.last.jsoned_into("Trello::#{key.first.singularize.capitalize}".constantize) })
|
18
|
+
res
|
19
|
+
end
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
# Update the attributes of an action
|
@@ -17,11 +25,12 @@ module Trello
|
|
17
25
|
# Supply a hash of string keyed data retrieved from the Trello API representing
|
18
26
|
# an Action.
|
19
27
|
def update_fields(fields)
|
20
|
-
attributes[:id]
|
21
|
-
attributes[:type]
|
22
|
-
attributes[:data]
|
23
|
-
attributes[:date]
|
24
|
-
attributes[:member_creator_id]
|
28
|
+
attributes[:id] = fields['id']
|
29
|
+
attributes[:type] = fields['type']
|
30
|
+
attributes[:data] = fields['data']
|
31
|
+
attributes[:date] = Time.iso8601(fields['date'])
|
32
|
+
attributes[:member_creator_id] = fields['idMemberCreator']
|
33
|
+
attributes[:member_participant] = fields['member']
|
25
34
|
self
|
26
35
|
end
|
27
36
|
|
data/lib/trello/basic_data.rb
CHANGED
data/lib/trello/board.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Trello
|
2
2
|
class Board < BasicData
|
3
3
|
register_attributes :id, :name, :description, :closed, :url, :organization_id, :prefs,
|
4
|
-
:readonly => [ :id, :url, :
|
4
|
+
:readonly => [ :id, :url, :prefs ]
|
5
5
|
validates_presence_of :id, :name
|
6
6
|
validates_length_of :name, :in => 1..16384
|
7
7
|
validates_length_of :description, :maximum => 16384
|
@@ -15,10 +15,12 @@ module Trello
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def create(fields)
|
18
|
-
|
18
|
+
data = {
|
19
19
|
'name' => fields[:name],
|
20
20
|
'desc' => fields[:description],
|
21
|
-
'closed' => fields[:closed] || false
|
21
|
+
'closed' => fields[:closed] || false }
|
22
|
+
data.merge!('idOrganization' => fields[:organization_id]) if fields[:organization_id]
|
23
|
+
client.create(:board, data)
|
22
24
|
end
|
23
25
|
|
24
26
|
def all
|
data/lib/trello/card.rb
CHANGED
@@ -1,14 +1,36 @@
|
|
1
1
|
module Trello
|
2
2
|
# A Card is a container that can house checklists and comments; it resides inside a List.
|
3
3
|
class Card < BasicData
|
4
|
-
register_attributes :id, :short_id, :name, :desc, :due, :closed, :url, :
|
5
|
-
:
|
4
|
+
register_attributes :id, :short_id, :name, :desc, :due, :closed, :url, :short_url,
|
5
|
+
:board_id, :member_ids, :list_id, :pos, :last_activity_date, :card_labels,
|
6
|
+
:cover_image_id, :badges, :card_members,
|
7
|
+
:readonly => [ :id, :short_id, :url, :short_url, :last_activity_date, :badges, :card_members ]
|
6
8
|
validates_presence_of :id, :name, :list_id
|
7
9
|
validates_length_of :name, :in => 1..16384
|
8
10
|
validates_length_of :desc, :in => 0..16384
|
9
11
|
|
10
12
|
include HasActions
|
11
13
|
|
14
|
+
SYMBOL_TO_STRING = {
|
15
|
+
id: 'id',
|
16
|
+
short_id: 'idShort',
|
17
|
+
name: 'name',
|
18
|
+
desc: 'desc',
|
19
|
+
due: 'due',
|
20
|
+
closed: 'closed',
|
21
|
+
url: 'url',
|
22
|
+
short_url: 'shortUrl',
|
23
|
+
board_id: 'idBoard',
|
24
|
+
member_ids: 'idMembers',
|
25
|
+
cover_image_id: 'idAttachmentCover',
|
26
|
+
list_id: 'idList',
|
27
|
+
pos: 'pos',
|
28
|
+
last_activity_date: 'dateLastActivity',
|
29
|
+
card_labels: 'labels',
|
30
|
+
badges: 'badges',
|
31
|
+
card_members: 'members'
|
32
|
+
}
|
33
|
+
|
12
34
|
class << self
|
13
35
|
# Find a specific card by its id.
|
14
36
|
def find(id, params = {})
|
@@ -18,9 +40,12 @@ module Trello
|
|
18
40
|
# Create a new card and save it on Trello.
|
19
41
|
def create(options)
|
20
42
|
client.create(:card,
|
21
|
-
|
22
|
-
|
23
|
-
|
43
|
+
'name' => options[:name],
|
44
|
+
'idList' => options[:list_id],
|
45
|
+
'desc' => options[:desc],
|
46
|
+
'idMembers' => options[:member_ids],
|
47
|
+
'labels' => options[:card_labels]
|
48
|
+
)
|
24
49
|
end
|
25
50
|
end
|
26
51
|
|
@@ -29,23 +54,30 @@ module Trello
|
|
29
54
|
# Supply a hash of string keyed data retrieved from the Trello API representing
|
30
55
|
# a card.
|
31
56
|
def update_fields(fields)
|
32
|
-
attributes[:id] = fields[
|
33
|
-
attributes[:short_id] = fields[
|
34
|
-
attributes[:name] = fields[
|
35
|
-
attributes[:desc] = fields[
|
36
|
-
attributes[:due] = Time.iso8601(fields[
|
37
|
-
attributes[:closed] = fields[
|
38
|
-
attributes[:url] = fields[
|
39
|
-
attributes[:
|
40
|
-
attributes[:
|
41
|
-
attributes[:
|
42
|
-
attributes[:
|
43
|
-
attributes[:
|
57
|
+
attributes[:id] = fields[SYMBOL_TO_STRING[:id]]
|
58
|
+
attributes[:short_id] = fields[SYMBOL_TO_STRING[:short_id]]
|
59
|
+
attributes[:name] = fields[SYMBOL_TO_STRING[:name]]
|
60
|
+
attributes[:desc] = fields[SYMBOL_TO_STRING[:desc]]
|
61
|
+
attributes[:due] = Time.iso8601(fields[SYMBOL_TO_STRING[:due]]) rescue nil
|
62
|
+
attributes[:closed] = fields[SYMBOL_TO_STRING[:closed]]
|
63
|
+
attributes[:url] = fields[SYMBOL_TO_STRING[:url]]
|
64
|
+
attributes[:short_url] = fields[SYMBOL_TO_STRING[:short_url]]
|
65
|
+
attributes[:board_id] = fields[SYMBOL_TO_STRING[:board_id]]
|
66
|
+
attributes[:member_ids] = fields[SYMBOL_TO_STRING[:member_ids]]
|
67
|
+
attributes[:list_id] = fields[SYMBOL_TO_STRING[:list_id]]
|
68
|
+
attributes[:pos] = fields[SYMBOL_TO_STRING[:post]]
|
69
|
+
attributes[:card_labels] = fields[SYMBOL_TO_STRING[:card_labels]]
|
70
|
+
attributes[:last_activity_date] = Time.iso8601(fields[SYMBOL_TO_STRING[:last_activity_date]]) rescue nil
|
71
|
+
attributes[:cover_image_id] = fields[SYMBOL_TO_STRING[:cover_image_id]]
|
72
|
+
attributes[:badges] = fields[SYMBOL_TO_STRING[:badges]]
|
73
|
+
attributes[:card_members] = fields[SYMBOL_TO_STRING[:card_members]]
|
44
74
|
self
|
45
75
|
end
|
46
76
|
|
47
77
|
# Returns a reference to the board this card is part of.
|
48
78
|
one :board, :path => :boards, :using => :board_id
|
79
|
+
# Returns a reference to the cover image attachment
|
80
|
+
one :cover_image, :path => :attachments, :using => :cover_image_id
|
49
81
|
|
50
82
|
# Returns a list of checklists associated with the card.
|
51
83
|
#
|
@@ -77,9 +109,11 @@ module Trello
|
|
77
109
|
return update! if id
|
78
110
|
|
79
111
|
client.post("/cards", {
|
80
|
-
:
|
81
|
-
:
|
82
|
-
:
|
112
|
+
name: name,
|
113
|
+
desc: desc,
|
114
|
+
idList: list_id,
|
115
|
+
idMembers: member_ids,
|
116
|
+
labels: card_labels
|
83
117
|
}).json_into(self)
|
84
118
|
end
|
85
119
|
|
@@ -90,7 +124,7 @@ module Trello
|
|
90
124
|
def update!
|
91
125
|
@previously_changed = changes
|
92
126
|
# extract only new values to build payload
|
93
|
-
payload = Hash[changes.map { |key, values| [key.to_sym.
|
127
|
+
payload = Hash[changes.map { |key, values| [SYMBOL_TO_STRING[key.to_sym].to_sym, values[1]] }]
|
94
128
|
@changed_attributes.clear
|
95
129
|
|
96
130
|
client.put("/cards/#{id}", payload)
|
data/lib/trello/checklist.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
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
|
-
register_attributes :id, :name, :description, :closed, :url, :check_items, :board_id, :list_id, :member_ids,
|
4
|
+
register_attributes :id, :name, :description, :closed, :position, :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
7
|
validates_length_of :name, :in => 1..16384
|
@@ -30,6 +30,7 @@ module Trello
|
|
30
30
|
attributes[:closed] = fields['closed']
|
31
31
|
attributes[:url] = fields['url']
|
32
32
|
attributes[:check_items] = fields['checkItems']
|
33
|
+
attributes[:position] = fields['position']
|
33
34
|
attributes[:board_id] = fields['idBoard']
|
34
35
|
attributes[:list_id] = fields['idList']
|
35
36
|
attributes[:member_ids] = fields['idMembers']
|
@@ -52,7 +53,7 @@ module Trello
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def update!
|
55
|
-
client.put("/checklists/#{id}", {:name => name}).json_into(self)
|
56
|
+
client.put("/checklists/#{id}", {:name => name, :pos => position}).json_into(self)
|
56
57
|
end
|
57
58
|
|
58
59
|
# Return a list of items on the checklist.
|
data/lib/trello/client.rb
CHANGED
@@ -17,12 +17,7 @@ class String
|
|
17
17
|
# thing.b == "foo"
|
18
18
|
def json_into(obj)
|
19
19
|
data = JSON.parse(self)
|
20
|
-
|
21
|
-
if data.kind_of? Hash
|
22
|
-
obj.send(action, JSON.parse(self))
|
23
|
-
else
|
24
|
-
data.map { |element| obj.send(action, element) }
|
25
|
-
end
|
20
|
+
data.jsoned_into(obj)
|
26
21
|
rescue JSON::ParserError => json_error
|
27
22
|
if json_error.message =~ /model not found/
|
28
23
|
Trello.logger.error "Could not find that record."
|
data/lib/trello/organization.rb
CHANGED
@@ -34,8 +34,8 @@ module Trello
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# Returns an array of members associated with the organization.
|
37
|
-
def members
|
38
|
-
members = client.get("/organizations/#{id}/members/all").json_into(Member)
|
37
|
+
def members(params = {})
|
38
|
+
members = client.get("/organizations/#{id}/members/all", params).json_into(Member)
|
39
39
|
MultiAssociation.new(self, members).proxy
|
40
40
|
end
|
41
41
|
|
data/spec/action_spec.rb
CHANGED
@@ -25,6 +25,15 @@ module Trello
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
context 'search' do
|
29
|
+
let(:client) { Trello.client }
|
30
|
+
|
31
|
+
it "should search and get back a card object" do
|
32
|
+
client.should_receive(:get).with("/search/", { query: "something"}).and_return(JSON.generate({ "cards" => cards_details }))
|
33
|
+
Action.search("something").should eq({ "cards" => cards_details.jsoned_into(Card) })
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
28
37
|
context 'fields' do
|
29
38
|
let(:detail) { actions_details.first }
|
30
39
|
|
data/spec/array_spec.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'trello/core_ext/array'
|
3
|
+
|
4
|
+
describe Array, '#jsoned_into' do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
it "should convert an array of parsed json into cards" do
|
8
|
+
cards_details.jsoned_into(Trello::Card).should eq([cards_details.first.jsoned_into(Trello::Card)])
|
9
|
+
end
|
10
|
+
end
|
data/spec/card_spec.rb
CHANGED
@@ -51,7 +51,7 @@ module Trello
|
|
51
51
|
|
52
52
|
result = JSON.generate(cards_details.first.merge(payload.merge(:idList => lists_details.first['id'])))
|
53
53
|
|
54
|
-
expected_payload = {:
|
54
|
+
expected_payload = {name: "Test Card", desc: nil, idList: "abcdef123456789123456789", idMembers: nil, labels: nil }
|
55
55
|
|
56
56
|
client.should_receive(:post).with("/cards", expected_payload).and_return result
|
57
57
|
|
@@ -108,9 +108,17 @@ module Trello
|
|
108
108
|
card.url.should_not be_nil
|
109
109
|
end
|
110
110
|
|
111
|
+
it "gets its short url" do
|
112
|
+
card.short_url.should_not be_nil
|
113
|
+
end
|
114
|
+
|
111
115
|
it "gets its last active date" do
|
112
116
|
card.last_activity_date.should_not be_nil
|
113
117
|
end
|
118
|
+
|
119
|
+
it "gets its cover image id" do
|
120
|
+
card.cover_image_id.should_not be_nil
|
121
|
+
end
|
114
122
|
end
|
115
123
|
|
116
124
|
context "actions" do
|
@@ -132,6 +140,13 @@ module Trello
|
|
132
140
|
end
|
133
141
|
end
|
134
142
|
|
143
|
+
context "cover image" do
|
144
|
+
it "has a cover image" do
|
145
|
+
client.stub(:get).with("/attachments/abcdef123456789123456789", {}).and_return JSON.generate(attachments_details.first)
|
146
|
+
card.cover_image.should_not be_nil
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
135
150
|
context "checklists" do
|
136
151
|
it "has a list of checklists" do
|
137
152
|
client.stub(:get).with("/cards/abcdef123456789123456789/checklists", { :filter => :all }).and_return checklists_payload
|
data/spec/checklist_spec.rb
CHANGED
@@ -66,7 +66,8 @@ module Trello
|
|
66
66
|
expected_new_name = "xxx"
|
67
67
|
expected_resource = "/checklists/abcdef123456789123456789"
|
68
68
|
payload = {
|
69
|
-
:name => expected_new_name
|
69
|
+
:name => expected_new_name,
|
70
|
+
:pos => checklist.position
|
70
71
|
}
|
71
72
|
|
72
73
|
result = JSON.generate(checklists_details.first)
|
@@ -76,6 +77,21 @@ module Trello
|
|
76
77
|
checklist.save
|
77
78
|
end
|
78
79
|
|
80
|
+
it "updating position does a put on the correct resource with the correct value" do
|
81
|
+
expected_new_position = 33
|
82
|
+
expected_resource = "/checklists/abcdef123456789123456789"
|
83
|
+
payload = {
|
84
|
+
:name => checklist.name,
|
85
|
+
:pos => expected_new_position
|
86
|
+
}
|
87
|
+
|
88
|
+
result = JSON.generate(checklists_details.first)
|
89
|
+
client.should_receive(:put).once.with(expected_resource, payload).and_return result
|
90
|
+
|
91
|
+
checklist.position = expected_new_position
|
92
|
+
checklist.save
|
93
|
+
end
|
94
|
+
|
79
95
|
it "adds an item" do
|
80
96
|
expected_item_name = "item1"
|
81
97
|
expected_checked = true
|
data/spec/hash_spec.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'trello/core_ext/hash'
|
3
|
+
|
4
|
+
describe Hash, '#jsoned_into' do
|
5
|
+
include Helpers
|
6
|
+
|
7
|
+
it "should convert a single parsed json into card" do
|
8
|
+
Trello::Card.should_receive(:new).once.with(cards_details.first)
|
9
|
+
cards_details.first.jsoned_into(Trello::Card)
|
10
|
+
end
|
11
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -70,6 +70,7 @@ module Helpers
|
|
70
70
|
'name' => 'Test Checklist',
|
71
71
|
'desc' => 'A marvelous little checklist',
|
72
72
|
'closed' => false,
|
73
|
+
'position' => 16384,
|
73
74
|
'url' => 'https://trello.com/blah/blah',
|
74
75
|
'idBoard' => 'abcdef123456789123456789',
|
75
76
|
'idList' => 'abcdef123456789123456789',
|
@@ -105,8 +106,10 @@ module Helpers
|
|
105
106
|
'closed' => false,
|
106
107
|
'idList' => 'abcdef123456789123456789',
|
107
108
|
'idBoard' => 'abcdef123456789123456789',
|
109
|
+
'idAttachmentCover' => 'abcdef123456789123456789',
|
108
110
|
'idMembers' => ['abcdef123456789123456789'],
|
109
111
|
'url' => 'https://trello.com/card/board/specify-the-type-and-scope-of-the-jit-in-a-lightweight-spec/abcdef123456789123456789/abcdef123456789123456789',
|
112
|
+
'shortUrl' => 'https://trello.com/c/abcdef12',
|
110
113
|
'pos' => 12,
|
111
114
|
'dateLastActivity' => '2012-12-07T18:40:24.314Z'
|
112
115
|
}]
|
data/spec/string_spec.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'trello/string'
|
2
|
+
require 'trello/core_ext/string'
|
3
3
|
|
4
4
|
describe String, '#json_into' do
|
5
5
|
include Helpers
|
@@ -24,9 +24,9 @@ describe String, '#json_into' do
|
|
24
24
|
"name" => "Jazz Kang",
|
25
25
|
"description" => "Plonker"
|
26
26
|
})
|
27
|
-
|
27
|
+
|
28
28
|
json_text = '{"name" : "Jazz Kang", "description": "Plonker"}'
|
29
|
-
|
29
|
+
|
30
30
|
json_text.json_into example_class
|
31
31
|
end
|
32
32
|
|
@@ -37,7 +37,7 @@ describe String, '#json_into' do
|
|
37
37
|
{"name" : "Phil Murphy", "description": "Shoreditch hipster"}
|
38
38
|
]
|
39
39
|
JSON
|
40
|
-
|
40
|
+
|
41
41
|
result = json_text.json_into example_class
|
42
42
|
|
43
43
|
result.should be_an Array
|
@@ -47,4 +47,4 @@ describe String, '#json_into' do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
50
|
-
|
50
|
+
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-trello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Tregunna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -98,6 +98,10 @@ files:
|
|
98
98
|
- lib/trello/checklist.rb
|
99
99
|
- lib/trello/client.rb
|
100
100
|
- lib/trello/configuration.rb
|
101
|
+
- lib/trello/core_ext/array.rb
|
102
|
+
- lib/trello/core_ext/hash.rb
|
103
|
+
- lib/trello/core_ext/string.rb
|
104
|
+
- lib/trello/cover_image.rb
|
101
105
|
- lib/trello/has_actions.rb
|
102
106
|
- lib/trello/item.rb
|
103
107
|
- lib/trello/item_state.rb
|
@@ -109,12 +113,12 @@ files:
|
|
109
113
|
- lib/trello/net.rb
|
110
114
|
- lib/trello/notification.rb
|
111
115
|
- lib/trello/organization.rb
|
112
|
-
- lib/trello/string.rb
|
113
116
|
- lib/trello/token.rb
|
114
117
|
- lib/trello/webhook.rb
|
115
118
|
- lib/trello.rb
|
116
119
|
- README.md
|
117
120
|
- spec/action_spec.rb
|
121
|
+
- spec/array_spec.rb
|
118
122
|
- spec/association_spec.rb
|
119
123
|
- spec/basic_auth_policy_spec.rb
|
120
124
|
- spec/board_spec.rb
|
@@ -122,6 +126,7 @@ files:
|
|
122
126
|
- spec/checklist_spec.rb
|
123
127
|
- spec/client_spec.rb
|
124
128
|
- spec/configuration_spec.rb
|
129
|
+
- spec/hash_spec.rb
|
125
130
|
- spec/integration/how_to_authorize_spec.rb
|
126
131
|
- spec/integration/how_to_use_boards_spec.rb
|
127
132
|
- spec/integration/integration_test.rb
|
@@ -164,6 +169,7 @@ specification_version: 4
|
|
164
169
|
summary: A wrapper around the trello.com API.
|
165
170
|
test_files:
|
166
171
|
- spec/action_spec.rb
|
172
|
+
- spec/array_spec.rb
|
167
173
|
- spec/association_spec.rb
|
168
174
|
- spec/basic_auth_policy_spec.rb
|
169
175
|
- spec/board_spec.rb
|
@@ -171,6 +177,7 @@ test_files:
|
|
171
177
|
- spec/checklist_spec.rb
|
172
178
|
- spec/client_spec.rb
|
173
179
|
- spec/configuration_spec.rb
|
180
|
+
- spec/hash_spec.rb
|
174
181
|
- spec/integration/how_to_authorize_spec.rb
|
175
182
|
- spec/integration/how_to_use_boards_spec.rb
|
176
183
|
- spec/integration/integration_test.rb
|