spotify 10.1.0 → 10.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.
@@ -1,7 +1,26 @@
1
+ [v10.1.1][]
2
+ -----------
3
+ - mark ALL libspotify functions as blocking
4
+
5
+ [v10.1.0][]
6
+ -----------
7
+ - fix Spotify::Subscribers for empty subscribers
8
+ - Up FFI version dependency to v1.0.11 (Spotify::Bool is no more)
9
+
10
+ [v10.0.0][]
11
+ -----------
12
+ - upgrade to libspotify v10 (see changelog for details)
13
+
14
+ [v9.1.0][]
15
+ ----------
16
+ - Spotify::Subscribers now supports retrieving members by array index
17
+
1
18
  [v9.0.1][]
19
+ ----------
2
20
  - mark sp_session_player_load as blocking
3
21
 
4
22
  [v9.0.0][]
23
+ ----------
5
24
  - upgrade to libspotify 9
6
25
  - loosen up dependency version constraints
7
26
 
@@ -54,6 +73,10 @@ v0.0.0
54
73
  ------
55
74
  - release to register rubygems.org name
56
75
 
76
+ [v10.1.1]: https://github.com/Burgestrand/libspotify-ruby/compare/v10.1.0...v10.1.1
77
+ [v10.1.0]: https://github.com/Burgestrand/libspotify-ruby/compare/v10.0.0...v10.1.0
78
+ [v10.0.0]: https://github.com/Burgestrand/libspotify-ruby/compare/v9.1.0...v10.0.0
79
+ [v9.1.0]: https://github.com/Burgestrand/libspotify-ruby/compare/v9.0.1...v9.1.0
57
80
  [v9.0.1]: https://github.com/Burgestrand/libspotify-ruby/compare/v9.0.0...v9.0.1
58
81
  [v9.0.0]: https://github.com/Burgestrand/libspotify-ruby/compare/v8.0.5...v9.0.0
59
82
  [v8.0.5]: https://github.com/Burgestrand/libspotify-ruby/compare/v8.0.2...v8.0.5
@@ -6,12 +6,19 @@ Ruby FFI bindings for [libspotify][]
6
6
 
7
7
  [Spotify][] is a really nice music streaming service, and being able to interact with it in an API is awesome. However, because libspotify is a C library, writing applications with it is cumbersome and error-prone compared to doing it in Ruby. As I found myself needing to do this one day, knowing I’d rather not be writing it in C, this gem was born.
8
8
 
