croudia 0.0.2 → 1.0.0

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.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/README.md +31 -14
  4. data/Rakefile +11 -11
  5. data/croudia.gemspec +10 -8
  6. data/lib/croudia/api/favorites.rb +43 -0
  7. data/lib/croudia/api/oauth.rb +32 -0
  8. data/lib/croudia/api/statuses.rb +55 -0
  9. data/lib/croudia/api/timelines.rb +57 -0
  10. data/lib/croudia/base.rb +44 -0
  11. data/lib/croudia/client.rb +64 -0
  12. data/lib/croudia/configurable.rb +39 -0
  13. data/lib/croudia/creatable.rb +9 -0
  14. data/lib/croudia/default.rb +63 -0
  15. data/lib/croudia/ext/openssl.rb +19 -0
  16. data/lib/croudia/identity.rb +22 -39
  17. data/lib/croudia/status.rb +26 -0
  18. data/lib/croudia/user.rb +12 -43
  19. data/lib/croudia/version.rb +1 -1
  20. data/lib/croudia.rb +21 -12
  21. data/spec/croudia/api/favorites_spec.rb +35 -0
  22. data/spec/croudia/api/oauth_spec.rb +53 -0
  23. data/spec/croudia/api/statuses_spec.rb +73 -0
  24. data/spec/croudia/api/timelines_spec.rb +93 -0
  25. data/spec/croudia/base_spec.rb +27 -0
  26. data/spec/croudia/client_spec.rb +115 -0
  27. data/spec/croudia/identity_spec.rb +29 -65
  28. data/spec/croudia/status_spec.rb +30 -0
  29. data/spec/croudia/user_spec.rb +30 -43
  30. data/spec/croudia_spec.rb +48 -49
  31. data/spec/fixtures/access_token.json +6 -0
  32. data/spec/fixtures/status.json +1 -0
  33. data/spec/fixtures/timeline.json +1 -0
  34. data/spec/helper.rb +49 -32
  35. metadata +80 -84
  36. data/lib/croudia/api.rb +0 -5
  37. data/lib/croudia/error.rb +0 -5
  38. data/lib/croudia/scraper/friendships.rb +0 -72
  39. data/lib/croudia/scraper/login.rb +0 -42
  40. data/lib/croudia/scraper/parser/users.rb +0 -59
  41. data/lib/croudia/scraper/parser/voices.rb +0 -32
  42. data/lib/croudia/scraper/parser.rb +0 -13
  43. data/lib/croudia/scraper/users.rb +0 -20
  44. data/lib/croudia/scraper/voices.rb +0 -59
  45. data/lib/croudia/scraper.rb +0 -63
  46. data/lib/croudia/voice.rb +0 -21
  47. data/spec/croudia/api_spec.rb +0 -7
  48. data/spec/croudia/error_spec.rb +0 -13
  49. data/spec/croudia/scraper/friendships_spec.rb +0 -115
  50. data/spec/croudia/scraper/login_spec.rb +0 -137
  51. data/spec/croudia/scraper/parser/users_spec.rb +0 -292
  52. data/spec/croudia/scraper/parser/voices_spec.rb +0 -119
  53. data/spec/croudia/scraper/users_spec.rb +0 -78
  54. data/spec/croudia/scraper/voices_spec.rb +0 -178
  55. data/spec/croudia/scraper_spec.rb +0 -120
  56. data/spec/croudia/version_spec.rb +0 -7
  57. data/spec/croudia/voice_spec.rb +0 -16
  58. data/spec/fixtures/follow_request.html +0 -69
  59. data/spec/fixtures/follower_wktk.html +0 -89
  60. data/spec/fixtures/following_wktk.html +0 -89
  61. data/spec/fixtures/user_wktk1.html +0 -72
  62. data/spec/fixtures/user_wktk2.html +0 -75
  63. data/spec/fixtures/user_wktk3.html +0 -83
  64. data/spec/fixtures/voices_reply_list.html +0 -55
  65. data/spec/fixtures/voices_timeline.html +0 -60
  66. data/spec/fixtures/voices_written.html +0 -20
