shuffler_fm 0.0.2 → 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/CHANGELOG.md +14 -0
- data/README.md +2 -1
- data/lib/shuffler_fm/api/channels.rb +16 -8
- data/lib/shuffler_fm/api/tracks.rb +12 -0
- data/lib/shuffler_fm/http.rb +5 -3
- data/lib/shuffler_fm/request.rb +9 -5
- data/lib/shuffler_fm/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/tracks.yml +29 -0
- data/spec/helper.rb +1 -1
- data/spec/shuffler_fm/api/tracks_spec.rb +4 -0
- metadata +188 -183
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -59,6 +59,7 @@ track.metadata.artist.name
|
|
59
59
|
|
60
60
|
### Search for an artist
|
61
61
|
```ruby
|
62
|
+
|
62
63
|
api.search_artists('radiohead').map(&:name)
|
63
64
|
=> ["Radiohead", "Radiohead at Lollapalooza 2008", "REM & Radiohead", "Radiohead 6. Permanent Daylight live", "Radiohead @ Optimus Alive'12", "I Can't Take The Hurt (Johnny Cash vs Tegan and Sarah and Radiohead)"]
|
64
65
|
```
|
@@ -67,7 +68,7 @@ api.search_artists('radiohead').map(&:name)
|
|
67
68
|
```ruby
|
68
69
|
|
69
70
|
activity = []
|
70
|
-
api.genre_channels('punk', 'rock').each do |act|
|
71
|
+
api.genre_channels('punk', 'rock', page: 1, per_page: 10).each do |act|
|
71
72
|
activity << "#{act.verb.capitalize} on #{act.actor.title} refering music track #{act.object.metadata.title}"
|
72
73
|
end
|
73
74
|
|
@@ -13,7 +13,7 @@ module ShufflerFM
|
|
13
13
|
# @return [Array] an array with the channel's activity stream
|
14
14
|
#
|
15
15
|
# @example
|
16
|
-
# api.media_channels('
|
16
|
+
# api.media_channels('soundcloud')
|
17
17
|
#
|
18
18
|
def media_channels(key, options = {})
|
19
19
|
channel(:media, key, options)
|
@@ -21,7 +21,7 @@ module ShufflerFM
|
|
21
21
|
|
22
22
|
# Reads the blog channels activity stream
|
23
23
|
#
|
24
|
-
# @param [
|
24
|
+
# @param [Integer] key The blog id
|
25
25
|
# @param [Hash] options
|
26
26
|
# @option options [Integer] :page The page to request on paginated operation responses. First page is page 1.
|
27
27
|
# @option options [Integer] :per_page The page size. Default is 50, maximum is 100.
|
@@ -37,7 +37,6 @@ module ShufflerFM
|
|
37
37
|
|
38
38
|
# Reads the artist channels activity stream
|
39
39
|
#
|
40
|
-
# @param key The channel key.
|
41
40
|
# @param [Hash] options
|
42
41
|
# @option options [Integer] :page The page to request on paginated operation responses. First page is page 1.
|
43
42
|
# @option options [Integer] :per_page The page size. Default is 50, maximum is 100.
|
@@ -53,13 +52,22 @@ module ShufflerFM
|
|
53
52
|
|
54
53
|
# Reads the genere channels activity stream.
|
55
54
|
#
|
56
|
-
# @
|
55
|
+
# @overload genre_channels(*keys)
|
56
|
+
# @param [Array] keys The channel keys.
|
57
57
|
#
|
58
|
-
#
|
58
|
+
# @example
|
59
|
+
# api.genre_channels('punk')
|
60
|
+
# api.genre_channels('punk', 'rock')
|
59
61
|
#
|
60
|
-
# @
|
61
|
-
#
|
62
|
-
#
|
62
|
+
# @overload genre_channels(*keys, options)
|
63
|
+
# @param [Hash] options
|
64
|
+
# @option options [Integer] :page The page to request on paginated operation responses. First page is page 1.
|
65
|
+
# @option options [Integer] :per_page The page size. Default is 50, maximum is 100.
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# api.genre_channels('punk', 'rock', page: 1, per_page: 10)
|
69
|
+
#
|
70
|
+
# @return [Array] an array with the channel's activity stream
|
63
71
|
#
|
64
72
|
def genre_channels(*keys)
|
65
73
|
channel(:genre, *keys)
|
@@ -29,6 +29,18 @@ module ShufflerFM
|
|
29
29
|
rescue ShufflerFM::NotFound
|
30
30
|
nil
|
31
31
|
end
|
32
|
+
|
33
|
+
# Streaming URI for a track.
|
34
|
+
#
|
35
|
+
# NOTE: This operation requires a specific authorization form shuffler.fm
|
36
|
+
#
|
37
|
+
# @param [Integer] id The track id
|
38
|
+
#
|
39
|
+
# @return [URI] the track streaming URI if avaliable
|
40
|
+
#
|
41
|
+
def stream(id)
|
42
|
+
URI(get("/tracks/#{Integer(id)}/stream", {}, false).headers['location'])
|
43
|
+
end
|
32
44
|
end
|
33
45
|
end
|
34
46
|
end
|
data/lib/shuffler_fm/http.rb
CHANGED
@@ -6,13 +6,15 @@ module ShufflerFM
|
|
6
6
|
# @private
|
7
7
|
module HTTP
|
8
8
|
private
|
9
|
-
def connection
|
9
|
+
def connection(managed = true)
|
10
10
|
options = {:url => ShufflerFM::API.base_uri,
|
11
11
|
:params => {'api-key' => key}}.merge(ShufflerFM.configuration.values)
|
12
12
|
|
13
13
|
Faraday.new(options) do |builder|
|
14
|
-
|
15
|
-
|
14
|
+
if managed
|
15
|
+
builder.use FaradayMiddleware::Rashify
|
16
|
+
builder.use FaradayMiddleware::ParseJson
|
17
|
+
end
|
16
18
|
|
17
19
|
builder.use ShufflerFM::Middleware::ErrorHandler
|
18
20
|
|
data/lib/shuffler_fm/request.rb
CHANGED
@@ -7,19 +7,23 @@ module ShufflerFM
|
|
7
7
|
# @param [String] path The request path
|
8
8
|
# @param [Hash] options The operation options
|
9
9
|
#
|
10
|
+
# @param [Boolean] managed true for a custom middleware mangaed connection,
|
11
|
+
# false to overide the middleware and recive the raw http response
|
12
|
+
#
|
10
13
|
# @return The HTTP response
|
11
14
|
#
|
12
|
-
def get(path, options = {})
|
13
|
-
request(:get, path, options)
|
15
|
+
def get(path, options = {}, managed = true)
|
16
|
+
request(:get, path, options, managed)
|
14
17
|
end
|
15
18
|
|
16
19
|
private
|
17
|
-
def request(method, path, options = {})
|
18
|
-
response = http_connection.send(method) do |request|
|
20
|
+
def request(method, path, options = {}, managed = true)
|
21
|
+
response = http_connection(managed).send(method) do |request|
|
19
22
|
request.url("#{API.version}/#{path}", process_options(options))
|
20
23
|
end
|
21
24
|
|
22
|
-
response.body
|
25
|
+
return response.body if managed
|
26
|
+
response
|
23
27
|
end
|
24
28
|
|
25
29
|
def process_options(options)
|
data/lib/shuffler_fm/version.rb
CHANGED
@@ -92,4 +92,33 @@ http_interactions:
|
|
92
92
|
string: ""
|
93
93
|
http_version:
|
94
94
|
recorded_at: Thu, 04 Oct 2012 20:57:56 GMT
|
95
|
+
- request:
|
96
|
+
method: get
|
97
|
+
uri: http://api.shuffler.fm/v1/tracks/1/stream?api-key=<api-key>&page=0
|
98
|
+
body:
|
99
|
+
string: ""
|
100
|
+
headers:
|
101
|
+
Accept:
|
102
|
+
- "*/*"
|
103
|
+
response:
|
104
|
+
status:
|
105
|
+
code: 302
|
106
|
+
message: FOUND
|
107
|
+
headers:
|
108
|
+
Content-Type:
|
109
|
+
- text/html; charset=utf-8
|
110
|
+
Server:
|
111
|
+
- TornadoServer/2.4
|
112
|
+
Location:
|
113
|
+
- http://api.soundcloud.com/tracks/9598274/stream?consumer_key=WFhMwGBRy2BnBBB7IK7WiQ
|
114
|
+
Content-Length:
|
115
|
+
- "373"
|
116
|
+
body:
|
117
|
+
string: |-
|
118
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
119
|
+
<title>Redirecting...</title>
|
120
|
+
<h1>Redirecting...</h1>
|
121
|
+
<p>You should be redirected automatically to target URL: <a href="http://api.soundcloud.com/tracks/9598274/stream?consumer_key=WFhMwGBRy2BnBBB7IK7WiQ">http://api.soundcloud.com/tracks/9598274/stream?consumer_key=WFhMwGBRy2BnBBB7IK7WiQ</a>. If not click the link.
|
122
|
+
http_version:
|
123
|
+
recorded_at: Mon, 08 Oct 2012 21:55:01 GMT
|
95
124
|
recorded_with: VCR 2.2.5
|
data/spec/helper.rb
CHANGED
@@ -24,7 +24,7 @@ end
|
|
24
24
|
# setup VCR
|
25
25
|
VCR.configure do |cfg|
|
26
26
|
cfg.filter_sensitive_data('<api-key>') { KEY }
|
27
|
-
cfg.default_cassette_options = { :record => :new_episodes
|
27
|
+
cfg.default_cassette_options = { :record => :new_episodes }
|
28
28
|
cfg.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
29
29
|
cfg.hook_into :webmock
|
30
30
|
end
|
metadata
CHANGED
@@ -1,222 +1,236 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: shuffler_fm
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Miguel Guinada
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-10-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: faraday
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 8
|
32
|
-
version: "0.8"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.8'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: faraday_middleware
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.8'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: faraday_middleware
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
|
-
requirements:
|
34
|
+
requirements:
|
41
35
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
- 8
|
47
|
-
version: "0.8"
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0.8'
|
48
38
|
type: :runtime
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rash
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
41
|
none: false
|
55
|
-
requirements:
|
42
|
+
requirements:
|
56
43
|
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0.8'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rash
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.3'
|
63
54
|
type: :runtime
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: multi_json
|
67
55
|
prerelease: false
|
68
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.3'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: multi_json
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
69
65
|
none: false
|
70
|
-
requirements:
|
66
|
+
requirements:
|
71
67
|
- - ~>
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 1
|
76
|
-
- 3
|
77
|
-
version: "1.3"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.3'
|
78
70
|
type: :runtime
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: json
|
82
71
|
prerelease: false
|
83
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.3'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: json
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
84
81
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 0
|
91
|
-
version: "0"
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
92
86
|
type: :development
|
93
|
-
version_requirements: *id005
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: rake
|
96
87
|
prerelease: false
|
97
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rake
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
98
97
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
segments:
|
104
|
-
- 0
|
105
|
-
version: "0"
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
106
102
|
type: :development
|
107
|
-
version_requirements: *id006
|
108
|
-
- !ruby/object:Gem::Dependency
|
109
|
-
name: pry
|
110
103
|
prerelease: false
|
111
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
105
|
none: false
|
113
|
-
requirements:
|
114
|
-
- -
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: pry
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
120
118
|
type: :development
|
121
|
-
version_requirements: *id007
|
122
|
-
- !ruby/object:Gem::Dependency
|
123
|
-
name: rspec
|
124
119
|
prerelease: false
|
125
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rspec
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
126
129
|
none: false
|
127
|
-
requirements:
|
128
|
-
- -
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
|
131
|
-
segments:
|
132
|
-
- 0
|
133
|
-
version: "0"
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
134
|
type: :development
|
135
|
-
version_requirements: *id008
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
name: webmock
|
138
135
|
prerelease: false
|
139
|
-
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
137
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: webmock
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
148
150
|
type: :development
|
149
|
-
version_requirements: *id009
|
150
|
-
- !ruby/object:Gem::Dependency
|
151
|
-
name: vcr
|
152
151
|
prerelease: false
|
153
|
-
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
153
|
none: false
|
155
|
-
requirements:
|
156
|
-
- -
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: vcr
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
162
166
|
type: :development
|
163
|
-
version_requirements: *id010
|
164
|
-
- !ruby/object:Gem::Dependency
|
165
|
-
name: simplecov
|
166
167
|
prerelease: false
|
167
|
-
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
168
169
|
none: false
|
169
|
-
requirements:
|
170
|
-
- -
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: simplecov
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
176
182
|
type: :development
|
177
|
-
version_requirements: *id011
|
178
|
-
- !ruby/object:Gem::Dependency
|
179
|
-
name: yard
|
180
183
|
prerelease: false
|
181
|
-
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: yard
|
192
|
+
requirement: !ruby/object:Gem::Requirement
|
182
193
|
none: false
|
183
|
-
requirements:
|
184
|
-
- -
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
|
187
|
-
segments:
|
188
|
-
- 0
|
189
|
-
version: "0"
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
190
198
|
type: :development
|
191
|
-
version_requirements: *id012
|
192
|
-
- !ruby/object:Gem::Dependency
|
193
|
-
name: maruku
|
194
199
|
prerelease: false
|
195
|
-
|
200
|
+
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: maruku
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
196
209
|
none: false
|
197
|
-
requirements:
|
198
|
-
- -
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
|
201
|
-
segments:
|
202
|
-
- 0
|
203
|
-
version: "0"
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
204
214
|
type: :development
|
205
|
-
|
206
|
-
|
207
|
-
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
description: ! ' shuffler_fm wraps shuffler.fm''s REST api on a thin layer of ruby. '
|
223
|
+
email:
|
208
224
|
- mguinada@gmail.com
|
209
225
|
executables: []
|
210
|
-
|
211
226
|
extensions: []
|
212
|
-
|
213
227
|
extra_rdoc_files: []
|
214
|
-
|
215
|
-
files:
|
228
|
+
files:
|
216
229
|
- .gitignore
|
217
230
|
- .rspec
|
218
231
|
- .travis.yml
|
219
232
|
- .yardopts
|
233
|
+
- CHANGELOG.md
|
220
234
|
- Gemfile
|
221
235
|
- LICENSE
|
222
236
|
- README.md
|
@@ -257,38 +271,29 @@ files:
|
|
257
271
|
- spec/shufflerfm_spec.rb
|
258
272
|
homepage: https://github.com/mguinada/shuffler_fm
|
259
273
|
licenses: []
|
260
|
-
|
261
274
|
post_install_message:
|
262
275
|
rdoc_options: []
|
263
|
-
|
264
|
-
require_paths:
|
276
|
+
require_paths:
|
265
277
|
- lib
|
266
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
278
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
267
279
|
none: false
|
268
|
-
requirements:
|
269
|
-
- -
|
270
|
-
- !ruby/object:Gem::Version
|
271
|
-
|
272
|
-
|
273
|
-
- 0
|
274
|
-
version: "0"
|
275
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - ! '>='
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: '0'
|
284
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
285
|
none: false
|
277
|
-
requirements:
|
278
|
-
- -
|
279
|
-
- !ruby/object:Gem::Version
|
280
|
-
|
281
|
-
segments:
|
282
|
-
- 0
|
283
|
-
version: "0"
|
286
|
+
requirements:
|
287
|
+
- - ! '>='
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: '0'
|
284
290
|
requirements: []
|
285
|
-
|
286
291
|
rubyforge_project:
|
287
|
-
rubygems_version: 1.8.
|
292
|
+
rubygems_version: 1.8.24
|
288
293
|
signing_key:
|
289
294
|
specification_version: 3
|
290
295
|
summary: Ruby API wrapper for http://shuffler.fm
|
291
|
-
test_files:
|
296
|
+
test_files:
|
292
297
|
- spec/config.yml.sample
|
293
298
|
- spec/fixtures/vcr_cassettes/api.yml
|
294
299
|
- spec/fixtures/vcr_cassettes/artists.yml
|