trello-client 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.rdoc CHANGED
@@ -1,5 +1,9 @@
1
1
  = Trello::Client History
2
2
 
3
+ == 2012-03-29 v0.0.2
4
+
5
+ * Added Trello::Client::Board
6
+
3
7
  == 2012-03-28 v0.0.1
4
8
 
5
9
  * First public release.
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 identity
25
+ m['id'] # => member identifier
26
26
  m['fullName'] # => member name
27
27
  m['userName'] # => member user
28
-
29
- m.boards.each do |board|
30
- # TODO Returns Board JSON
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 identity
36
+ # m['id'] # => member identifier
36
37
  # m['fullName'] # => member name
37
38
  # m['userName'] # => member user
38
- #
39
- # m.boards.each do |board|
40
- # # TODO Returns Board JSON
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
+
@@ -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(json)
15
- @json = MultiJson.decode(json)
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
- @json[key]
29
+ @member[key]
25
30
  end
26
31
 
27
32
  #
28
33
  # Get +Array+ of boards
29
34
  #
30
35
  def boards
31
- @json['boards'] || []
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
@@ -5,6 +5,6 @@ module Trello
5
5
  #
6
6
  # Trello::Client version
7
7
  #
8
- VERSION = '0.0.1'
8
+ VERSION = '0.0.2'
9
9
  end
10
10
  end
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 test
15
- skip 'TODO - Add explicit Test::Client::Member tests'
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.1
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-28 00:00:00.000000000 Z
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: &70273668948620 !ruby/object:Gem::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: *70273668948620
24
+ version_requirements: *70241066627280
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: fakeweb
27
- requirement: &70273668947980 !ruby/object:Gem::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: *70273668947980
35
+ version_requirements: *70241066626700
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &70273668947200 !ruby/object:Gem::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: *70273668947200
46
+ version_requirements: *70241066626160
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70273668946460 !ruby/object:Gem::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: *70273668946460
57
+ version_requirements: *70241066625160
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rdoc
60
- requirement: &70273668945700 !ruby/object:Gem::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: *70273668945700
68
+ version_requirements: *70241066624560
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rdoc-readme
71
- requirement: &70273668944700 !ruby/object:Gem::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: *70273668944700
79
+ version_requirements: *70241066623460
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: simplecov
82
- requirement: &70273668965120 !ruby/object:Gem::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: *70273668965120
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: -3090611917339135223
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: -3090611917339135223
136
+ hash: 2861758946972274756
136
137
  requirements: []
137
138
  rubyforge_project:
138
139
  rubygems_version: 1.8.11