@@ -1,43 +1,30 @@
1
- require 'helper'
2
-
3
- describe Croudia::User do
4
- describe '#to_s' do
5
- it 'returns username' do
6
- Croudia::User.new(:username => 'wktk').to_s.should eq 'wktk'
7
- end
8
- end
9
-
10
- describe '#initialize' do
11
- it 'sets @username as @id' do
12
- Croudia::User.new(:username => 'wktk').id.should eq 'wktk'
13
- end
14
-
15
- it 'converts spreadia into an Integer' do
16
- Croudia::User.new(:spreadia => '10').spreadia.should eq 10
17
- end
18
-
19
- it 'converts favodia into an Integer' do
20
- Croudia::User.new(:spreadia => '11').spreadia.should eq 11
21
- end
22
- end
23
-
24
- describe '#==' do
25
- it 'returns true if usernames are the same' do
26
- user1 = Croudia::User.new(:username => 'wktk', :name => 'wktk')
27
- user2 = Croudia::User.new(:username => 'wktk', :name => 'wktk!!')
28
- (user1 == user2).should be_true
29
- end
30
-
31
- it 'returns false if usernames are different' do
32
- user1 = Croudia::User.new(:username => 'wktk', :name => 'wktk')
33
- user2 = Croudia::User.new(:username => 'croudia', :name => 'wktk')
34
- (user1 == user2).should be_false
35
- end
36
-
37
- it 'returns false if classes are different' do
38
- user1 = Croudia::User.new(:username => 'wktk', :name => 'wktk')
39
- user2 = { :username => 'wktk', :name => 'wktk' }
40
- (user1 == user2).should be_false
41
- end
42
- end
43
- end
1
+ require 'helper'
2
+
3
+ describe Croudia::User do
4
+ describe '#==' do
5
+ it 'returns true when objects IDs are the same' do
6
+ user = Croudia::User.new(id: 1, name: 'hoge')
7
+ other = Croudia::User.new(id: 1, name: 'fuga')
8
+ expect(user == other).to be_true
9
+ end
10
+
11
+ it 'returns false when objects IDs are different' do
12
+ user = Croudia::User.new(id: 1)
13
+ other = Croudia::User.new(id: 2)
14
+ expect(user == other).to be_false
15
+ end
16
+
17
+ it 'returns false when classes are different' do
18
+ user = Croudia::User.new(id: 1)
19
+ other = Croudia::Identity.new(id: 1)
20
+ expect(user == other).to be_false
21
+ end
22
+ end
23
+
24
+ describe '#created_at' do
25
+ it 'returns a Time' do
26
+ user = Croudia::User.new(id: 3, created_at: 'Mon, 08 2013 01:23:45 +0900')
27
+ expect(user.created_at).to be_a Time
28
+ end
29
+ end
30
+ end
data/spec/croudia_spec.rb CHANGED
@@ -1,49 +1,48 @@
1
- require 'helper'
2
-
3
- describe Croudia do
4
- context 'when delegating to Croudia::Scraper' do
5
- before do
6
- stub_get('/wktk').to_return(:body => fixture('user_wktk1'),
7
- :headers => { :content_type => 'text/html' })
8
- end
9
-
10
- it 'should get the correct resource' do
11
- Croudia.user('wktk')
12
- a_get('/wktk').should have_been_made
13
- end
14
-
15
- it 'returns the same result to Croudia::Scraper' do
16
- Croudia.user('wktk').should eq Croudia::Scraper.new.user('wktk')
17
- end
18
- end
19
-
20
- describe '.scraper' do
21
- it 'returns a Croudia::Scraper' do
22
- Croudia.scraper.should be_a Croudia::Scraper
23
- end
24
- end
25
-
26
- describe '.new' do
27
- it 'returns a Croudia::Scraper' do
28
- Croudia.new.should be_a Croudia::Scraper
29
- end
30
- end
31
-
32
- describe '.client' do
33
- it 'returns a Croudia::Scraper' do
34
- Croudia.client.should be_a Croudia::Scraper
35
- end
36
- end
37
-
38
- describe '.respond_to?' do
39
- it 'delegates to Croudia::Scraper' do
40
- Croudia.respond_to?(:user).should be_true
41
- end
42
- end
43
-
44
- describe '.endpoint' do
45
- it 'returns the default endpoint' do
46
- Croudia.endpoint.should eq 'https://croudia.com'
47
- end
48
- end
49
- end
1
+ require 'helper'
2
+
3
+ describe Croudia do
4
+ context 'when delegating to Croudia::Client' do
5
+ before do
6
+ stub_get('/statuses/public_timeline.json').to_return(
7
+ body: fixture('timeline'),
8
+ headers: { content_type: 'application/json; charset_utf-8' }
9
+ )
10
+ end
11
+
12
+ it 'requests the correct resource' do
13
+ Croudia.public_timeline
14
+ expect(a_get('/statuses/public_timeline.json')).to have_been_made
15
+ end
16
+
17
+ it 'returns the same result to Croudia::Client' do
18
+ expect(Croudia.public_timeline).to eq Croudia::Client.new.public_timeline
19
+ end
20
+ end
21
+
22
+ describe '.client' do
23
+ it 'returns a Croudia::Client' do
24
+ expect(Croudia.client).to be_a Croudia::Client
25
+ end
26
+ end
27
+
28
+ describe '.respond_to?' do
29
+ it 'delegates to Croudia::Client' do
30
+ expect(Croudia.respond_to?(:public_timeline)).to be_true
31
+ end
32
+ end
33
+
34
+ describe '.configure' do
35
+ after do
36
+ Croudia.reset!
37
+ end
38
+
39
+ Croudia::Configurable.keys.each do |key|
40
+ it "sets the #{key}" do
41
+ Croudia.configure do |config|
42
+ config.send("#{key}=", key)
43
+ end
44
+ expect(Croudia.instance_variable_get(:"@#{key}")).to eq key
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "access_token": "access_token_value",
3
+ "token_type": "Bearer",
4
+ "expires_in": 3600,
5
+ "refresh_token": "refresh_token_value"
6
+ }
@@ -0,0 +1 @@
1
+ {"id":1228014,"id_str":"1228014","text":"さっき誤字してた……","created_at":"Tue, 25 Jun 2013 23:58:43 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}}
@@ -0,0 +1 @@
1
+ [{"id":1228014,"id_str":"1228014","text":"さっき誤字してた……","created_at":"Tue, 25 Jun 2013 23:58:43 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1228009,"id_str":"1228009","text":":;(∩´﹏`∩);:","created_at":"Tue, 25 Jun 2013 23:58:15 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1228005,"id_str":"1228005","text":"ウッバス酔いが","created_at":"Tue, 25 Jun 2013 23:57:39 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1228003,"id_str":"1228003","text":"PublicTimeline が search の分類なのはちょっと感覚に合わないな……:;(∩´﹏`∩);:","created_at":"Tue, 25 Jun 2013 23:57:18 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1227986,"id_str":"1227986","text":"PublicTimeline 開くのに手間取った、あまりフォローしてないの便利なのに推さない方向なのかな","created_at":"Tue, 25 Jun 2013 23:54:44 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1227954,"id_str":"1227954","text":"夜行バスで東京に戻ってる、こっちには結局 80 日ちょっとの滞在だった","created_at":"Tue, 25 Jun 2013 23:51:21 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1227949,"id_str":"1227949","text":"アプリ認証じゃなくてアプリ認可では (ボソッ","created_at":"Tue, 25 Jun 2013 23:50:27 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":1064197,"id_str":"1064197","text":"@utagawakiki ごめんなさい、あれは API じゃなくて HTML を解析してやってるんです:;(∩´﹏`∩);: 放置してるので動かなくなってると思います","created_at":"Sun, 14 Apr 2013 12:42:30 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":602151,"id_str":"602151","text":"PublicTimeline こわい","created_at":"Tue, 25 Dec 2012 03:08:55 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":597996,"id_str":"597996","text":"Ruby から Croudia できるやつ作ってる","created_at":"Sun, 23 Dec 2012 22:33:06 +0900","favorited":false,"favorited_count":2,"spread":false,"spread_count":1,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":589475,"id_str":"589475","text":"自分の Croudia の user_id は 7987 っぽい","created_at":"Fri, 21 Dec 2012 12:00:09 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":587093,"id_str":"587093","text":"久々に Croudia 見に来た","created_at":"Thu, 20 Dec 2012 10:03:36 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":490289,"id_str":"490289","text":"スマホからは初めて Croudia 開いたけど、PC と比べてこっちの方が見やすい","created_at":"Wed, 07 Nov 2012 20:11:27 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":469356,"id_str":"469356","text":"ねむい","created_at":"Fri, 26 Oct 2012 06:27:54 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":464990,"id_str":"464990","text":"そういえばログイン画面にある画像もネコである","created_at":"Tue, 23 Oct 2012 20:54:13 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":464976,"id_str":"464976","text":"Croudia の Cr ネコ、Twitter でいう Twitter bird みたいな立場なのかな","created_at":"Tue, 23 Oct 2012 20:51:15 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":464427,"id_str":"464427","text":"とりあえず Basic 認証でいいので API 欲しい #要望リスト","created_at":"Tue, 23 Oct 2012 17:06:32 +0900","favorited":false,"favorited_count":1,"spread":false,"spread_count":1,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":453717,"id_str":"453717","text":"ツイ禁始めたので Croudia に遊びにきた","created_at":"Thu, 18 Oct 2012 19:19:27 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":446854,"id_str":"446854","text":"Twitter で fav 規制されたので久々に Croudia 見にきた","created_at":"Sun, 14 Oct 2012 12:50:19 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}},{"id":352215,"id_str":"352215","text":"昨日雨降ってたの気づかなかった","created_at":"Sun, 02 Sep 2012 11:07:18 +0900","favorited":false,"favorited_count":0,"spread":false,"spread_count":0,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"source":"underdevelopment","user":{"id":7987,"id_str":"7987","name":"wktk","screen_name":"wktk","profile_image_url_https":"https://croudia.com/testimages/download/9423","created_at":"Sun, 29 Jul 2012 19:21:21 +0900","description":"気軽に fav ります。Twitter でも @wktk です。 \r\nhttps://twitter.com/wktk\r\nhttps://github.com/wktk","favorites_count":68,"follow_request_sent":"underdevelopment","followers_count":12,"following":"underdevelopment","friends_count":11,"location":"Japan","statuses_count":26,"protected":false,"url":"http://wktk.jp/"}}]
data/spec/helper.rb CHANGED
@@ -1,32 +1,49 @@
1
- require 'croudia'
2
- require 'rspec'
3
- require 'webmock/rspec'
4
-
5
- def a_get(path)
6
- a_request(:get, Croudia.endpoint + path)
7
- end
8
-
9
- def a_post(path)
10
- a_request(:post, Croudia.endpoint + path)
11
- end
12
-
13
- def stub_any(path)
14
- stub_request(:any, Croudia.endpoint + path)
15
- end
16
-
17
- def stub_get(path)
18
- stub_request(:get, Croudia.endpoint + path)
19
- end
20
-
21
- def stub_post(path)
22
- stub_request(:post, Croudia.endpoint + path)
23
- end
24
-
25
- def fixture_path
26
- File.expand_path('../fixtures', __FILE__)
27
- end
28
-
29
- def fixture(file)
30
- file += '.html' unless file.include? '.'
31
- File.new(fixture_path + '/' + file)
32
- end
1
+ require 'croudia'
2
+ require 'rspec'
3
+ require 'webmock/rspec'
4
+
5
+ def a_get(path)
6
+ a_request(:get, Croudia::Default::ENDPOINT + path)
7
+ end
8
+
9
+ def a_post(path)
10
+ a_request(:post, Croudia::Default::ENDPOINT + path)
11
+ end
12
+
13
+ def a_put(path)
14
+ a_request(:put, Croudia::Default::ENDPOINT + path)
15
+ end
16
+
17
+ def a_delete(path)
18
+ a_request(:delete, Croudia::Default::ENDPOINT + path)
19
+ end
20
+
21
+ def stub_any(path)
22
+ stub_request(:any, Croudia::Default::ENDPOINT + path)
23
+ end
24
+
25
+ def stub_get(path)
26
+ stub_request(:get, Croudia::Default::ENDPOINT + path)
27
+ end
28
+
29
+ def stub_post(path)
30
+ stub_request(:post, Croudia::Default::ENDPOINT + path)
31
+ end
32
+
33
+ def stub_put(path)
34
+ stub_request(:put, Croudia::Default::ENDPOINT + path)
35
+ end
36
+
37
+ def stub_delete(path)
38
+ stub_request(:delete, Croudia::Default::ENDPOINT + path)
39
+ end
40
+
41
+ def fixture_path
42
+ File.expand_path('../fixtures', __FILE__)
43
+ end
44
+
45
+ def fixture(file)
46
+ file = file.to_s
47
+ file += '.json' unless file.include? '.'
48
+ File.new(fixture_path + '/' + file)
49
+ end
metadata CHANGED
@@ -1,99 +1,116 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croudia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - wktk
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-18 00:00:00.000000000 Z
11
+ date: 2013-07-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: mechanize
14
+ name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 2.5.1
19
+ version: 0.8.7
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 2.5.1
26
+ version: 0.8.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.0.5
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.0.5
30
55
  - !ruby/object:Gem::Dependency
31
56
  name: rake
32
57
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
58
  requirements:
35
59
  - - ~>
36
60
  - !ruby/object:Gem::Version
37
- version: 0.9.2.2
61
+ version: 10.1.0
38
62
  type: :development
39
63
  prerelease: false
40
64
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
65
  requirements:
43
66
  - - ~>
44
67
  - !ruby/object:Gem::Version
45
- version: 0.9.2.2
68
+ version: 10.1.0
46
69
  - !ruby/object:Gem::Dependency
47
70
  name: rdoc
48
71
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
72
  requirements:
51
73
  - - ~>
52
74
  - !ruby/object:Gem::Version
53
- version: '3.12'
75
+ version: 4.0.1
54
76
  type: :development
55
77
  prerelease: false
56
78
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
79
  requirements:
59
80
  - - ~>
60
81
  - !ruby/object:Gem::Version
61
- version: '3.12'
82
+ version: 4.0.1
62
83
  - !ruby/object:Gem::Dependency
63
84
  name: rspec
64
85
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
86
  requirements:
67
87
  - - ~>
68
88
  - !ruby/object:Gem::Version
69
- version: 2.12.0
89
+ version: 2.14.0
70
90
  type: :development
71
91
  prerelease: false
72
92
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
93
  requirements:
75
94
  - - ~>
76
95
  - !ruby/object:Gem::Version
77
- version: 2.12.0
96
+ version: 2.14.0
78
97
  - !ruby/object:Gem::Dependency
79
98
  name: webmock
80
99
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
100
  requirements:
83
101
  - - ~>
84
102
  - !ruby/object:Gem::Version
85
- version: 1.8.7
103
+ version: 1.13.0
86
104
  type: :development
87
105
  prerelease: false
88
106
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
107
  requirements:
91
108
  - - ~>
92
109
  - !ruby/object:Gem::Version
93
- version: 1.8.7
94
- description: A Mechanize-based scraper for Croudia
110
+ version: 1.13.0
111
+ description: Ruby Wrapper for the Croudia API
95
112
  email:
96
- - wktk@wktk.in
113
+ - mail@wktk.jp
97
114
  executables: []
98
115
  extensions: []
99
116
  extra_rdoc_files: []
@@ -105,90 +122,69 @@ files:
105
122
  - Rakefile
106
123
  - croudia.gemspec
107
124
  - lib/croudia.rb
108
- - lib/croudia/api.rb
109
- - lib/croudia/error.rb
125
+ - lib/croudia/api/favorites.rb
126
+ - lib/croudia/api/oauth.rb
127
+ - lib/croudia/api/statuses.rb
128
+ - lib/croudia/api/timelines.rb
129
+ - lib/croudia/base.rb
130
+ - lib/croudia/client.rb
131
+ - lib/croudia/configurable.rb
132
+ - lib/croudia/creatable.rb
133
+ - lib/croudia/default.rb
134
+ - lib/croudia/ext/openssl.rb
110
135
  - lib/croudia/identity.rb
111
- - lib/croudia/scraper.rb
112
- - lib/croudia/scraper/friendships.rb
113
- - lib/croudia/scraper/login.rb
114
- - lib/croudia/scraper/parser.rb
115
- - lib/croudia/scraper/parser/users.rb
116
- - lib/croudia/scraper/parser/voices.rb
117
- - lib/croudia/scraper/users.rb
118
- - lib/croudia/scraper/voices.rb
136
+ - lib/croudia/status.rb
119
137
  - lib/croudia/user.rb
120
138
  - lib/croudia/version.rb
121
- - lib/croudia/voice.rb
122
- - spec/croudia/api_spec.rb
123
- - spec/croudia/error_spec.rb
139
+ - spec/croudia/api/favorites_spec.rb
140
+ - spec/croudia/api/oauth_spec.rb
141
+ - spec/croudia/api/statuses_spec.rb
142
+ - spec/croudia/api/timelines_spec.rb
143
+ - spec/croudia/base_spec.rb
144
+ - spec/croudia/client_spec.rb
124
145
  - spec/croudia/identity_spec.rb
125
- - spec/croudia/scraper/friendships_spec.rb
126
- - spec/croudia/scraper/login_spec.rb
127
- - spec/croudia/scraper/parser/users_spec.rb
128
- - spec/croudia/scraper/parser/voices_spec.rb
129
- - spec/croudia/scraper/users_spec.rb
130
- - spec/croudia/scraper/voices_spec.rb
131
- - spec/croudia/scraper_spec.rb
146
+ - spec/croudia/status_spec.rb
132
147
  - spec/croudia/user_spec.rb
133
- - spec/croudia/version_spec.rb
134
- - spec/croudia/voice_spec.rb
135
148
  - spec/croudia_spec.rb
136
- - spec/fixtures/follow_request.html
137
- - spec/fixtures/follower_wktk.html
138
- - spec/fixtures/following_wktk.html
139
- - spec/fixtures/user_wktk1.html
140
- - spec/fixtures/user_wktk2.html
141
- - spec/fixtures/user_wktk3.html
142
- - spec/fixtures/voices_reply_list.html
143
- - spec/fixtures/voices_timeline.html
144
- - spec/fixtures/voices_written.html
149
+ - spec/fixtures/access_token.json
150
+ - spec/fixtures/status.json
151
+ - spec/fixtures/timeline.json
145
152
  - spec/helper.rb
146
153
  homepage: https://github.com/wktk/croudia-gem
147
154
  licenses: []
155
+ metadata: {}
148
156
  post_install_message:
149
157
  rdoc_options: []
150
158
  require_paths:
151
159
  - lib
152
160
  required_ruby_version: !ruby/object:Gem::Requirement
153
- none: false
154
161
  requirements:
155
- - - ! '>='
162
+ - - '>='
156
163
  - !ruby/object:Gem::Version
157
164
  version: '0'
158
165
  required_rubygems_version: !ruby/object:Gem::Requirement
159
- none: false
160
166
  requirements:
161
- - - ! '>='
167
+ - - '>='
162
168
  - !ruby/object:Gem::Version
163
169
  version: '0'
164
170
  requirements: []
165
171
  rubyforge_project:
166
- rubygems_version: 1.8.24
172
+ rubygems_version: 2.0.3
167
173
  signing_key:
168
- specification_version: 3
169
- summary: Croudia scraper
174
+ specification_version: 4
175
+ summary: Croudia API
170
176
  test_files:
171
- - spec/croudia/api_spec.rb
172
- - spec/croudia/error_spec.rb
177
+ - spec/croudia/api/favorites_spec.rb
178
+ - spec/croudia/api/oauth_spec.rb
179
+ - spec/croudia/api/statuses_spec.rb
180
+ - spec/croudia/api/timelines_spec.rb
181
+ - spec/croudia/base_spec.rb
182
+ - spec/croudia/client_spec.rb
173
183
  - spec/croudia/identity_spec.rb
174
- - spec/croudia/scraper/friendships_spec.rb
175
- - spec/croudia/scraper/login_spec.rb
176
- - spec/croudia/scraper/parser/users_spec.rb
177
- - spec/croudia/scraper/parser/voices_spec.rb
178
- - spec/croudia/scraper/users_spec.rb
179
- - spec/croudia/scraper/voices_spec.rb
180
- - spec/croudia/scraper_spec.rb
184
+ - spec/croudia/status_spec.rb
181
185
  - spec/croudia/user_spec.rb
182
- - spec/croudia/version_spec.rb
183
- - spec/croudia/voice_spec.rb
184
186
  - spec/croudia_spec.rb
185
- - spec/fixtures/follow_request.html
186
- - spec/fixtures/follower_wktk.html
187
- - spec/fixtures/following_wktk.html
188
- - spec/fixtures/user_wktk1.html
189
- - spec/fixtures/user_wktk2.html
190
- - spec/fixtures/user_wktk3.html
191
- - spec/fixtures/voices_reply_list.html
192
- - spec/fixtures/voices_timeline.html
193
- - spec/fixtures/voices_written.html
187
+ - spec/fixtures/access_token.json
188
+ - spec/fixtures/status.json
189
+ - spec/fixtures/timeline.json
194
190
  - spec/helper.rb
data/lib/croudia/api.rb DELETED
@@ -1,5 +0,0 @@
1
- module Croudia
2
- module API
3
- # Fingers crossed they will soon release their own ( '-^)b
4
- end
5
- end
data/lib/croudia/error.rb DELETED
@@ -1,5 +0,0 @@
1
- module Croudia
2
- class Error < StandardError; end
3
-
4
- class NotLoggedInError < Error; end
5
- end