meta-spotify 0.3.0 → 0.3.1
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/meta-spotify.rb +15 -1
- data/lib/meta-spotify/version.rb +1 -1
- data/test/test_artist.rb +3 -3
- metadata +8 -8
data/lib/meta-spotify.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
3
|
require 'httparty'
|
4
|
+
require 'uri'
|
4
5
|
|
5
6
|
module MetaSpotify
|
6
7
|
|
@@ -20,7 +21,10 @@ module MetaSpotify
|
|
20
21
|
item_name = self.name.downcase.gsub(/^.*::/,'')
|
21
22
|
query = {:q => string}
|
22
23
|
query[:page] = opts[:page].to_s if opts.has_key? :page
|
23
|
-
result = get("/search/#{API_VERSION}/#{item_name}",
|
24
|
+
result = get("/search/#{API_VERSION}/#{item_name}",
|
25
|
+
:query => query,
|
26
|
+
:format => :xml,
|
27
|
+
:query_string_normalizer => self.method(:normalize))
|
24
28
|
raise_errors(result)
|
25
29
|
result = result[item_name+'s']
|
26
30
|
items = []
|
@@ -87,11 +91,21 @@ module MetaSpotify
|
|
87
91
|
raise BadRequestError.new('406 - The requested format isn\'t available')
|
88
92
|
when 500
|
89
93
|
raise ServerError.new('500 - The server encountered an unexpected problem')
|
94
|
+
when 502
|
95
|
+
raise ServerError.new('502 - The API internally received a bad response')
|
90
96
|
when 503
|
91
97
|
raise ServerError.new('503 - The API is temporarily unavailable')
|
92
98
|
end
|
93
99
|
end
|
94
100
|
|
101
|
+
def self.normalize(query)
|
102
|
+
stack = []
|
103
|
+
query.each do |key, value|
|
104
|
+
stack.push "#{key}=#{URI.encode_www_form_component value}"
|
105
|
+
end
|
106
|
+
stack.join("&")
|
107
|
+
end
|
108
|
+
|
95
109
|
end
|
96
110
|
|
97
111
|
class MetaSpotifyError < StandardError
|
data/lib/meta-spotify/version.rb
CHANGED
data/test/test_artist.rb
CHANGED
@@ -31,7 +31,7 @@ class TestArtist < Test::Unit::TestCase
|
|
31
31
|
context "a single result" do
|
32
32
|
setup do
|
33
33
|
FakeWeb.register_uri(:get,
|
34
|
-
"http://ws.spotify.com/search/1/artist?q=1200
|
34
|
+
"http://ws.spotify.com/search/1/artist?q=1200+Micrograms",
|
35
35
|
:body => fixture_file("artist_search_one_result.xml"))
|
36
36
|
@results = MetaSpotify::Artist.search('1200 Micrograms')
|
37
37
|
end
|
@@ -56,7 +56,7 @@ class TestArtist < Test::Unit::TestCase
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
context "looking up an artist" do
|
61
61
|
setup do
|
62
62
|
FakeWeb.register_uri(:get,
|
@@ -75,7 +75,7 @@ class TestArtist < Test::Unit::TestCase
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
context "looking up an artist with detailed album information" do
|
80
80
|
setup do
|
81
81
|
FakeWeb.register_uri(:get,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta-spotify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
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:
|
12
|
+
date: 2013-03-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement: &
|
16
|
+
requirement: &70318309136740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>'
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.8'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70318309136740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shoulda
|
27
|
-
requirement: &
|
27
|
+
requirement: &70318309132920 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.10.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70318309132920
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: fakeweb
|
38
|
-
requirement: &
|
38
|
+
requirement: &70318309142920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 1.2.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70318309142920
|
47
47
|
description: ! "A ruby wrapper for the Spotify Metadata API.\n See
|
48
48
|
https://developer.spotify.com/technologies/web-api/\n for
|
49
49
|
API documentation."
|