croudia 1.0.2 → 1.0.3

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.
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