9
- Spotify, the gem, is a thin layer of Ruby atop the [libspotify][] C library. It allows developers to use libspotify without writing a line of C, thanks to [Ruby FFI](https://rubygems.org/gems/ffi). Do note that there is no sugar-coating, and no attempts of abstraction will be made. If you want a library that is easier to use, you should have a look at [Hallon](https://github.com/Burgestrand/Hallon).
9
+ Spotify, the gem, is a thin layer of Ruby atop the [libspotify][] C library. It allows developers to use libspotify without writing a line of C, thanks to [Ruby FFI](https://rubygems.org/gems/ffi). Do note that there is no sugar-coating, and no attempts of abstraction will be made.
10
+
11
+ You want easy-to-use Ruby bindings for libspotify?
12
+ --------------------------------------------------
13
+ Then you should check out [Hallon][]! While libspotify-ruby is just the simplest bindings to libspotify possible, Hallon works really hard to make libspotify a joy to use in Ruby.
14
+
15
+ Finally, if you, for some reason, are having trouble deciding if you should use libspotify-ruby or Hallon, you should probably use Hallon.
10
16
 
11
17
  (anecdotal note: this code base was previously a part of Hallon, but I decided to extract it and make a gem out of it)
12
18
 
13
19
  [libspotify]: http://developer.spotify.com/en/libspotify/overview/
14
20
  [Spotify]: https://www.spotify.com/
21
+ [Hallon]: https://github.com/Burgestrand/Hallon
15
22
 
16
23
  Need help installing libspotify?
17
24
  --------------------------------
@@ -29,4 +36,4 @@ When X increases (support for new libspotify versions) there are **no guarantees
29
36
 
30
37
  License
31
38
  -------
32
- X11 license, see the LICENSE document for details.
39
+ X11 license, see the LICENSE document for details.
@@ -12,6 +12,18 @@ module Spotify
12
12
  extend FFI::Library
13
13
  ffi_lib ['libspotify', '/Library/Frameworks/libspotify.framework/libspotify']
14
14
 
15
+ # Override FFI::Library#attach_function to always add the `:blocking` option.
16
+ #
17
+ # The reason for this is that which libspotify functions may call callbacks
18
+ # is unspecified. And really… I don’t know of any drawbacks with this method.
19
+ def self.attach_function(*arguments, &block)
20
+ options = arguments.pop if arguments.last.is_a?(Hash)
21
+ options ||= {}
22
+ options = { blocking: true }.merge(options)
23
+ arguments << options
24
+ super(*arguments, &block)
25
+ end
26
+
15
27
  # libspotify API version
16
28
  # @return [Fixnum]
17
29
  API_VERSION = VERSION.split('.').first.to_i
@@ -210,11 +222,11 @@ module Spotify
210
222
  :allow_sync_over_mobile, 0x4,
211
223
  :allow_sync_over_wifi , 0x8]
212
224
 
213
- attach_function :session_create, :sp_session_create, [ SessionConfig, :buffer_out ], :error, :blocking => true
225
+ attach_function :session_create, :sp_session_create, [ SessionConfig, :buffer_out ], :error
214
226
  attach_function :session_release, :sp_session_release, [ :session ], :void
215
227
 
216
- attach_function :session_process_events, :sp_session_process_events, [ :session, :buffer_out ], :void, :blocking => true
217
- attach_function :session_login, :sp_session_login, [ :session, :string, :string, :bool ], :void, :blocking => true
228
+ attach_function :session_process_events, :sp_session_process_events, [ :session, :buffer_out ], :void
229
+ attach_function :session_login, :sp_session_login, [ :session, :string, :string, :bool ], :void
218
230
  attach_function :session_relogin, :sp_session_relogin, [ :session ], :error
219
231
  attach_function :session_forget_me, :sp_session_forget_me, [ :session ], :void
220
232
  attach_function :session_remembered_user, :sp_session_remembered_user, [ :session, :buffer_out, :size_t ], :int
@@ -224,7 +236,7 @@ module Spotify
224
236
  attach_function :session_connectionstate, :sp_session_connectionstate, [ :session ], :connectionstate
225
237
  attach_function :session_userdata, :sp_session_userdata, [ :session ], :userdata
226
238
  attach_function :session_set_cache_size, :sp_session_set_cache_size, [ :session, :size_t ], :void
227
- attach_function :session_player_load, :sp_session_player_load, [ :session, :track ], :error, :blocking => true
239
+ attach_function :session_player_load, :sp_session_player_load, [ :session, :track ], :error
228
240
  attach_function :session_player_seek, :sp_session_player_seek, [ :session, :int ], :void
229
241
  attach_function :session_player_play, :sp_session_player_play, [ :session, :bool ], :void
230
242
  attach_function :session_player_unload, :sp_session_player_unload, [ :session ], :void
@@ -259,7 +271,7 @@ module Spotify
259
271
  enum :linktype, [:invalid, :track, :album, :artist, :search,
260
272
  :playlist, :profile, :starred, :localtrack, :image]
261
273
 
262
- attach_function :link_create_from_string, :sp_link_create_from_string, [ :string ], :link, :blocking => true
274
+ attach_function :link_create_from_string, :sp_link_create_from_string, [ :string ], :link
263
275
  attach_function :link_create_from_track, :sp_link_create_from_track, [ :track, :int ], :link
264
276
  attach_function :link_create_from_album, :sp_link_create_from_album, [ :album ], :link
265
277
  attach_function :link_create_from_artist, :sp_link_create_from_artist, [ :artist ], :link
@@ -1,4 +1,4 @@
1
1
  module Spotify
2
2
  # See README for versioning policy.
3
- VERSION = [10, 1, 0].join('.')
3
+ VERSION = [10, 1, 1].join('.')
4
4
  end
@@ -5,9 +5,9 @@ Gem::Specification.new do |gem|
5
5
  gem.name = 'spotify'
6
6
  gem.summary = 'Bare-bones Ruby bindings for libspotify'
7
7
  gem.description = <<-DESC
8
- Spotify for Ruby is merely a very simple wrapper around libspotify
9
- using Ruby FFI. If you wish for a simpler and (better) API, check
10
- out Hallon (https://rubygems.org/gems/hallon)!
8
+ Spotify for Ruby is a primitive wrapper around libspotify using Ruby FFI.
9
+ If all you want is libspotify for Ruby, you should probably use at Hallon
10
+ instead: https://rubygems.org/gems/hallon
11
11
  DESC
12
12
 
13
13
  gem.homepage = 'https://github.com/Burgestrand/libspotify-ruby'
@@ -24,6 +24,7 @@ Gem::Specification.new do |gem|
24
24
  gem.platform = Gem::Platform::RUBY
25
25
 
26
26
  gem.add_dependency 'ffi', ['~> 1.0', '>= 1.0.11']
27
+ gem.add_development_dependency 'rake'
27
28
  gem.add_development_dependency 'yard'
28
29
  gem.add_development_dependency 'rbgccxml'
29
30
  gem.add_development_dependency 'gccxml_gem', '!= 0.9.3'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.1.0
4
+ version: 10.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-20 00:00:00.000000000Z
12
+ date: 2011-11-30 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
16
- requirement: &2161376880 !ruby/object:Gem::Requirement
16
+ requirement: &70261854253800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -24,10 +24,21 @@ dependencies:
24
24
  version: 1.0.11
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *2161376880
27
+ version_requirements: *70261854253800
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: &70261854253120 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: *70261854253120
28
39
  - !ruby/object:Gem::Dependency
29
40
  name: yard
30
- requirement: &2161376140 !ruby/object:Gem::Requirement
41
+ requirement: &70261848428400 !ruby/object:Gem::Requirement
31
42
  none: false
32
43
  requirements:
33
44
  - - ! '>='
@@ -35,10 +46,10 @@ dependencies:
35
46
  version: '0'
36
47
  type: :development
37
48
  prerelease: false
38
- version_requirements: *2161376140
49
+ version_requirements: *70261848428400
39
50
  - !ruby/object:Gem::Dependency
40
51
  name: rbgccxml
41
- requirement: &2161375620 !ruby/object:Gem::Requirement
52
+ requirement: &70261848427980 !ruby/object:Gem::Requirement
42
53
  none: false
43
54
  requirements:
44
55
  - - ! '>='
@@ -46,10 +57,10 @@ dependencies:
46
57
  version: '0'
47
58
  type: :development
48
59
  prerelease: false
49
- version_requirements: *2161375620
60
+ version_requirements: *70261848427980
50
61
  - !ruby/object:Gem::Dependency
51
62
  name: gccxml_gem
52
- requirement: &2161375120 !ruby/object:Gem::Requirement
63
+ requirement: &70261848427480 !ruby/object:Gem::Requirement
53
64
  none: false
54
65
  requirements:
55
66
  - - ! '!='
@@ -57,10 +68,10 @@ dependencies:
57
68
  version: 0.9.3
58
69
  type: :development
59
70
  prerelease: false
60
- version_requirements: *2161375120
71
+ version_requirements: *70261848427480
61
72
  - !ruby/object:Gem::Dependency
62
73
  name: minitest
63
- requirement: &2161374500 !ruby/object:Gem::Requirement
74
+ requirement: &70261848426980 !ruby/object:Gem::Requirement
64
75
  none: false
65
76
  requirements:
66
77
  - - ~>
@@ -68,10 +79,10 @@ dependencies:
68
79
  version: '2.0'
69
80
  type: :development
70
81
  prerelease: false
71
- version_requirements: *2161374500
82
+ version_requirements: *70261848426980
72
83
  - !ruby/object:Gem::Dependency
73
84
  name: bundler
74
- requirement: &2161374020 !ruby/object:Gem::Requirement
85
+ requirement: &70261848426520 !ruby/object:Gem::Requirement
75
86
  none: false
76
87
  requirements:
77
88
  - - ~>
@@ -79,10 +90,10 @@ dependencies:
79
90
  version: '1.0'
80
91
  type: :development
81
92
  prerelease: false
82
- version_requirements: *2161374020
83
- description: ! " Spotify for Ruby is merely a very simple wrapper around libspotify\n
84
- \ using Ruby FFI. If you wish for a simpler and (better) API, check\n out Hallon
85
- (https://rubygems.org/gems/hallon)!\n"
93
+ version_requirements: *70261848426520
94
+ description: ! " Spotify for Ruby is a primitive wrapper around libspotify using
95
+ Ruby FFI.\n If all you want is libspotify for Ruby, you should probably use at
96
+ Hallon\n instead: https://rubygems.org/gems/hallon\n"
86
97
  email:
87
98
  - kim@burgestrand.se
88
99
  executables: []
@@ -122,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
133
  version: '0'
123
134
  requirements: []
124
135
  rubyforge_project:
125
- rubygems_version: 1.8.6
136
+ rubygems_version: 1.8.10
126
137
  signing_key:
127
138
  specification_version: 3
128
139
  summary: Bare-bones Ruby bindings for libspotify