croudia 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12dd9972cdc4dff0d2c1f7f6c85c054c97d8a6f2
4
- data.tar.gz: 6fbd8c108639070b2ad02ef4b77957d07a08b64a
3
+ metadata.gz: 33f2b6ec843db67e93166dc5c052cc1e647f183b
4
+ data.tar.gz: ed05284c38fcc8c4e756ee76d25e0397b7de8b90
5
5
  SHA512:
6
- metadata.gz: 3549a58cd5213322e27ef802f22423285a47933b7b57bfc520c0220a96f8d357360191ba43acbe49da61382cdedcd78653cc0c90b90dc75461101f4d3b4e8b3c
7
- data.tar.gz: 9a21c41e1ed8ae884dc188803d0562c48d7e7e5c8bde6c9f7d6f7f02c48fe6cb350d4b3a7ee3b7e7d6c8e35b928c98c0a52fcaca4dfdc81ae36bd793f8e52671
6
+ metadata.gz: d48722bc4ac4a6586cf5e5c23420df6bdf16c7223e483fd3ae2a155dada39303cbec7cf97cbe0c05fc22e02201517135fa959d1bfd4f144c5e65d2544f713cf0
7
+ data.tar.gz: 136c18d8db07087a89137faed53c5e11009e85ddf4fa331ca16235e88d6c279ae6ea6b2196b1957d3c9f6d0a82705ba4a9527c11dc2589ab0bc65eb178b90d4d
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Croudia
2
2
 
