turntabler 0.3.4 → 0.3.5
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/lib/turntabler/client.rb +13 -2
- data/lib/turntabler/song.rb +7 -0
- data/lib/turntabler/version.rb +1 -1
- metadata +17 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 45279f114e03b098fdbd8f69278c8e272b5f1f2d
|
4
|
+
data.tar.gz: 5730df669c2e6e78948e1c5c11c08debd39a4394
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6d98316eb10a12358d9d0f8cb8429c976b2f9df298ae459136370656f67d823318377b1985c8995c3d76bae0be6b7e89d8ea83c14e778dcb79d742280cd9270f
|
7
|
+
data.tar.gz: cfcf8132f8d6865a401b641844c58b48ef18707368f2c35c7b7ff0a4f1fc74946789022d2c543a642fdd980c99ec0a9a4b594f2b91644946d1b1d81f7fce4b8d
|
data/CHANGELOG.md
CHANGED
data/lib/turntabler/client.rb
CHANGED
@@ -506,12 +506,23 @@ module Turntabler
|
|
506
506
|
|
507
507
|
api('file.search', :query => query, :page => options[:page])
|
508
508
|
|
509
|
+
conditions = {'query' => query}
|
510
|
+
|
511
|
+
# Time out if the response takes too long
|
512
|
+
EventMachine.add_timer(@timeout) do
|
513
|
+
trigger(:search_failed, conditions)
|
514
|
+
end if @timeout
|
515
|
+
|
509
516
|
# Wait for the async callback
|
510
517
|
songs = wait do |&resume|
|
511
|
-
on(:search_completed, :once => true, :if =>
|
512
|
-
on(:search_failed, :once => true, :if =>
|
518
|
+
on(:search_completed, :once => true, :if => conditions) {|songs| resume.call(songs)}
|
519
|
+
on(:search_failed, :once => true, :if => conditions) { resume.call }
|
513
520
|
end
|
514
521
|
|
522
|
+
# Clean up any leftover handlers
|
523
|
+
@event_handlers[:search_completed].delete_if {|handler| handler.conditions == conditions}
|
524
|
+
@event_handlers[:search_failed].delete_if {|handler| handler.conditions == conditions}
|
525
|
+
|
515
526
|
songs || raise(APIError, 'Search failed to complete')
|
516
527
|
end
|
517
528
|
|
data/lib/turntabler/song.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'turntabler/resource'
|
2
2
|
require 'turntabler/user'
|
3
3
|
require 'turntabler/vote'
|
4
|
+
require 'date'
|
4
5
|
|
5
6
|
module Turntabler
|
6
7
|
# Represents a song that can be played on Turntable
|
@@ -29,6 +30,12 @@ module Turntabler
|
|
29
30
|
# @return [String]
|
30
31
|
attribute :label
|
31
32
|
|
33
|
+
# The date the song / album was released on
|
34
|
+
# @return [Date]
|
35
|
+
attribute :released_on, :releasedate do |value|
|
36
|
+
Date.parse(value)
|
37
|
+
end
|
38
|
+
|
32
39
|
# The URL for the cover art image
|
33
40
|
# @return [String]
|
34
41
|
attribute :cover_art_url, :coverart
|
data/lib/turntabler/version.rb
CHANGED
metadata
CHANGED
@@ -1,84 +1,74 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turntabler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Aaron Pfeifer
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: em-synchrony
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: em-http-request
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: faye-websocket
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rspec
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,17 +83,15 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: simplecov
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
description: Turntable.FM API for Ruby
|
@@ -166,6 +153,7 @@ files:
|
|
166
153
|
- turntabler.gemspec
|
167
154
|
homepage: http://github.com/obrie/turntabler
|
168
155
|
licenses: []
|
156
|
+
metadata: {}
|
169
157
|
post_install_message:
|
170
158
|
rdoc_options:
|
171
159
|
- --line-numbers
|
@@ -177,22 +165,19 @@ rdoc_options:
|
|
177
165
|
require_paths:
|
178
166
|
- lib
|
179
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
168
|
requirements:
|
182
|
-
- -
|
169
|
+
- - '>='
|
183
170
|
- !ruby/object:Gem::Version
|
184
171
|
version: '0'
|
185
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
173
|
requirements:
|
188
|
-
- -
|
174
|
+
- - '>='
|
189
175
|
- !ruby/object:Gem::Version
|
190
176
|
version: '0'
|
191
177
|
requirements: []
|
192
178
|
rubyforge_project:
|
193
|
-
rubygems_version:
|
179
|
+
rubygems_version: 2.0.0
|
194
180
|
signing_key:
|
195
|
-
specification_version:
|
181
|
+
specification_version: 4
|
196
182
|
summary: Turntable.FM API for Ruby
|
197
183
|
test_files: []
|
198
|
-
has_rdoc:
|