trello-client 0.0.1 → 0.0.2
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/History.rdoc +4 -0
- data/README.rdoc +14 -5
- data/lib/trello-client.rb +15 -5
- data/lib/trello-client/board.rb +36 -0
- data/lib/trello-client/member.rb +15 -7
- data/lib/trello-client/version.rb +1 -1
- data/test/test_member.rb +44 -2
- metadata +19 -18
data/History.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -22,12 +22,19 @@ Get user token:
|
|
22
22
|
# Get member
|
23
23
|
client.member('me') do |m|
|
24
24
|
# Returns Trello::Client::Member object
|
25
|
-
m['id'] # => member
|
25
|
+
m['id'] # => member identifier
|
26
26
|
m['fullName'] # => member name
|
27
27
|
m['userName'] # => member user
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
m['url'] # => member url
|
29
|
+
end
|
30
|
+
|
31
|
+
# Get member with boards
|
32
|
+
client.member( 'me', :boards => 'all' ) do |m|
|
33
|
+
m.boards.each do |b|
|
34
|
+
# Returns Trello::Client::Board objects
|
35
|
+
b['id'] # => board identifier
|
36
|
+
b['name'] # => board name
|
37
|
+
b['url'] # => board url
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
@@ -45,9 +52,11 @@ https://github.com/blairc/trello-client/
|
|
45
52
|
|
46
53
|
== To Do
|
47
54
|
|
48
|
-
* Get boards
|
49
55
|
* Get lists
|
50
56
|
* Get cards
|
51
57
|
* Memoize API calls
|
52
58
|
* Add script
|
59
|
+
* DRY +Board+ and +Member+
|
60
|
+
* +Board+ initialization should take JSON or +Hash+
|
61
|
+
* Member#boards() should fetch boards if not present?
|
53
62
|
|
data/lib/trello-client.rb
CHANGED
@@ -4,6 +4,7 @@ require 'multi_json'
|
|
4
4
|
require 'open-uri'
|
5
5
|
require 'uri'
|
6
6
|
|
7
|
+
require 'trello-client/board'
|
7
8
|
require 'trello-client/member'
|
8
9
|
require 'trello-client/version'
|
9
10
|
|
@@ -32,12 +33,19 @@ require 'trello-client/version'
|
|
32
33
|
# # Get member
|
33
34
|
# client.member('me') do |m|
|
34
35
|
# # Returns Trello::Client::Member object
|
35
|
-
# m['id'] # => member
|
36
|
+
# m['id'] # => member identifier
|
36
37
|
# m['fullName'] # => member name
|
37
38
|
# m['userName'] # => member user
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
39
|
+
# m['url'] # => member url
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# # Get member with boards
|
43
|
+
# client.member( 'me', :boards => 'all' ) do |m|
|
44
|
+
# m.boards.each do |b|
|
45
|
+
# # Returns Trello::Client::Board objects
|
46
|
+
# b['id'] # => board identifier
|
47
|
+
# b['name'] # => board name
|
48
|
+
# b['url'] # => board url
|
41
49
|
# end
|
42
50
|
# end
|
43
51
|
#
|
@@ -55,11 +63,13 @@ require 'trello-client/version'
|
|
55
63
|
#
|
56
64
|
# == To Do
|
57
65
|
#
|
58
|
-
# * Get boards
|
59
66
|
# * Get lists
|
60
67
|
# * Get cards
|
61
68
|
# * Memoize API calls
|
62
69
|
# * Add script
|
70
|
+
# * DRY +Board+ and +Member+
|
71
|
+
# * +Board+ initialization should take JSON or +Hash+
|
72
|
+
# * Member#boards() should fetch boards if not present?
|
63
73
|
#
|
64
74
|
module Trello # :nodoc:
|
65
75
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Trello # :nodoc:
|
4
|
+
class Client # :nodoc:
|
5
|
+
|
6
|
+
#
|
7
|
+
# Trello::Client::Board object
|
8
|
+
#
|
9
|
+
# See https://trello.com/docs/api/board/index.html
|
10
|
+
#
|
11
|
+
class Board
|
12
|
+
|
13
|
+
#
|
14
|
+
# Initialize Trello::Client::Board
|
15
|
+
#
|
16
|
+
# Params:
|
17
|
+
# +board+:: Hash'ified JSON board
|
18
|
+
#
|
19
|
+
def initialize(board)
|
20
|
+
@board = board
|
21
|
+
yield self if block_given?
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Get Trello::Client::Board property
|
27
|
+
#
|
28
|
+
def[](key)
|
29
|
+
@board[key]
|
30
|
+
end
|
31
|
+
|
32
|
+
end # class Board
|
33
|
+
|
34
|
+
end # class Client
|
35
|
+
end # module Trello
|
36
|
+
|
data/lib/trello-client/member.rb
CHANGED
@@ -1,34 +1,42 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Trello # :nodoc:
|
4
|
-
class Client # :nodoc
|
4
|
+
class Client # :nodoc:
|
5
5
|
|
6
6
|
#
|
7
7
|
# Trello::Client::Member object
|
8
8
|
#
|
9
|
+
# See https://trello.com/docs/api/member/index.html
|
10
|
+
#
|
9
11
|
class Member
|
10
12
|
|
11
13
|
#
|
12
|
-
# Initialize Trello::Member
|
14
|
+
# Initialize Trello::Client::Member
|
15
|
+
#
|
16
|
+
# Params:
|
17
|
+
# +member+:: JSON member
|
13
18
|
#
|
14
|
-
def initialize(
|
15
|
-
@
|
19
|
+
def initialize(member)
|
20
|
+
@member = MultiJson.decode(member)
|
16
21
|
yield self if block_given?
|
17
22
|
self
|
18
23
|
end
|
19
24
|
|
20
25
|
#
|
21
|
-
# Get Trello::Member property
|
26
|
+
# Get Trello::Client::Member property
|
22
27
|
#
|
23
28
|
def[](key)
|
24
|
-
@
|
29
|
+
@member[key]
|
25
30
|
end
|
26
31
|
|
27
32
|
#
|
28
33
|
# Get +Array+ of boards
|
29
34
|
#
|
30
35
|
def boards
|
31
|
-
@
|
36
|
+
unless @boards
|
37
|
+
@boards = ( @member['boards'] || [] ).collect { |b| Trello::Client::Board.new(b) }
|
38
|
+
end
|
39
|
+
@boards
|
32
40
|
end
|
33
41
|
|
34
42
|
end # class Member
|
data/test/test_member.rb
CHANGED
@@ -11,8 +11,50 @@ require 'test/unit'
|
|
11
11
|
|
12
12
|
class TestMember < Test::Unit::TestCase
|
13
13
|
|
14
|
-
def
|
15
|
-
|
14
|
+
def setup
|
15
|
+
@test_dir = File.dirname(__FILE__)
|
16
|
+
@test_data = File.join( @test_dir, 'data' )
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_boards
|
20
|
+
Trello::Client.new do |client|
|
21
|
+
json = open( File.join( @test_data, 'member_with_boards.json' ) )
|
22
|
+
m = Trello::Client::Member.new(json)
|
23
|
+
client.stubs(:member).with('me').returns(m)
|
24
|
+
|
25
|
+
assert_not_nil m
|
26
|
+
assert_kind_of Trello::Client::Member, m
|
27
|
+
|
28
|
+
assert_not_nil m.boards
|
29
|
+
assert_kind_of Array, m.boards
|
30
|
+
assert_equal 3, m.boards.size
|
31
|
+
|
32
|
+
first = m.boards.first
|
33
|
+
assert_not_nil first
|
34
|
+
assert_kind_of Trello::Client::Board, first
|
35
|
+
assert_equal '4f4d0477e4ba0e4f09af1c6c', first['id']
|
36
|
+
assert_equal '5E - Survey Database Site Features', first['name']
|
37
|
+
assert_equal '', first['desc']
|
38
|
+
assert_equal false, first['closed']
|
39
|
+
assert_equal '', first['idOrganization']
|
40
|
+
assert_equal true, first['pinned']
|
41
|
+
assert_equal 'https://trello.com/board/5e-survey-database-site-features/4f4d0477e4ba0e4f09af1c6c', first['url']
|
42
|
+
assert_not_nil first['prefs']
|
43
|
+
assert_kind_of Hash, first['prefs']
|
44
|
+
|
45
|
+
last = m.boards.last
|
46
|
+
assert_not_nil last
|
47
|
+
assert_kind_of Trello::Client::Board, last
|
48
|
+
assert_equal '4f6c9a79c3974b4d730a5533', last['id']
|
49
|
+
assert_equal 'uchicago', last['name']
|
50
|
+
assert_equal '', last['desc']
|
51
|
+
assert_equal false, last['closed']
|
52
|
+
assert_equal '', last['idOrganization']
|
53
|
+
assert_equal true, last['pinned']
|
54
|
+
assert_equal 'https://trello.com/board/uchicago/4f6c9a79c3974b4d730a5533', last['url']
|
55
|
+
assert_not_nil last['prefs']
|
56
|
+
assert_kind_of Hash, last['prefs']
|
57
|
+
end
|
16
58
|
end
|
17
59
|
|
18
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trello-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70241066627280 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70241066627280
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fakeweb
|
27
|
-
requirement: &
|
27
|
+
requirement: &70241066626700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70241066626700
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: mocha
|
38
|
-
requirement: &
|
38
|
+
requirement: &70241066626160 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70241066626160
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70241066625160 !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: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70241066625160
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rdoc
|
60
|
-
requirement: &
|
60
|
+
requirement: &70241066624560 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70241066624560
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rdoc-readme
|
71
|
-
requirement: &
|
71
|
+
requirement: &70241066623460 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.1.2
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70241066623460
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: simplecov
|
82
|
-
requirement: &
|
82
|
+
requirement: &70241066643560 !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: *70241066643560
|
91
91
|
description: Trello API client
|
92
92
|
email:
|
93
93
|
- blair.christensen@gmail.com
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- README.rdoc
|
103
103
|
- Rakefile
|
104
104
|
- lib/trello-client.rb
|
105
|
+
- lib/trello-client/board.rb
|
105
106
|
- lib/trello-client/member.rb
|
106
107
|
- lib/trello-client/version.rb
|
107
108
|
- test/data/member.json
|
@@ -123,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
124
|
version: '0'
|
124
125
|
segments:
|
125
126
|
- 0
|
126
|
-
hash:
|
127
|
+
hash: 2861758946972274756
|
127
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
129
|
none: false
|
129
130
|
requirements:
|
@@ -132,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
133
|
version: '0'
|
133
134
|
segments:
|
134
135
|
- 0
|
135
|
-
hash:
|
136
|
+
hash: 2861758946972274756
|
136
137
|
requirements: []
|
137
138
|
rubyforge_project:
|
138
139
|
rubygems_version: 1.8.11
|