turntabler 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,5 +1,10 @@
1
1
  # master
2
2
 
3
+ ## 0.3.5 / 2013-07-20
4
+
5
+ * Fix song searches not respecting request timeouts
6
+ * Add Song#released_on
7
+
3
8
  ## 0.3.4 / 2013-07-11
4
9
 
5
10
  * Fix heartbeat responses not being sent properly resulting in periodic disconnects
@@ -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 => {'query' => query}) {|songs| resume.call(songs)}
512
- on(:search_failed, :once => true, :if => {'query' => query}) { resume.call }
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
 
@@ -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
@@ -3,7 +3,7 @@ module Turntabler
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 3
6
- PATCH = 4
6
+ PATCH = 5
7
7
  STRING = [MAJOR, MINOR, PATCH].join(".")
8
8
  end
9
9
  end
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.4
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 00:00:00.000000000 Z
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: 1.8.24
179
+ rubygems_version: 2.0.0
194
180
  signing_key:
195
- specification_version: 3
181
+ specification_version: 4
196
182
  summary: Turntable.FM API for Ruby
197
183
  test_files: []
198
- has_rdoc: