hypem 0.1.3 → 0.1.4
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.
- data/lib/exceptions.rb +4 -0
- data/lib/hypem.rb +1 -0
- data/lib/hypem/blog.rb +1 -2
- data/lib/hypem/playlist.rb +9 -10
- data/lib/hypem/request.rb +5 -5
- data/lib/hypem/response.rb +2 -2
- data/lib/hypem/user.rb +13 -11
- data/lib/hypem/version.rb +1 -1
- data/spec/blog_spec.rb +1 -1
- data/spec/playlist_spec.rb +6 -6
- data/spec/request_spec.rb +1 -1
- data/spec/response_spec.rb +16 -2
- metadata +16 -15
data/lib/exceptions.rb
ADDED
data/lib/hypem.rb
CHANGED
data/lib/hypem/blog.rb
CHANGED
@@ -14,11 +14,10 @@ module Hypem
|
|
14
14
|
|
15
15
|
def get_info
|
16
16
|
unless @has_info
|
17
|
-
response = Request.new("/api/get_site_info?siteid=#{@id}").get.response.body
|
17
|
+
response = Request.new("/api/get_site_info?siteid=#{@id}").tap(&:get).response.body
|
18
18
|
update_from_response(response)
|
19
19
|
@has_info = true
|
20
20
|
end
|
21
|
-
return self
|
22
21
|
end
|
23
22
|
|
24
23
|
def update_from_response(rsp)
|
data/lib/hypem/playlist.rb
CHANGED
@@ -14,24 +14,23 @@ module Hypem
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def get
|
17
|
-
response = Request.new(@path).get.response
|
17
|
+
response = Request.new(@path).tap(&:get).response
|
18
18
|
@tracks = []
|
19
19
|
# getting rid of version cell
|
20
20
|
response.body.shift
|
21
21
|
response.body.each_value{|v| @tracks << Track.new(v)}
|
22
|
-
return self
|
23
22
|
end
|
24
23
|
|
25
24
|
def next_page
|
26
|
-
Playlist.new(@type,@arg,@page+1).get
|
25
|
+
Playlist.new(@type,@arg,@page+1).tap(&:get)
|
27
26
|
end
|
28
27
|
|
29
28
|
def prev_page
|
30
|
-
Playlist.new(@type,@arg,@page-1).get
|
29
|
+
Playlist.new(@type,@arg,@page-1).tap(&:get)
|
31
30
|
end
|
32
31
|
|
33
32
|
def page(num)
|
34
|
-
Playlist.new(@type,@arg,num).get
|
33
|
+
Playlist.new(@type,@arg,num).tap(&:get)
|
35
34
|
end
|
36
35
|
|
37
36
|
def self.create_url(tracks)
|
@@ -42,21 +41,21 @@ module Hypem
|
|
42
41
|
end
|
43
42
|
|
44
43
|
def self.latest(page=nil)
|
45
|
-
Playlist.new(:time,:today,page).get
|
44
|
+
Playlist.new(:time,:today,page).tap(&:get)
|
46
45
|
end
|
47
46
|
|
48
47
|
def self.popular(arg=POPULAR_ARGS.first,page=nil)
|
49
48
|
arg = arg.to_sym if arg.is_a? String
|
50
49
|
raise ArgumentError unless POPULAR_ARGS.include?(arg)
|
51
|
-
Playlist.new(:popular,arg,page).get
|
50
|
+
Playlist.new(:popular,arg,page).tap(&:get)
|
52
51
|
end
|
53
52
|
|
54
53
|
def self.friends_history(user,page=nil)
|
55
|
-
Playlist.new(:people_history,user,page).get
|
54
|
+
Playlist.new(:people_history,user,page).tap(&:get)
|
56
55
|
end
|
57
56
|
|
58
57
|
def self.friends_favorites(user,page=nil)
|
59
|
-
Playlist.new(:people,user,page).get
|
58
|
+
Playlist.new(:people,user,page).tap(&:get)
|
60
59
|
end
|
61
60
|
|
62
61
|
def self.tags(list,page)
|
@@ -68,7 +67,7 @@ module Hypem
|
|
68
67
|
# meta method definitions for generic playlists
|
69
68
|
GENERIC_METHODS.each do |method|
|
70
69
|
define_singleton_method(method) do |arg,page=nil|
|
71
|
-
Playlist.new(method,arg,page).get
|
70
|
+
Playlist.new(method,arg,page).tap(&:get)
|
72
71
|
end
|
73
72
|
end
|
74
73
|
|
data/lib/hypem/request.rb
CHANGED
@@ -3,7 +3,6 @@ require 'faraday'
|
|
3
3
|
module Hypem
|
4
4
|
ROOT_PATH = 'http://hypem.com'
|
5
5
|
class Request
|
6
|
-
attr_accessor :response
|
7
6
|
attr_reader :url
|
8
7
|
|
9
8
|
def initialize(url)
|
@@ -11,9 +10,11 @@ module Hypem
|
|
11
10
|
end
|
12
11
|
|
13
12
|
def get
|
14
|
-
raw_response = connection.get(@url)
|
15
|
-
|
16
|
-
|
13
|
+
@raw_response = connection.get(@url)
|
14
|
+
end
|
15
|
+
|
16
|
+
def response
|
17
|
+
@response ||= Response.new(@raw_response)
|
17
18
|
end
|
18
19
|
|
19
20
|
private
|
@@ -21,7 +22,6 @@ module Hypem
|
|
21
22
|
def connection
|
22
23
|
@@conn ||= Faraday.new(url: ROOT_PATH) do |builder|
|
23
24
|
builder.request :url_encoded
|
24
|
-
#builder.response :logger
|
25
25
|
builder.adapter :net_http
|
26
26
|
end
|
27
27
|
end
|
data/lib/hypem/response.rb
CHANGED
data/lib/hypem/user.rb
CHANGED
@@ -10,7 +10,9 @@ module Hypem
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def api_request(path)
|
13
|
-
Request.new("/api/#{path}?username=#{@name}")
|
13
|
+
request = Request.new("/api/#{path}?username=#{@name}")
|
14
|
+
request.get
|
15
|
+
request.response.body
|
14
16
|
end
|
15
17
|
|
16
18
|
def get_profile
|
@@ -66,24 +68,24 @@ module Hypem
|
|
66
68
|
|
67
69
|
#playlist requests
|
68
70
|
|
69
|
-
def loved_playlist
|
70
|
-
@l_p ||= Playlist.loved(@name)
|
71
|
+
def loved_playlist(page=1)
|
72
|
+
@l_p ||= Playlist.loved(@name,page)
|
71
73
|
end
|
72
74
|
|
73
|
-
def obsessed_playlist
|
74
|
-
@o_p ||= Playlist.obsessed(@name)
|
75
|
+
def obsessed_playlist(page=1)
|
76
|
+
@o_p ||= Playlist.obsessed(@name,page)
|
75
77
|
end
|
76
78
|
|
77
|
-
def feed_playlist
|
78
|
-
@f_p ||= Playlist.feed(@name)
|
79
|
+
def feed_playlist(page=1)
|
80
|
+
@f_p ||= Playlist.feed(@name,page)
|
79
81
|
end
|
80
82
|
|
81
|
-
def friends_favorites_playlist
|
82
|
-
@f_f_p ||= Playlist.friends_favorites(@name)
|
83
|
+
def friends_favorites_playlist(page=1)
|
84
|
+
@f_f_p ||= Playlist.friends_favorites(@name,page)
|
83
85
|
end
|
84
86
|
|
85
|
-
def friends_history_playlist
|
86
|
-
@f_h_p ||= Playlist.friends_history(@name)
|
87
|
+
def friends_history_playlist(page=1)
|
88
|
+
@f_h_p ||= Playlist.friends_history(@name,page)
|
87
89
|
end
|
88
90
|
end
|
89
91
|
end
|
data/lib/hypem/version.rb
CHANGED
data/spec/blog_spec.rb
CHANGED
@@ -20,7 +20,7 @@ describe Hypem::Blog do
|
|
20
20
|
|
21
21
|
describe "#get_info" do
|
22
22
|
subject do
|
23
|
-
VCR.use_cassette('blog') {blog.get_info}
|
23
|
+
VCR.use_cassette('blog') {blog.tap(&:get_info)}
|
24
24
|
end
|
25
25
|
specify {subject.should be_a Hypem::Blog}
|
26
26
|
specify {subject.site_name.should == 'Pasta Primavera'}
|
data/spec/playlist_spec.rb
CHANGED
@@ -57,32 +57,32 @@ describe Hypem::Playlist do
|
|
57
57
|
before {Hypem::Playlist.stub_chain(:new, :get)}
|
58
58
|
|
59
59
|
it "converts strings to symbols" do
|
60
|
-
Hypem::Playlist.should_receive(:new).with(:popular,%s(3day))
|
60
|
+
Hypem::Playlist.should_receive(:new).with(:popular,%s(3day),anything)
|
61
61
|
Hypem::Playlist.popular('3day')
|
62
62
|
end
|
63
63
|
|
64
64
|
it "retrieves 3day by default" do
|
65
|
-
Hypem::Playlist.should_receive(:new).with(:popular,%s(3day))
|
65
|
+
Hypem::Playlist.should_receive(:new).with(:popular,%s(3day),anything)
|
66
66
|
Hypem::Playlist.popular
|
67
67
|
end
|
68
68
|
|
69
69
|
it "accepts lastweek" do
|
70
|
-
Hypem::Playlist.should_receive(:new).with(:popular,:lastweek)
|
70
|
+
Hypem::Playlist.should_receive(:new).with(:popular,:lastweek,anything)
|
71
71
|
Hypem::Playlist.popular(:lastweek)
|
72
72
|
end
|
73
73
|
|
74
74
|
it "accepts noremix" do
|
75
|
-
Hypem::Playlist.should_receive(:new).with(:popular,:noremix)
|
75
|
+
Hypem::Playlist.should_receive(:new).with(:popular,:noremix,anything)
|
76
76
|
Hypem::Playlist.popular(:noremix)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "accepts artists" do
|
80
|
-
Hypem::Playlist.should_receive(:new).with(:popular,:artists)
|
80
|
+
Hypem::Playlist.should_receive(:new).with(:popular,:artists,anything)
|
81
81
|
Hypem::Playlist.popular(:artists)
|
82
82
|
end
|
83
83
|
|
84
84
|
it "accepts twitter" do
|
85
|
-
Hypem::Playlist.should_receive(:new).with(:popular,:twitter)
|
85
|
+
Hypem::Playlist.should_receive(:new).with(:popular,:twitter,anything)
|
86
86
|
Hypem::Playlist.popular(:twitter)
|
87
87
|
end
|
88
88
|
|
data/spec/request_spec.rb
CHANGED
data/spec/response_spec.rb
CHANGED
@@ -3,12 +3,20 @@ require 'spec_helper'
|
|
3
3
|
describe Hypem::Response do
|
4
4
|
|
5
5
|
context "at initialization" do
|
6
|
-
let(:
|
6
|
+
let(:request) do
|
7
|
+
Hypem::Request.new('/playlist/latest/fresh/json/1')
|
8
|
+
end
|
9
|
+
|
10
|
+
let(:gotten_request) do
|
7
11
|
VCR.use_cassette('fresh_playlist') do
|
8
|
-
|
12
|
+
request.get
|
9
13
|
end
|
10
14
|
end
|
11
15
|
|
16
|
+
let(:response) do
|
17
|
+
described_class.new(gotten_request)
|
18
|
+
end
|
19
|
+
|
12
20
|
it "uses a raw response parameter" do
|
13
21
|
response.body.should_not be_nil
|
14
22
|
end
|
@@ -16,6 +24,12 @@ describe Hypem::Response do
|
|
16
24
|
it "assigns the body attribute" do
|
17
25
|
response.body.should be_a Hash
|
18
26
|
end
|
27
|
+
|
28
|
+
it "raises RequestError with null body" do
|
29
|
+
raw_response = double('RawResponse')
|
30
|
+
raw_response.stub(:body).and_return('null')
|
31
|
+
expect { described_class.new(raw_response) }.to raise_error Hypem::RequestError
|
32
|
+
end
|
19
33
|
end
|
20
34
|
|
21
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hypem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
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-05-
|
12
|
+
date: 2012-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70124648838920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '2.6'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70124648838920
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: vcr
|
27
|
-
requirement: &
|
27
|
+
requirement: &70124648838460 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70124648838460
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70124648838080 !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: *
|
46
|
+
version_requirements: *70124648838080
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: faraday
|
49
|
-
requirement: &
|
49
|
+
requirement: &70124648837540 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0.7'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70124648837540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: multi_json
|
60
|
-
requirement: &
|
60
|
+
requirement: &70124648837040 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '1.1'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70124648837040
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: hashie
|
71
|
-
requirement: &
|
71
|
+
requirement: &70124648836580 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '1.2'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70124648836580
|
80
80
|
description:
|
81
81
|
email:
|
82
82
|
- jackcanderson@gmail.com
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- fixtures/vcr_cassettes/user_friends.yml
|
105
105
|
- fixtures/vcr_cassettes/user_profile.yml
|
106
106
|
- hypem.gemspec
|
107
|
+
- lib/exceptions.rb
|
107
108
|
- lib/hypem.rb
|
108
109
|
- lib/hypem/blog.rb
|
109
110
|
- lib/hypem/playlist.rb
|
@@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
141
|
version: '0'
|
141
142
|
segments:
|
142
143
|
- 0
|
143
|
-
hash:
|
144
|
+
hash: 1984432069541911698
|
144
145
|
requirements: []
|
145
146
|
rubyforge_project: hypem
|
146
147
|
rubygems_version: 1.8.10
|