3
+ [![Build Status](https://travis-ci.org/wktk/croudia-gem.png)](https://travis-ci.org/wktk/croudia-gem)
4
+
3
5
  A Ruby Wapper for the [Croudia](https://croudia.com) API
4
6
 
5
7
  ## Installation
@@ -0,0 +1,53 @@
1
+ require 'croudia/user'
2
+
3
+ module Croudia
4
+ module API
5
+ module Friendships
6
+ # Follow a user
7
+ #
8
+ # @param user [String. Integer, Croudia::User]
9
+ # @param params [Hash] Optional params
10
+ # @return [Croudia::User] Followed user
11
+ def follow(user, params={})
12
+ case user
13
+ when Hash
14
+ params.merge!(user)
15
+ when String
16
+ params[:screen_name] = user
17
+ when Integer
18
+ params[:user_id] = user
19
+ when Croudia::User
20
+ params[:user_id] = user.id_str
21
+ else
22
+ raise ArgumentError, 'user must be a String, Integer or User'
23
+ end
24
+
25
+ resp = post('/friendships/create.json', params)
26
+ Croudia::User.new(resp)
27
+ end
28
+
29
+ # Unfollow a user
30
+ #
31
+ # @param user [String, Integer, Croudia::User]
32
+ # @param params
33
+ # @return [Croudia::User] Unfollowed user
34
+ def unfollow(user, params={})
35
+ case user
36
+ when Hash
37
+ params.merge!(user)
38
+ when String
39
+ params[:screen_name] = user
40
+ when Integer
41
+ params[:user_id] = user
42
+ when Croudia::user
43
+ params[:user_id] = user.id_str
44
+ else
45
+ raise ArgumentError, 'user must be a String, Integer or User'
46
+ end
47
+
48
+ resp = post('/friendships/destroy.json', params)
49
+ Croudia::User.new(resp)
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,30 @@
1
+ require 'croudia/user'
2
+
3
+ module Croudia
4
+ module API
5
+ module Users
6
+ # Retrieve a user
7
+ #
8
+ # @param user [String, Integer, Croudia::User]
9
+ # @param params [Hash] Optional params
10
+ # @return [Croudia::User]
11
+ def user(user, params={})
12
+ case user
13
+ when Hash
14
+ params.merge!(user)
15
+ when String
16
+ params[:screen_name] = user
17
+ when Integer
18
+ params[:user_id] = user
19
+ when Croudia::User
20
+ params[:user_id] = user.id_str
21
+ else
22
+ raise ArgumentError, 'user must be a String, Integer or User'
23
+ end
24
+
25
+ resp = get('/users/show.json', params)
26
+ Croudia::User.new(resp)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,8 +1,10 @@
1
1
  require 'croudia/api/account'
2
2
  require 'croudia/api/favorites'
3
+ require 'croudia/api/friendships'
3
4
  require 'croudia/api/oauth'
4
5
  require 'croudia/api/statuses'
5
6
  require 'croudia/api/timelines'
7
+ require 'croudia/api/users'
6
8
  require 'croudia/configurable'
7
9
  require 'croudia/ext/openssl'
8
10
  require 'croudia/version'
@@ -12,9 +14,11 @@ module Croudia
12
14
  class Client
13
15
  include Croudia::API::Account
14
16
  include Croudia::API::Favorites
17
+ include Croudia::API::Friendships
15
18
  include Croudia::API::OAuth
16
19
  include Croudia::API::Statuses
17
20
  include Croudia::API::Timelines
21
+ include Croudia::API::Users
18
22
  include Croudia::Configurable
19
23
 
20
24
  # Initialize a new Client object
@@ -6,10 +6,10 @@ module Croudia
6
6
  class Status < Croudia::Identity
7
7
  include Croudia::Creatable
8
8
 
9
- attr_reader :favorited, :favorite_count,
9
+ attr_reader :favorited, :favorited_count,
10
10
  :in_reply_to_screen_name, :in_reply_to_status_id_str,
11
11
  :in_reply_to_status_id, :in_reply_to_user_id_str,
12
- :in_reply_to_user_id, :spread_count,
12
+ :in_reply_to_user_id, :spread, :spread_count, :spread_status,
13
13
  :play_spread, :play_spread_status, :reply_status, :source,
14
14
  :text, :user
15
15
 
@@ -17,10 +17,12 @@ module Croudia
17
17
  user = attrs.delete('user')
18
18
  pss = attrs.delete('play_spread_status')
19
19
  reply_status = attrs.delete('reply_status')
20
+ spread_status = attrs.delete('spread_status')
20
21
  super(attrs)
21
22
  @attrs['user'] = Croudia::User.new(user) if user
22
23
  @attrs['play_spread_status'] = Croudia::Status.new(pss) if pss
23
24
  @attrs['reply_status'] = Croudia::Status.new(reply_status) if reply_status
25
+ @attrs['spread_status'] = Croudia::Status.new(spread_status) if spread_status
24
26
  end
25
27
  end
26
28
  end
@@ -1,3 +1,3 @@
1
1
  module Croudia
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -0,0 +1,87 @@
1
+ require 'helper'
2
+
3
+ describe Croudia::API::Friendships do
4
+ before do
5
+ @client = Croudia::Client.new
6
+ end
7
+
8
+ describe '#follow' do
9
+ before do
10
+ stub_post('/friendships/create.json').to_return(
11
+ body: fixture(:user),
12
+ headers: { content_type: 'application/json; chrset=utf-8' }
13
+ )
14
+ end
15
+
16
+ context 'when string is passed' do
17
+ it 'requests the correct resource' do
18
+ @client.follow('wktk')
19
+ expect(a_post('/friendships/create.json').with(
20
+ body: { screen_name: 'wktk' }
21
+ )).to have_been_made
22
+ end
23
+ end
24
+
25
+ context 'when integer is passed' do
26
+ it 'requests the correct resource' do
27
+ @client.follow(1234)
28
+ expect(a_post('/friendships/create.json').with(
29
+ body: { user_id: '1234' }
30
+ )).to have_been_made
31
+ end
32
+ end
33
+
34
+ context 'when hash is passed' do
35
+ it 'requests the correct resource' do
36
+ @client.follow(screen_name: 'wktk')
37
+ expect(a_post('/friendships/create.json').with(
38
+ body: { screen_name: 'wktk' }
39
+ )).to have_been_made
40
+ end
41
+ end
42
+
43
+ it 'returns User object' do
44
+ expect(@client.follow('wktk')).to be_a Croudia::User
45
+ end
46
+ end
47
+
48
+ describe '#unfollow' do
49
+ before do
50
+ stub_post('/friendships/destroy.json').to_return(
51
+ body: fixture(:user),
52
+ headers: { content_type: 'application/json; charset=utf-8' }
53
+ )
54
+ end
55
+
56
+ context 'when string is passed' do
57
+ it 'requests the correct resource' do
58
+ @client.unfollow('wktk')
59
+ expect(a_post('/friendships/destroy.json').with(
60
+ body: { screen_name: 'wktk' }
61
+ )).to have_been_made
62
+ end
63
+ end
64
+
65
+ context 'when integer is passed' do
66
+ it 'requests the correct resource' do
67
+ @client.unfollow(1234)
68
+ expect(a_post('/friendships/destroy.json').with(
69
+ body: { user_id: '1234' }
70
+ )).to have_been_made
71
+ end
72
+ end
73
+
74
+ context 'when hash is passed' do
75
+ it 'requests the correct resource' do
76
+ @client.unfollow(screen_name: 'wktk')
77
+ expect(a_post('/friendships/destroy.json').with(
78
+ body: { screen_name: 'wktk' }
79
+ )).to have_been_made
80
+ end
81
+ end
82
+
83
+ it 'returns User object' do
84
+ expect(@client.unfollow('wktk')).to be_a Croudia::User
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,56 @@
1
+ require 'helper'
2
+
3
+ describe Croudia::API::Users do
4
+ before do
5
+ @client = Croudia::Client.new
6
+ end
7
+
8
+ describe '#user' do
9
+ before do
10
+ stub_get('/users/show.json').with(
11
+ query: { screen_name: 'wktk' }
12
+ ).to_return(
13
+ body: fixture(:user),
14
+ headers: { content_type: 'application/json; chrset=utf-8' }
15
+ )
16
+
17
+ stub_get('/users/show.json').with(
18
+ query: { user_id: 1234 }
19
+ ).to_return(
20
+ body: fixture(:user),
21
+ headers: { content_type: 'application/json; chrset=utf-8' }
22
+ )
23
+ end
24
+
25
+ context 'when string is passed' do
26
+ it 'requests the correct resource' do
27
+ @client.user('wktk')
28
+ expect(a_get('/users/show.json').with(
29
+ query: { screen_name: 'wktk' }
30
+ )).to have_been_made
31
+ end
32
+ end
33
+
34
+ context 'when integer is passed' do
35
+ it 'requests the correct resource' do
36
+ @client.user(1234)
37
+ expect(a_get('/users/show.json').with(
38
+ query: { user_id: 1234 }
39
+ )).to have_been_made
40
+ end
41
+ end
42
+
43
+ context 'when hash is passed' do
44
+ it 'requests the correct resource' do
45
+ @client.user(screen_name: 'wktk')
46
+ expect(a_get('/users/show.json').with(
47
+ query: { screen_name: 'wktk' }
48
+ )).to have_been_made
49
+ end
50
+ end
51
+
52
+ it 'returns User object' do
53
+ expect(@client.user('wktk')).to be_a Croudia::User
54
+ end
55
+ end
56
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croudia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - wktk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-12 00:00:00.000000000 Z
11
+ date: 2013-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -102,6 +102,7 @@ extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
104
  - .gitignore
105
+ - .travis.yml
105
106
  - Gemfile
106
107
  - LICENSE
107
108
  - README.md
@@ -111,9 +112,11 @@ files:
111
112
  - lib/croudia/access_token.rb
112
113
  - lib/croudia/api/account.rb
113
114
  - lib/croudia/api/favorites.rb
115
+ - lib/croudia/api/friendships.rb
114
116
  - lib/croudia/api/oauth.rb
115
117
  - lib/croudia/api/statuses.rb
116
118
  - lib/croudia/api/timelines.rb
119
+ - lib/croudia/api/users.rb
117
120
  - lib/croudia/base.rb
118
121
  - lib/croudia/client.rb
119
122
  - lib/croudia/configurable.rb
@@ -126,9 +129,11 @@ files:
126
129
  - lib/croudia/version.rb
127
130
  - spec/croudia/api/account_spec.rb
128
131
  - spec/croudia/api/favorites_spec.rb
132
+ - spec/croudia/api/friendships_spec.rb
129
133
  - spec/croudia/api/oauth_spec.rb
130
134
  - spec/croudia/api/statuses_spec.rb
131
135
  - spec/croudia/api/timelines_spec.rb
136
+ - spec/croudia/api/user_spec.rb
132
137
  - spec/croudia/base_spec.rb
133
138
  - spec/croudia/client_spec.rb
134
139
  - spec/croudia/identity_spec.rb
@@ -167,9 +172,11 @@ summary: Croudia API
167
172
  test_files:
168
173
  - spec/croudia/api/account_spec.rb
169
174
  - spec/croudia/api/favorites_spec.rb
175
+ - spec/croudia/api/friendships_spec.rb
170
176
  - spec/croudia/api/oauth_spec.rb
171
177
  - spec/croudia/api/statuses_spec.rb
172
178
  - spec/croudia/api/timelines_spec.rb
179
+ - spec/croudia/api/user_spec.rb
173
180
  - spec/croudia/base_spec.rb
174
181
  - spec/croudia/client_spec.rb
175
182
  - spec/croudia/identity_spec.rb