totter 0.2.8 → 0.2.9

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.
@@ -71,6 +71,31 @@ module Totter
71
71
  def unfollow(user)
72
72
  boolean_from_response :post, "users/#{user}/unfollow"
73
73
  end
74
+
75
+ # @return Array of [Hashie::Mash]
76
+ # @param user_id [String] ID of the user
77
+ # @example
78
+ # client.followers('5')
79
+ def followers(user_id)
80
+ get "users/#{user_id}/followers"
81
+ end
82
+
83
+ # @return Array of [Hashie::Mash]
84
+ # @param user_id [String] ID of the user
85
+ # @example
86
+ # client.following('5')
87
+ def following(user_id)
88
+ get "users/#{user_id}/following"
89
+ end
90
+
91
+ # @return Array of [Hashie::Mash]
92
+ # @param user_id [String] ID of the user
93
+ # @example
94
+ # client.user_votes('5')
95
+ def votes(user_id)
96
+ get "users/#{user_id}/votes"
97
+ end
98
+
74
99
  end
75
100
  end
76
101
  end
@@ -1,4 +1,4 @@
1
1
  module Totter
2
2
  # Verion of the Totter gem
3
- VERSION = '0.2.8'
3
+ VERSION = '0.2.9'
4
4
  end
@@ -0,0 +1,87 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:5000/v1/users/4/followers
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ Authorization:
15
+ - Bearer 9774e653f7b3c1de5f21b61adc08ba24
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ X-Ua-Compatible:
26
+ - IE=Edge
27
+ Etag:
28
+ - ! '"984ab6ec1921c5e8e76e486ea2555386"'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ X-Request-Id:
32
+ - 23ba06b42ca2349c4108f45efb82d09f
33
+ X-Runtime:
34
+ - '0.467594'
35
+ Connection:
36
+ - close
37
+ Server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"biography":null,"created_at":"2013-02-13T20:34:59Z","family_name":"Ryan","given_name":"Adam","id":5,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:34:59Z","username":"adam","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Adam
42
+ Ryan","short_name":"Adam R","display_name":"adam","short_display_name":"adam","analytics":{"votes":0,"decisions":0,"followers":0,"following":0},"following":true}]'
43
+ http_version:
44
+ recorded_at: Wed, 13 Feb 2013 20:38:21 GMT
45
+ - request:
46
+ method: get
47
+ uri: http://localhost:5000/v1/users/adam
48
+ body:
49
+ encoding: US-ASCII
50
+ string: ''
51
+ headers:
52
+ Accept:
53
+ - ! '*/*'
54
+ User-Agent:
55
+ - Ruby
56
+ Authorization:
57
+ - Bearer 9774e653f7b3c1de5f21b61adc08ba24
58
+ Content-Type:
59
+ - application/json
60
+ response:
61
+ status:
62
+ code: 200
63
+ message: OK
64
+ headers:
65
+ Content-Type:
66
+ - application/json; charset=utf-8
67
+ X-Ua-Compatible:
68
+ - IE=Edge
69
+ Etag:
70
+ - ! '"527bbb246a9d1e7f7bbeebaa4c8b9dea"'
71
+ Cache-Control:
72
+ - max-age=0, private, must-revalidate
73
+ X-Request-Id:
74
+ - 27f777b4cb64fb62c4e43d19738063a2
75
+ X-Runtime:
76
+ - '0.037453'
77
+ Connection:
78
+ - close
79
+ Server:
80
+ - thin 1.5.0 codename Knife
81
+ body:
82
+ encoding: US-ASCII
83
+ string: ! '{"biography":null,"created_at":"2013-02-13T20:34:59Z","family_name":"Ryan","given_name":"Adam","id":5,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:34:59Z","username":"adam","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Adam
84
+ Ryan","short_name":"Adam R","display_name":"adam","short_display_name":"adam","analytics":{"votes":0,"decisions":0,"followers":0,"following":0},"following":true}'
85
+ http_version:
86
+ recorded_at: Wed, 13 Feb 2013 20:38:21 GMT
87
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,87 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:5000/v1/users/4/following
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ Authorization:
15
+ - Bearer 9774e653f7b3c1de5f21b61adc08ba24
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ X-Ua-Compatible:
26
+ - IE=Edge
27
+ Etag:
28
+ - ! '"984ab6ec1921c5e8e76e486ea2555386"'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ X-Request-Id:
32
+ - 68ed6a4ea11595d674e6f7c59c9c77b3
33
+ X-Runtime:
34
+ - '0.012123'
35
+ Connection:
36
+ - close
37
+ Server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"biography":null,"created_at":"2013-02-13T20:34:59Z","family_name":"Ryan","given_name":"Adam","id":5,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:34:59Z","username":"adam","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Adam
42
+ Ryan","short_name":"Adam R","display_name":"adam","short_display_name":"adam","analytics":{"votes":0,"decisions":0,"followers":0,"following":0},"following":true}]'
43
+ http_version:
44
+ recorded_at: Wed, 13 Feb 2013 20:38:21 GMT
45
+ - request:
46
+ method: get
47
+ uri: http://localhost:5000/v1/users/adam
48
+ body:
49
+ encoding: US-ASCII
50
+ string: ''
51
+ headers:
52
+ Accept:
53
+ - ! '*/*'
54
+ User-Agent:
55
+ - Ruby
56
+ Authorization:
57
+ - Bearer 9774e653f7b3c1de5f21b61adc08ba24
58
+ Content-Type:
59
+ - application/json
60
+ response:
61
+ status:
62
+ code: 200
63
+ message: OK
64
+ headers:
65
+ Content-Type:
66
+ - application/json; charset=utf-8
67
+ X-Ua-Compatible:
68
+ - IE=Edge
69
+ Etag:
70
+ - ! '"527bbb246a9d1e7f7bbeebaa4c8b9dea"'
71
+ Cache-Control:
72
+ - max-age=0, private, must-revalidate
73
+ X-Request-Id:
74
+ - 9e3ef96108251c611885c284d30caa62
75
+ X-Runtime:
76
+ - '0.060119'
77
+ Connection:
78
+ - close
79
+ Server:
80
+ - thin 1.5.0 codename Knife
81
+ body:
82
+ encoding: US-ASCII
83
+ string: ! '{"biography":null,"created_at":"2013-02-13T20:34:59Z","family_name":"Ryan","given_name":"Adam","id":5,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:34:59Z","username":"adam","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Adam
84
+ Ryan","short_name":"Adam R","display_name":"adam","short_display_name":"adam","analytics":{"votes":0,"decisions":0,"followers":0,"following":0},"following":true}'
85
+ http_version:
86
+ recorded_at: Wed, 13 Feb 2013 20:38:21 GMT
87
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:5000/v1/users/13/votes
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ Authorization:
15
+ - Bearer 9774e653f7b3c1de5f21b61adc08ba24
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ X-Ua-Compatible:
26
+ - IE=Edge
27
+ Etag:
28
+ - ! '"f823a98641e0c704bf82a436b4b6c11a"'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ X-Request-Id:
32
+ - bcf93b6920dac50f3f40a386ff9e28b6
33
+ X-Runtime:
34
+ - '0.024938'
35
+ Connection:
36
+ - close
37
+ Server:
38
+ - thin 1.5.0 codename Knife
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! '[{"choice_id":3,"created_at":"2013-02-13T20:54:36Z","decision_id":2,"id":8,"meta":null,"reason":null,"user":{"biography":null,"created_at":"2013-02-13T20:54:35Z","family_name":"Mills","given_name":"Dustin","id":13,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:54:35Z","username":"rickie_haag","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_5.png","full_name":"Dustin
42
+ Mills","short_name":"Dustin M","display_name":"rickie_haag","short_display_name":"rickie_haag","analytics":{"votes":0,"decisions":0,"followers":0,"following":0}},"decision":{"created_at":"2013-02-13T20:54:35Z","final_vote_id":null,"flag_count":null,"id":2,"is_private":false,"meta":{"question_display_text":"Does
43
+ it work yet?","question_display_html":"Does it work yet?","question_entities":[]},"published_at":"2013-02-13T20:54:35Z","question":"Does
44
+ it work yet?","updated_at":"2013-02-13T20:54:36Z","user_id":12,"pusher_channel":"decision-12-2","timeline_key":"12,2","analytics":{"updated_at":"2013-02-13T20:54:36Z","views":0,"unique_viewers":0,"referrers":{},"votes":{"3":{"invited":1,"user":1,"anonymous":1,"total":3,"display_percentage":50},"4":{"invited":1,"user":1,"anonymous":1,"total":3,"display_percentage":50}},"total_votes":6},"user_vote":null,"choices":[{"created_at":"2013-02-13T20:54:35Z","decision_id":2,"decision_user_id":12,"id":3,"meta":null,"position":1,"subject":null,"type":"ImageChoice","updated_at":"2013-02-13T20:54:35Z","image_uri":"https://recess-dev.s3.amazonaws.com//Users/adamryan/src/seesawapi/lib/assets/image_1.jpg"},{"created_at":"2013-02-13T20:54:35Z","decision_id":2,"decision_user_id":12,"id":4,"meta":null,"position":2,"subject":null,"type":"ImageChoice","updated_at":"2013-02-13T20:54:35Z","image_uri":"https://recess-dev.s3.amazonaws.com//Users/adamryan/src/seesawapi/lib/assets/image_2.jpg"}],"invitations":[{"created_at":"2013-02-13T20:54:36Z","id":4,"notification_type":null,"read_at":null,"sent_at":null,"updated_at":"2013-02-13T20:54:36Z","user":{"biography":null,"created_at":"2013-02-13T20:54:35Z","family_name":"DuBuque","given_name":"Fredy","id":14,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:54:35Z","username":"nedra","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Fredy
45
+ DuBuque","short_name":"Fredy D","display_name":"nedra","short_display_name":"nedra","analytics":{"votes":0,"decisions":0,"followers":0,"following":0}}},{"created_at":"2013-02-13T20:54:36Z","id":3,"notification_type":null,"read_at":null,"sent_at":null,"updated_at":"2013-02-13T20:54:36Z","user":{"biography":null,"created_at":"2013-02-13T20:54:35Z","family_name":"Mills","given_name":"Dustin","id":13,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:54:35Z","username":"rickie_haag","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_5.png","full_name":"Dustin
46
+ Mills","short_name":"Dustin M","display_name":"rickie_haag","short_display_name":"rickie_haag","analytics":{"votes":0,"decisions":0,"followers":0,"following":0}}}],"user":{"biography":null,"created_at":"2013-02-13T20:54:34Z","family_name":"Jenkins","given_name":"Colleen","id":12,"meta":null,"moderated_decisions_count":null,"stickers":[],"updated_at":"2013-02-13T20:54:35Z","username":"annalise_kris","website":null,"avatar_url":"https://recess-dev.s3.amazonaws.com/default_avatars/v1/photo_1.png","full_name":"Colleen
47
+ Jenkins","short_name":"Colleen J","display_name":"annalise_kris","short_display_name":"annalise_kris","analytics":{"votes":0,"decisions":0,"followers":0,"following":0}},"slug":"d/3g002U"}}]'
48
+ http_version:
49
+ recorded_at: Wed, 13 Feb 2013 20:59:24 GMT
50
+ recorded_with: VCR 2.4.0
@@ -34,6 +34,31 @@ class UsersTest < Totter::TestCase
34
34
  end
