rdio_api 0.1.0 → 0.1.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/README.md +24 -24
- data/lib/rdio_api/api.rb +11 -10
- data/lib/rdio_api/version.rb +1 -1
- data/rdio_api.gemspec +9 -6
- metadata +32 -39
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
Rdio
|
1
|
+
Rdio
|
2
2
|
====================
|
3
|
-
Ruby wrapper for the [Rdio](http://rdio.com) API. Inspired
|
3
|
+
Ruby wrapper for the [Rdio](http://rdio.com) API. Inspired by [Linkedin gem](https://github.com/pengwynn/linkedin) & [Twitter gem](https://github.com/jnunemaker/twitter).
|
4
4
|
|
5
5
|
|
6
6
|
Installation
|
@@ -31,42 +31,44 @@ Usage Examples
|
|
31
31
|
|
32
32
|
# Get top playlists
|
33
33
|
client.getTopCharts(:type => "Playlist")
|
34
|
-
|
34
|
+
|
35
35
|
# Search for a query and and pass in the type
|
36
36
|
client.search(:query => "michael giacchino", :types => "album")
|
37
|
-
|
37
|
+
|
38
38
|
# Get activity stream of a user
|
39
39
|
client.getActivityStream(:user => "s12345", :scope => "user")
|
40
|
-
|
41
|
-
# Find a user by email address
|
40
|
+
|
41
|
+
# Find a user by email address
|
42
42
|
client.findUser(:email => "email@example.com")
|
43
|
-
|
43
|
+
|
44
44
|
# Methods that act on behalf of a user require an access token, OmniAuth is best for this
|
45
|
-
|
46
|
-
# Access token can be set at initialization
|
47
|
-
client = RdioApi.new(:consumer_key => CONSUMER_KEY,
|
48
|
-
:consumer_secret => CONSUMER_SECRET,
|
45
|
+
|
46
|
+
# Access token can be set at initialization
|
47
|
+
client = RdioApi.new(:consumer_key => CONSUMER_KEY,
|
48
|
+
:consumer_secret => CONSUMER_SECRET,
|
49
49
|
:access_token => ACCESS_TOKEN)
|
50
|
-
|
50
|
+
|
51
51
|
# Access token can also be set at the clien't access_token instance variable
|
52
52
|
client.access_token = ACCESS_TOKEN
|
53
|
-
|
54
|
-
# Get info about the current user
|
53
|
+
|
54
|
+
# Get info about the current user
|
55
55
|
client.currentUser
|
56
|
-
|
56
|
+
|
57
57
|
# Add a friend
|
58
58
|
client.addFriend(:user => "s12345")
|
59
|
-
|
59
|
+
|
60
60
|
# Create a Playlist
|
61
|
-
client.createPlaylist(:name => "RubyGem",
|
62
|
-
:description => "Testing",
|
63
|
-
:tracks => "t1945474, t3483614")
|
61
|
+
client.createPlaylist(:name => "RubyGem",
|
62
|
+
:description => "Testing",
|
63
|
+
:tracks => "t1945474, t3483614")
|
64
64
|
|
65
65
|
Available Methods
|
66
|
-
-----------------
|
67
|
-
|
66
|
+
-----------------
|
67
|
+
|
68
68
|
# Unauthenticated methods, which only require registering for developer keys
|
69
|
-
|
69
|
+
client.get
|
70
|
+
client.getObjectFromShortCode
|
71
|
+
client.getObjectFromUrl
|
70
72
|
client.getAlbumsForArtist
|
71
73
|
client.getTracksForArtist
|
72
74
|
client.search
|
@@ -87,8 +89,6 @@ Available Methods
|
|
87
89
|
client.getPlaybackToken
|
88
90
|
|
89
91
|
# Authenticated methods, which require an access token , obtained with user permission
|
90
|
-
client.getObjectFromShortCode
|
91
|
-
client.getObjectFromUrl
|
92
92
|
client.addToCollection
|
93
93
|
client.removeFromCollection
|
94
94
|
client.setAvailableOffline
|
data/lib/rdio_api/api.rb
CHANGED
@@ -2,9 +2,9 @@ require 'multi_json'
|
|
2
2
|
require 'hashie'
|
3
3
|
|
4
4
|
module RdioApi
|
5
|
-
|
5
|
+
|
6
6
|
module Api
|
7
|
-
|
7
|
+
|
8
8
|
def method_missing(method_sym, *arguments)
|
9
9
|
if UNAUTHENTICATED.include?(method_sym)
|
10
10
|
unauthenticated_request(method_sym, *arguments)
|
@@ -18,19 +18,19 @@ module RdioApi
|
|
18
18
|
def respond_to?(method)
|
19
19
|
AUTHENTICATED.include?(method.to_sym) || UNAUTHENTICATED.include?(method.to_sym) ? true : false
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
private
|
23
|
-
|
23
|
+
|
24
24
|
def unauthenticated_request(method_sym, *arguments)
|
25
|
-
response = unauthenticated_connection.post do |request|
|
25
|
+
response = unauthenticated_connection.post(api_url) do |request|
|
26
26
|
request.body = {:method => method_sym.to_s}.merge!(Hash[*arguments.flatten])
|
27
27
|
end
|
28
28
|
response.body.result
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
def authenticated_request(method_sym, *arguments)
|
32
32
|
if authenticated_connection
|
33
|
-
response = MultiJson.decode(authenticated_connection.post(api_url,
|
33
|
+
response = MultiJson.decode(authenticated_connection.post(api_url,
|
34
34
|
{:method => method_sym.to_s}.merge!(Hash[*arguments.flatten])).body)['result']
|
35
35
|
response.is_a?(Hash) ? Hashie::Mash.new(response) : response
|
36
36
|
else
|
@@ -40,8 +40,11 @@ module RdioApi
|
|
40
40
|
|
41
41
|
UNAUTHENTICATED = [
|
42
42
|
:get,
|
43
|
+
:getObjectFromShortCode,
|
44
|
+
:getObjectFromUrl,
|
43
45
|
:getAlbumsForArtist,
|
44
46
|
:getTracksForArtist,
|
47
|
+
:getTracksByISRC,
|
45
48
|
:search,
|
46
49
|
:searchSuggestions,
|
47
50
|
:getAlbumsForArtistInCollection,
|
@@ -58,10 +61,8 @@ module RdioApi
|
|
58
61
|
:getNewReleases,
|
59
62
|
:getTopCharts,
|
60
63
|
:getPlaybackToken]
|
61
|
-
|
64
|
+
|
62
65
|
AUTHENTICATED = [
|
63
|
-
:getObjectFromShortCode,
|
64
|
-
:getObjectFromUrl,
|
65
66
|
:addToCollection,
|
66
67
|
:removeFromCollection,
|
67
68
|
:setAvailableOffline,
|
data/lib/rdio_api/version.rb
CHANGED
data/rdio_api.gemspec
CHANGED
@@ -5,7 +5,8 @@ require "rdio_api/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "rdio_api"
|
7
7
|
s.version = RdioApi::VERSION
|
8
|
-
s.authors = ["Anil"]
|
8
|
+
s.authors = ["Anil Varanasi"]
|
9
|
+
s.email = ["anil@anilv.com"]
|
9
10
|
s.homepage = "http://github.com/anilv/rdio_api"
|
10
11
|
s.summary = %q{A Ruby wrapper for the Rdio API}
|
11
12
|
s.description = %q{A Ruby wrapper for the Rdio API}
|
@@ -17,14 +18,16 @@ Gem::Specification.new do |s|
|
|
17
18
|
s.add_development_dependency 'rb-fsevent'
|
18
19
|
s.add_development_dependency 'guard-rspec'
|
19
20
|
|
20
|
-
|
21
|
-
s.add_runtime_dependency '
|
22
|
-
s.add_runtime_dependency '
|
23
|
-
s.add_runtime_dependency '
|
21
|
+
|
22
|
+
s.add_runtime_dependency 'faraday', '~> 0.8.0'
|
23
|
+
s.add_runtime_dependency 'faraday_middleware', '~> 0.8.7'
|
24
|
+
s.add_runtime_dependency 'hashie', '~> 1.2.0'
|
25
|
+
s.add_runtime_dependency 'multi_json', '~> 1.3.0'
|
26
|
+
|
24
27
|
s.add_runtime_dependency 'simple_oauth', '~> 0.1.5'
|
25
28
|
|
26
29
|
s.files = `git ls-files`.split("\n")
|
27
30
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
28
31
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
29
32
|
s.require_paths = ["lib"]
|
30
|
-
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdio_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Anil
|
8
|
+
- Anil Varanasi
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable:
|
12
|
+
date: 2012-09-15 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rake
|
17
|
-
requirement: &
|
16
|
+
requirement: &70252692604860 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: '0.9'
|
23
22
|
type: :development
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *70252692604860
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: rspec
|
28
|
-
requirement: &
|
27
|
+
requirement: &70252692604360 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ~>
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: '2.6'
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *70252692604360
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: webmock
|
39
|
-
requirement: &
|
38
|
+
requirement: &70252692603720 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ~>
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: '1.6'
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *70252692603720
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: oauth
|
50
|
-
requirement: &
|
49
|
+
requirement: &70252692603040 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ~>
|
@@ -55,10 +54,10 @@ dependencies:
|
|
55
54
|
version: 0.4.5
|
56
55
|
type: :development
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *70252692603040
|
59
58
|
- !ruby/object:Gem::Dependency
|
60
59
|
name: rb-fsevent
|
61
|
-
requirement: &
|
60
|
+
requirement: &70252692602500 !ruby/object:Gem::Requirement
|
62
61
|
none: false
|
63
62
|
requirements:
|
64
63
|
- - ! '>='
|
@@ -66,10 +65,10 @@ dependencies:
|
|
66
65
|
version: '0'
|
67
66
|
type: :development
|
68
67
|
prerelease: false
|
69
|
-
version_requirements: *
|
68
|
+
version_requirements: *70252692602500
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: guard-rspec
|
72
|
-
requirement: &
|
71
|
+
requirement: &70252692601840 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
73
|
requirements:
|
75
74
|
- - ! '>='
|
@@ -77,54 +76,54 @@ dependencies:
|
|
77
76
|
version: '0'
|
78
77
|
type: :development
|
79
78
|
prerelease: false
|
80
|
-
version_requirements: *
|
79
|
+
version_requirements: *70252692601840
|
81
80
|
- !ruby/object:Gem::Dependency
|
82
81
|
name: faraday
|
83
|
-
requirement: &
|
82
|
+
requirement: &70252692601340 !ruby/object:Gem::Requirement
|
84
83
|
none: false
|
85
84
|
requirements:
|
86
85
|
- - ~>
|
87
86
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
87
|
+
version: 0.8.0
|
89
88
|
type: :runtime
|
90
89
|
prerelease: false
|
91
|
-
version_requirements: *
|
90
|
+
version_requirements: *70252692601340
|
92
91
|
- !ruby/object:Gem::Dependency
|
93
92
|
name: faraday_middleware
|
94
|
-
requirement: &
|
93
|
+
requirement: &70252692600840 !ruby/object:Gem::Requirement
|
95
94
|
none: false
|
96
95
|
requirements:
|
97
96
|
- - ~>
|
98
97
|
- !ruby/object:Gem::Version
|
99
|
-
version: 0.
|
98
|
+
version: 0.8.7
|
100
99
|
type: :runtime
|
101
100
|
prerelease: false
|
102
|
-
version_requirements: *
|
101
|
+
version_requirements: *70252692600840
|
103
102
|
- !ruby/object:Gem::Dependency
|
104
103
|
name: hashie
|
105
|
-
requirement: &
|
104
|
+
requirement: &70252685219380 !ruby/object:Gem::Requirement
|
106
105
|
none: false
|
107
106
|
requirements:
|
108
107
|
- - ~>
|
109
108
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
109
|
+
version: 1.2.0
|
111
110
|
type: :runtime
|
112
111
|
prerelease: false
|
113
|
-
version_requirements: *
|
112
|
+
version_requirements: *70252685219380
|
114
113
|
- !ruby/object:Gem::Dependency
|
115
114
|
name: multi_json
|
116
|
-
requirement: &
|
115
|
+
requirement: &70252685218920 !ruby/object:Gem::Requirement
|
117
116
|
none: false
|
118
117
|
requirements:
|
119
118
|
- - ~>
|
120
119
|
- !ruby/object:Gem::Version
|
121
|
-
version: 1.0
|
120
|
+
version: 1.3.0
|
122
121
|
type: :runtime
|
123
122
|
prerelease: false
|
124
|
-
version_requirements: *
|
123
|
+
version_requirements: *70252685218920
|
125
124
|
- !ruby/object:Gem::Dependency
|
126
125
|
name: simple_oauth
|
127
|
-
requirement: &
|
126
|
+
requirement: &70252685218460 !ruby/object:Gem::Requirement
|
128
127
|
none: false
|
129
128
|
requirements:
|
130
129
|
- - ~>
|
@@ -132,9 +131,10 @@ dependencies:
|
|
132
131
|
version: 0.1.5
|
133
132
|
type: :runtime
|
134
133
|
prerelease: false
|
135
|
-
version_requirements: *
|
134
|
+
version_requirements: *70252685218460
|
136
135
|
description: A Ruby wrapper for the Rdio API
|
137
|
-
email:
|
136
|
+
email:
|
137
|
+
- anil@anilv.com
|
138
138
|
executables: []
|
139
139
|
extensions: []
|
140
140
|
extra_rdoc_files: []
|
@@ -194,7 +194,6 @@ files:
|
|
194
194
|
- spec/rdio_api/playback_spec.rb
|
195
195
|
- spec/rdio_api/playlists_spec.rb
|
196
196
|
- spec/rdio_api/social_spec.rb
|
197
|
-
has_rdoc: true
|
198
197
|
homepage: http://github.com/anilv/rdio_api
|
199
198
|
licenses: []
|
200
199
|
post_install_message:
|
@@ -207,21 +206,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
206
|
- - ! '>='
|
208
207
|
- !ruby/object:Gem::Version
|
209
208
|
version: '0'
|
210
|
-
segments:
|
211
|
-
- 0
|
212
|
-
hash: -3758542136282764443
|
213
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
210
|
none: false
|
215
211
|
requirements:
|
216
212
|
- - ! '>='
|
217
213
|
- !ruby/object:Gem::Version
|
218
214
|
version: '0'
|
219
|
-
segments:
|
220
|
-
- 0
|
221
|
-
hash: -3758542136282764443
|
222
215
|
requirements: []
|
223
216
|
rubyforge_project:
|
224
|
-
rubygems_version: 1.
|
217
|
+
rubygems_version: 1.8.11
|
225
218
|
signing_key:
|
226
219
|
specification_version: 3
|
227
220
|
summary: A Ruby wrapper for the Rdio API
|