spotify 9.0.1 → 9.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/lib/spotify.rb +10 -2
- data/lib/spotify/version.rb +1 -1
- data/spec/spotify_spec.rb +22 -0
- metadata +14 -14
data/lib/spotify.rb
CHANGED
@@ -497,10 +497,18 @@ module Spotify
|
|
497
497
|
# FFI::Struct for Subscribers of a Playlist.
|
498
498
|
#
|
499
499
|
# @attr [Fixnum] count
|
500
|
-
# @attr [Pointer<String
|
500
|
+
# @attr [Array<Pointer<String>>] subscribers
|
501
501
|
class Subscribers < FFI::Struct
|
502
502
|
layout :count, :uint,
|
503
|
-
:subscribers, :
|
503
|
+
:subscribers, [:pointer, 1] # array of pointers to strings
|
504
|
+
|
505
|
+
# Redefined, as the layout of the Struct can only be determined
|
506
|
+
# at run-time.
|
507
|
+
#
|
508
|
+
# @param [FFI::Pointer] pointer
|
509
|
+
def initialize(pointer)
|
510
|
+
super(pointer, :count, :uint, :subscribers, [:pointer, pointer.read_uint])
|
511
|
+
end
|
504
512
|
end
|
505
513
|
|
506
514
|
#
|
data/lib/spotify/version.rb
CHANGED
data/spec/spotify_spec.rb
CHANGED
@@ -181,4 +181,26 @@ describe "structs" do
|
|
181
181
|
end
|
182
182
|
end
|
183
183
|
end
|
184
|
+
|
185
|
+
describe Spotify::Subscribers do
|
186
|
+
it "should create the subscribers array using count" do
|
187
|
+
# Memory looks like this:
|
188
|
+
#
|
189
|
+
# 00 00 00 00 <- count of subscribers
|
190
|
+
# 00 00 00 00 <- pointer to subscriber 1
|
191
|
+
# …… …… …… ……
|
192
|
+
# 00 00 00 00 <- pointer to subscriber n
|
193
|
+
real_struct = FFI::MemoryPointer.new(:char, 24)
|
194
|
+
real_struct.put_uint(0, 2)
|
195
|
+
subscribers = %w[a bb].map { |x| FFI::MemoryPointer.from_string(x) }
|
196
|
+
real_struct.put_array_of_pointer(8, subscribers)
|
197
|
+
|
198
|
+
struct = Spotify::Subscribers.new(real_struct)
|
199
|
+
struct[:count].must_equal 2
|
200
|
+
struct[:subscribers].size.must_equal 2
|
201
|
+
struct[:subscribers][0].read_string.must_equal "a"
|
202
|
+
struct[:subscribers][1].read_string.must_equal "bb"
|
203
|
+
proc { struct[:subscribers][2] }.must_raise IndexError
|
204
|
+
end
|
205
|
+
end
|
184
206
|
end
|
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: 9.0
|
4
|
+
version: 9.1.0
|
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-
|
12
|
+
date: 2011-10-02 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153532820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153532820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yard
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153532100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153532100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rbgccxml
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153531500 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153531500
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: gccxml_gem
|
49
|
-
requirement: &
|
49
|
+
requirement: &2153530920 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '!='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.9.3
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153530920
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &2153530280 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '2.0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2153530280
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &2153529780 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '1.0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2153529780
|
80
80
|
description:
|
81
81
|
email:
|
82
82
|
- kim@burgestrand.se
|