35
35
  end
36
36
 
37
+ def test_user_following
38
+ VCR.use_cassette 'users/get_following' do
39
+ following = local_client.following('4')
40
+ other_user = local_client.user('adam')
41
+ assert_includes following, other_user
42
+ end
43
+ end
44
+
45
+ def test_user_followers
46
+ VCR.use_cassette 'users/get_followers' do
47
+ followers = local_client.followers('4')
48
+ other_user = local_client.user('adam')
49
+ assert_includes followers, other_user
50
+ end
51
+ end
52
+
53
+ def test_user_votes
54
+ VCR.use_cassette 'users/votes' do
55
+ votes = local_client.votes('13')
56
+ vote = votes.first
57
+ assert_equal 2, vote.decision_id
58
+ assert_equal 12, vote.decision.user_id
59
+ end
60
+ end
61
+
37
62
 
38
63
  def test_following
39
64
  VCR.use_cassette 'users/following' do
data/totter.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'totter/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = 'totter'
8
8
  gem.version = Totter::VERSION
9
- gem.authors = ['Sam Soffes', 'Aaron Gotwalt']
10
- gem.email = ['sam@soff.es', 'gotwalt@gmail.com']
9
+ gem.authors = ['Sam Soffes', 'Aaron Gotwalt', 'Adam Ryan']
10
+ gem.email = ['sam@soff.es', 'gotwalt@gmail.com', 'adam.g.ryan@gmail.com']
11
11
  gem.description = 'Ruby gem for working with the Seesaw API.'
