ruby_deezer 0.1.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.
- data/Gemfile +11 -0
- data/Gemfile.lock +26 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +44 -0
- data/VERSION +1 -0
- data/lib/ruby_deezer/album.rb +51 -0
- data/lib/ruby_deezer/artist.rb +53 -0
- data/lib/ruby_deezer/track.rb +51 -0
- data/lib/ruby_deezer.rb +7 -0
- data/pkg/ruby_deezer-0.1.0.gem +0 -0
- data/ruby_deezer.gemspec +82 -0
- data/test/fixtures/album.json +20 -0
- data/test/fixtures/albums.json +41 -0
- data/test/fixtures/artist.json +1774 -0
- data/test/fixtures/artists.json +23 -0
- data/test/fixtures/track.json +21 -0
- data/test/fixtures/tracks.json +68 -0
- data/test/helper.rb +18 -0
- data/test/unit/test_album.rb +29 -0
- data/test/unit/test_artist.rb +29 -0
- data/test/unit/test_track.rb +36 -0
- metadata +185 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"search":{
|
3
|
+
"total_results":29,
|
4
|
+
"start_index":10,
|
5
|
+
"items_per_page":2,
|
6
|
+
"artists":{
|
7
|
+
"artist":[
|
8
|
+
{
|
9
|
+
"id":"521459",
|
10
|
+
"name":"50 Cent, Dr. Dre, Eminem",
|
11
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/50-cent-dr-dre-eminem",
|
12
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/\/90x90-000000-80-0-0.jpg"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"id":"819679",
|
16
|
+
"name":"Bobby Creekwater, Eminem, Obie Trice, Nate Dogg",
|
17
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/bobby-creekwater-eminem-obie-trice-nate-dogg",
|
18
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/\/90x90-000000-80-0-0.jpg"
|
19
|
+
}
|
20
|
+
]
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"track":{
|
3
|
+
"artist":{
|
4
|
+
"id":"12",
|
5
|
+
"name":"Black Eyed Peas",
|
6
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/black-eyed-peas",
|
7
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/0aff1590d81639550336f3edf3cf30df\/90x90-000000-80-0-0.jpg"
|
8
|
+
},
|
9
|
+
"album":{
|
10
|
+
"id":"12",
|
11
|
+
"name":"Monkey Business",
|
12
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/black-eyed-peas\/monkey-business-12",
|
13
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/cover\/b51d0b5905b5aedf4f2bd93ad95a57db\/150x150-000000-80-0-0.jpg"
|
14
|
+
},
|
15
|
+
"id":"13",
|
16
|
+
"name":"Don't Lie",
|
17
|
+
"url":"http:\/\/www.deezer.com\/listen-13",
|
18
|
+
"duration":"219",
|
19
|
+
"rank":"0"
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
{
|
2
|
+
"search":{
|
3
|
+
"total_results":500,
|
4
|
+
"start_index":10,
|
5
|
+
"items_per_page":3,
|
6
|
+
"tracks":{
|
7
|
+
"track":[
|
8
|
+
{
|
9
|
+
"artist":{
|
10
|
+
"id":"13",
|
11
|
+
"name":"Eminem",
|
12
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/eminem",
|
13
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/cb286a88a55a10847d1ac0f47798380c\/90x90-000000-80-0-0.jpg"
|
14
|
+
},
|
15
|
+
"album":{
|
16
|
+
"id":"103248",
|
17
|
+
"name":"The Eminem Show",
|
18
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/eminem\/the-eminem-show-103248",
|
19
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/cover\/ec3c8ed67427064c70f67e5815b74cef\/150x150-000000-80-0-0.jpg"
|
20
|
+
},
|
21
|
+
"id":"916427",
|
22
|
+
"name":"Superman",
|
23
|
+
"url":"http:\/\/www.deezer.com\/listen-916427",
|
24
|
+
"duration":"350",
|
25
|
+
"rank":"858589"
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"artist":{
|
29
|
+
"id":"511299",
|
30
|
+
"name":"Dr. Dre, 50 Cent, Eminem",
|
31
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/dr-dre-50-cent-eminem",
|
32
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/\/90x90-000000-80-0-0.jpg"
|
33
|
+
},
|
34
|
+
"album":{
|
35
|
+
"id":"271960",
|
36
|
+
"name":"Crack A Bottle",
|
37
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/dr-dre-50-cent-eminem\/crack-a-bottle-271960",
|
38
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/cover\/\/150x150-000000-80-0-0.jpg"
|
39
|
+
},
|
40
|
+
"id":"2951016",
|
41
|
+
"name":"Crack A Bottle",
|
42
|
+
"url":"http:\/\/www.deezer.com\/listen-2951016",
|
43
|
+
"duration":"315",
|
44
|
+
"rank":"857723"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"artist":{
|
48
|
+
"id":"13",
|
49
|
+
"name":"Eminem",
|
50
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/eminem",
|
51
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/artist\/cb286a88a55a10847d1ac0f47798380c\/90x90-000000-80-0-0.jpg"
|
52
|
+
},
|
53
|
+
"album":{
|
54
|
+
"id":"595243",
|
55
|
+
"name":"Recovery",
|
56
|
+
"url":"http:\/\/www.deezer.com\/en\/music\/eminem\/recovery-595243",
|
57
|
+
"image":"http:\/\/cdn-images.deezer.com\/images\/cover\/be682506145061814eddee648edb7c59\/150x150-000000-80-0-0.jpg"
|
58
|
+
},
|
59
|
+
"id":"6461426",
|
60
|
+
"name":"Cold Wind Blows",
|
61
|
+
"url":"http:\/\/www.deezer.com\/listen-6461426",
|
62
|
+
"duration":"304",
|
63
|
+
"rank":"855319"
|
64
|
+
}
|
65
|
+
]
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
data/test/helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
|
12
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
require 'ruby_deezer'
|
15
|
+
require 'fakeweb'
|
16
|
+
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestAlbum < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_should_lookup_album
|
6
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/album.json"))
|
7
|
+
album = RubyDeezer::Album.find(1)
|
8
|
+
|
9
|
+
assert_equal "Vapeurs Toxiques", album.name
|
10
|
+
assert_equal 1, album.nb_disks
|
11
|
+
assert_equal 0, album.nb_tracks
|
12
|
+
assert_equal 64, album.id
|
13
|
+
assert_equal "http://www.deezer.com/en/music/don-choa/vapeurs-toxiques-64", album.url
|
14
|
+
assert_equal "http://cdn-images.deezer.com/images/cover/162922e3732a312053f14bb47480ce84/150x150-000000-80-0-0.jpg", album.image
|
15
|
+
assert album.tracks.empty?
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_should_search_albums
|
19
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/albums.json"))
|
20
|
+
albums = RubyDeezer::Album.search("emimen")
|
21
|
+
|
22
|
+
assert_equal 2, albums.size
|
23
|
+
assert_equal 1, albums.current_page
|
24
|
+
assert_equal 10, albums.total_pages
|
25
|
+
assert_equal "Recovery", albums[0].name
|
26
|
+
assert_equal "Relapse", albums[1].name
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestArtist < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_should_lookup_artist
|
6
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/artist.json"))
|
7
|
+
artist = RubyDeezer::Artist.find(1)
|
8
|
+
|
9
|
+
assert_equal "Eminem", artist.name
|
10
|
+
assert_equal 13, artist.id
|
11
|
+
assert_equal "http://cdn-images.deezer.com/images/artist/cb286a88a55a10847d1ac0f47798380c/90x90-000000-80-0-0.jpg", artist.image
|
12
|
+
assert_equal "http://www.deezer.com/en/music/eminem", artist.url
|
13
|
+
assert_equal 10, artist.similar_artists.size
|
14
|
+
assert_equal 10, artist.discography.size
|
15
|
+
assert_equal 10, artist.albums.size
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_should_search_artists
|
19
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/artists.json"))
|
20
|
+
artists = RubyDeezer::Artist.search("emimen")
|
21
|
+
|
22
|
+
assert_equal "50 Cent, Dr. Dre, Eminem", artists[0].name
|
23
|
+
assert_equal "Bobby Creekwater, Eminem, Obie Trice, Nate Dogg", artists[1].name
|
24
|
+
assert_equal 2, artists.size
|
25
|
+
assert_equal 1, artists.current_page
|
26
|
+
assert_equal 3, artists.total_pages
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestTrack < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_should_lookup_track
|
6
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/track.json"))
|
7
|
+
track = RubyDeezer::Track.find(1)
|
8
|
+
|
9
|
+
assert_equal "Don't Lie", track.name
|
10
|
+
assert_equal 13, track.id
|
11
|
+
assert_equal 219, track.duration
|
12
|
+
assert_equal 0, track.rank
|
13
|
+
assert_equal 'http://www.deezer.com/listen-13', track.url
|
14
|
+
assert_equal "Black Eyed Peas", track.artist.name
|
15
|
+
assert_equal "Monkey Business", track.album.name
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_should_search_tracks
|
19
|
+
FakeWeb.register_uri(:get, %r|http://api-v3.deezer.com/1.0|, :body => File.read(File.dirname(__FILE__) + "/../fixtures/tracks.json"))
|
20
|
+
tracks = RubyDeezer::Track.search("emimen")
|
21
|
+
|
22
|
+
assert_equal 3, tracks.size
|
23
|
+
assert_equal 1, tracks.current_page
|
24
|
+
assert_equal 50, tracks.total_pages
|
25
|
+
assert_equal "Superman", tracks[0].name
|
26
|
+
assert_equal "Crack A Bottle", tracks[1].name
|
27
|
+
assert_equal "Cold Wind Blows", tracks[2].name
|
28
|
+
assert_equal "Eminem", tracks[0].artist.name
|
29
|
+
assert_equal "Dr. Dre, 50 Cent, Eminem", tracks[1].artist.name
|
30
|
+
assert_equal "Eminem", tracks[2].artist.name
|
31
|
+
assert_equal "The Eminem Show", tracks[0].album.name
|
32
|
+
assert_equal "Crack A Bottle", tracks[1].album.name
|
33
|
+
assert_equal "Recovery", tracks[2].album.name
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_deezer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Aleksandr Lossenko
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-03-04 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
type: :runtime
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - "="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 9
|
29
|
+
segments:
|
30
|
+
- 2
|
31
|
+
- 3
|
32
|
+
- 5
|
33
|
+
version: 2.3.5
|
34
|
+
requirement: *id001
|
35
|
+
prerelease: false
|
36
|
+
name: activesupport
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
type: :runtime
|
39
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 11
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 7
|
48
|
+
- 4
|
49
|
+
version: 0.7.4
|
50
|
+
requirement: *id002
|
51
|
+
prerelease: false
|
52
|
+
name: httparty
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
type: :runtime
|
55
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - "="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 29
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 3
|
64
|
+
- 15
|
65
|
+
version: 2.3.15
|
66
|
+
requirement: *id003
|
67
|
+
prerelease: false
|
68
|
+
name: will_paginate
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
type: :development
|
71
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 23
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 0
|
80
|
+
- 0
|
81
|
+
version: 1.0.0
|
82
|
+
requirement: *id004
|
83
|
+
prerelease: false
|
84
|
+
name: bundler
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
type: :development
|
87
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ~>
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 7
|
93
|
+
segments:
|
94
|
+
- 1
|
95
|
+
- 5
|
96
|
+
- 2
|
97
|
+
version: 1.5.2
|
98
|
+
requirement: *id005
|
99
|
+
prerelease: false
|
100
|
+
name: jeweler
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
type: :development
|
103
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
requirement: *id006
|
113
|
+
prerelease: false
|
114
|
+
name: fakeweb
|
115
|
+
description: Search for artists, albums and tracks with Deezer API
|
116
|
+
email: alossenko@gmail.com
|
117
|
+
executables: []
|
118
|
+
|
119
|
+
extensions: []
|
120
|
+
|
121
|
+
extra_rdoc_files:
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.rdoc
|
124
|
+
files:
|
125
|
+
- Gemfile
|
126
|
+
- Gemfile.lock
|
127
|
+
- LICENSE.txt
|
128
|
+
- README.rdoc
|
129
|
+
- Rakefile
|
130
|
+
- VERSION
|
131
|
+
- lib/ruby_deezer.rb
|
132
|
+
- lib/ruby_deezer/album.rb
|
133
|
+
- lib/ruby_deezer/artist.rb
|
134
|
+
- lib/ruby_deezer/track.rb
|
135
|
+
- pkg/ruby_deezer-0.1.0.gem
|
136
|
+
- ruby_deezer.gemspec
|
137
|
+
- test/fixtures/album.json
|
138
|
+
- test/fixtures/albums.json
|
139
|
+
- test/fixtures/artist.json
|
140
|
+
- test/fixtures/artists.json
|
141
|
+
- test/fixtures/track.json
|
142
|
+
- test/fixtures/tracks.json
|
143
|
+
- test/helper.rb
|
144
|
+
- test/unit/test_album.rb
|
145
|
+
- test/unit/test_artist.rb
|
146
|
+
- test/unit/test_track.rb
|
147
|
+
has_rdoc: true
|
148
|
+
homepage: http://github.com/egze/ruby_deezer
|
149
|
+
licenses:
|
150
|
+
- MIT
|
151
|
+
post_install_message:
|
152
|
+
rdoc_options: []
|
153
|
+
|
154
|
+
require_paths:
|
155
|
+
- lib
|
156
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
hash: 3
|
162
|
+
segments:
|
163
|
+
- 0
|
164
|
+
version: "0"
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
hash: 3
|
171
|
+
segments:
|
172
|
+
- 0
|
173
|
+
version: "0"
|
174
|
+
requirements: []
|
175
|
+
|
176
|
+
rubyforge_project:
|
177
|
+
rubygems_version: 1.4.2
|
178
|
+
signing_key:
|
179
|
+
specification_version: 3
|
180
|
+
summary: RubyDeezer is a ruby wrapper for the Deezer APIs
|
181
|
+
test_files:
|
182
|
+
- test/helper.rb
|
183
|
+
- test/unit/test_album.rb
|
184
|
+
- test/unit/test_artist.rb
|
185
|
+
- test/unit/test_track.rb
|