12
12
  gem.summary = gem.description
13
13
  gem.homepage = 'https://github.com/seesawco/totter-rb'
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: totter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sam Soffes
9
9
  - Aaron Gotwalt
10
+ - Adam Ryan
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2013-02-09 00:00:00.000000000 Z
14
+ date: 2013-02-13 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: multi_json
@@ -48,6 +49,7 @@ description: Ruby gem for working with the Seesaw API.
48
49
  email:
49
50
  - sam@soff.es
50
51
  - gotwalt@gmail.com
52
+ - adam.g.ryan@gmail.com
51
53
  executables: []
52
54
  extensions: []
53
55
  extra_rdoc_files: []
@@ -101,9 +103,12 @@ files:
101
103
  - test/cassettes/timelines/stickers.yml
102
104
  - test/cassettes/timelines/user.yml
103
105
  - test/cassettes/users/following.yml
106
+ - test/cassettes/users/get_followers.yml
107
+ - test/cassettes/users/get_following.yml
104
108
  - test/cassettes/users/me.yml
105
109
  - test/cassettes/users/update.yml
106
110
  - test/cassettes/users/user.yml
111
+ - test/cassettes/users/votes.yml
107
112
  - test/cassettes/votes/create.yml
108
113
  - test/support/client_macros.rb
109
114
  - test/test_helper.rb
@@ -138,9 +143,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
143
  - - ! '>='
139
144
  - !ruby/object:Gem::Version
140
145
  version: '0'
141
- segments:
142
- - 0
143
- hash: -1018930971706952464
144
146
  requirements: []
145
147
  rubyforge_project:
146
148
  rubygems_version: 1.8.23
@@ -175,9 +177,12 @@ test_files:
175
177
  - test/cassettes/timelines/stickers.yml
176
178
  - test/cassettes/timelines/user.yml
177
179
  - test/cassettes/users/following.yml
180
+ - test/cassettes/users/get_followers.yml
181
+ - test/cassettes/users/get_following.yml
178
182
  - test/cassettes/users/me.yml
179
183
  - test/cassettes/users/update.yml
180
184
  - test/cassettes/users/user.yml
185
+ - test/cassettes/users/votes.yml
181
186
  - test/cassettes/votes/create.yml
182
187
  - test/support/client_macros.rb
183
188
  - test/test_helper.rb