hallon 0.15.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/CHANGELOG.md +40 -0
  2. data/README.markdown +1 -1
  3. data/dev/application_key_converter.rb +11 -0
  4. data/examples/example_support.rb +4 -0
  5. data/examples/playing_audio.rb +1 -1
  6. data/lib/hallon.rb +11 -0
  7. data/lib/hallon/album_browse.rb +3 -3
  8. data/lib/hallon/artist_browse.rb +20 -4
  9. data/lib/hallon/blob.rb +11 -0
  10. data/lib/hallon/enumerator.rb +5 -0
  11. data/lib/hallon/ext/spotify.rb +2 -0
  12. data/lib/hallon/image.rb +7 -1
  13. data/lib/hallon/link.rb +5 -2
  14. data/lib/hallon/observable.rb +48 -1
  15. data/lib/hallon/player.rb +15 -26
  16. data/lib/hallon/playlist.rb +16 -25
  17. data/lib/hallon/playlist_container.rb +38 -0
  18. data/lib/hallon/search.rb +75 -4
  19. data/lib/hallon/session.rb +31 -42
  20. data/lib/hallon/toplist.rb +3 -3
  21. data/lib/hallon/track.rb +28 -10
  22. data/lib/hallon/version.rb +1 -1
  23. data/spec/hallon/album_browse_spec.rb +68 -18
  24. data/spec/hallon/album_spec.rb +62 -27
  25. data/spec/hallon/artist_browse_spec.rb +106 -31
  26. data/spec/hallon/artist_spec.rb +32 -18
  27. data/spec/hallon/blob_spec.rb +6 -0
  28. data/spec/hallon/enumerator_spec.rb +10 -0
  29. data/spec/hallon/error_spec.rb +4 -4
  30. data/spec/hallon/hallon_spec.rb +1 -1
  31. data/spec/hallon/image_spec.rb +58 -47
  32. data/spec/hallon/link_spec.rb +51 -43
  33. data/spec/hallon/observable/album_browse_spec.rb +1 -1
  34. data/spec/hallon/observable/artist_browse_spec.rb +1 -1
  35. data/spec/hallon/observable/image_spec.rb +1 -1
  36. data/spec/hallon/observable/playlist_container_spec.rb +4 -4
  37. data/spec/hallon/observable/playlist_spec.rb +14 -14
  38. data/spec/hallon/observable/post_spec.rb +1 -1
  39. data/spec/hallon/observable/search_spec.rb +1 -1
  40. data/spec/hallon/observable/session_spec.rb +17 -17
  41. data/spec/hallon/observable/toplist_spec.rb +1 -1
  42. data/spec/hallon/observable_spec.rb +40 -6
  43. data/spec/hallon/player_spec.rb +1 -1
  44. data/spec/hallon/playlist_container_spec.rb +96 -13
  45. data/spec/hallon/playlist_spec.rb +180 -45
  46. data/spec/hallon/search_spec.rb +211 -28
  47. data/spec/hallon/session_spec.rb +44 -38
  48. data/spec/hallon/toplist_spec.rb +31 -14
  49. data/spec/hallon/track_spec.rb +159 -50
  50. data/spec/hallon/user_post_spec.rb +10 -5
  51. data/spec/hallon/user_spec.rb +60 -50
  52. data/spec/spec_helper.rb +40 -15
  53. data/spec/support/album_mocks.rb +30 -0
  54. data/spec/support/artist_mocks.rb +36 -0
  55. data/spec/support/common_objects.rb +0 -201
  56. data/spec/support/image_mocks.rb +34 -0
  57. data/spec/support/playlist_container_mocks.rb +36 -0
  58. data/spec/support/playlist_mocks.rb +70 -0
  59. data/spec/support/search_mocks.rb +23 -0
  60. data/spec/support/session_mocks.rb +33 -0
  61. data/spec/support/toplist_mocks.rb +19 -0
  62. data/spec/support/track_mocks.rb +28 -0
  63. data/spec/support/user_mocks.rb +20 -0
  64. metadata +40 -18
  65. data/spec/support/context_stub_session.rb +0 -5
@@ -0,0 +1,19 @@
1
+ RSpec::Core::ExampleGroup.instance_eval do
2
+ let(:mock_toplists) do
3
+ {
4
+ default: mock_toplistbrowse,
5
+ empty: mock_empty_toplistbrowse
6
+ }
7
+ end
8
+
9
+ let(:mock_toplistbrowse) do
10
+ artists = pointer_array_with(mock_artist, mock_artist_two)
11
+ albums = pointer_array_with(mock_album)
12
+ tracks = pointer_array_with(mock_track, mock_track_two)
13
+ Spotify.mock_toplistbrowse(:ok, 2751, artists.length, artists, albums.length, albums, tracks.length, tracks)
14
+ end
15
+
16
+ let(:mock_empty_toplistbrowse) do
17
+ Spotify.mock_toplistbrowse(:ok, -1, 0, nil, 0, nil, 0, nil)
18
+ end
19
+ end
@@ -0,0 +1,28 @@
1
+ RSpec::Core::ExampleGroup.instance_eval do
2
+ let(:mock_tracks) do
3
+ {
4
+ default: mock_track,
5
+ empty: mock_empty_track,
6
+ linked: mock_linked_track
7
+ }
8
+ end
9
+
10
+ let(:mock_track) do
11
+ artists = pointer_array_with(mock_artist, mock_artist_two)
12
+ Spotify.mock_track!("They", artists.length, artists, mock_album, 123_456, 42, 2, 7, :ok, true, :available, :done, false, true, nil, true, false)
13
+ end
14
+
15
+ let(:mock_track_two) do
16
+ artists = pointer_array_with(mock_artist)
17
+ Spotify.mock_track!("Amazing", artists.length, artists, mock_album, 123_456, 42, 2, 7, :ok, true, :available, :no, false, true, nil, true, true)
18
+ end
19
+
20
+ let(:mock_linked_track) do
21
+ artists = pointer_array_with(mock_artist_two)
22
+ Spotify.mock_track!("They", artists.length, artists, mock_album, 60, 100, 1, 1, :ok, true, :available, :no, false, true, mock_track, false, false)
23
+ end
24
+
25
+ let(:mock_empty_track) do
26
+ Spotify.mock_track!(nil, 0, nil, nil, 0, 0, 0, 0, :ok, false, :unavailable, :no, false, true, nil, false, false)
27
+ end
28
+ end
@@ -0,0 +1,20 @@
1
+ RSpec::Core::ExampleGroup.instance_eval do
2
+ let(:mock_users) do
3
+ {
4
+ default: mock_user,
5
+ empty: mock_empty_user
6
+ }
7
+ end
8
+
9
+ let(:mock_user) do
10
+ Spotify.mock_user!("burgestrand", "Burgestrand", true)
11
+ end
12
+
13
+ let(:mock_empty_user) do
14
+ Spotify.mock_user!(nil, nil, false)
15
+ end
16
+
17
+ let(:mock_user_raw) do
18
+ FFI::Pointer.new(mock_user.address)
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hallon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.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: 2012-04-10 00:00:00.000000000 Z
12
+ date: 2012-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ref
16
- requirement: &70257549939320 !ruby/object:Gem::Requirement
16
+ requirement: &70343012134120 !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: *70257549939320
24
+ version_requirements: *70343012134120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: spotify
27
- requirement: &70257549938820 !ruby/object:Gem::Requirement
27
+ requirement: &70343012131940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 11.0.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70257549938820
35
+ version_requirements: *70343012131940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70257549938160 !ruby/object:Gem::Requirement
38
+ requirement: &70343012130580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.8'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70257549938160
46
+ version_requirements: *70343012130580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70257549937260 !ruby/object:Gem::Requirement
49
+ requirement: &70343012128740 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70257549937260
57
+ version_requirements: *70343012128740
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: yard
60
- requirement: &70257549936520 !ruby/object:Gem::Requirement
60
+ requirement: &70343012127800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70257549936520
68
+ version_requirements: *70343012127800
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
- requirement: &70257549935960 !ruby/object:Gem::Requirement
71
+ requirement: &70343012126280 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70257549935960
79
+ version_requirements: *70343012126280
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdiscount
82
- requirement: &70257549935520 !ruby/object:Gem::Requirement
82
+ requirement: &70343012278320 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70257549935520
90
+ version_requirements: *70343012278320
91
91
  description:
92
92
  email: kim@burgestrand.se
93
93
  executables: []
@@ -106,6 +106,7 @@ files:
106
106
  - QUIRKS
107
107
  - README.markdown
108
108
  - Rakefile
109
+ - dev/application_key_converter.rb
109
110
  - dev/login.rb
110
111
  - examples/adding_tracks_to_playlist.rb
111
112
  - examples/example_support.rb
@@ -120,6 +121,7 @@ files:
120
121
  - lib/hallon/audio_driver.rb
121
122
  - lib/hallon/audio_queue.rb
122
123
  - lib/hallon/base.rb
124
+ - lib/hallon/blob.rb
123
125
  - lib/hallon/enumerator.rb
124
126
  - lib/hallon/error.rb
125
127
  - lib/hallon/ext/ffi.rb
@@ -156,6 +158,7 @@ files:
156
158
  - spec/hallon/artist_spec.rb
157
159
  - spec/hallon/audio_queue_spec.rb
158
160
  - spec/hallon/base_spec.rb
161
+ - spec/hallon/blob_spec.rb
159
162
  - spec/hallon/enumerator_spec.rb
160
163
  - spec/hallon/error_spec.rb
161
164
  - spec/hallon/ffi_spec.rb
@@ -190,15 +193,24 @@ files:
190
193
  - spec/mockspotify/mockspotify_spec.rb
191
194
  - spec/spec_helper.rb
192
195
  - spec/support/.gitkeep
196
+ - spec/support/album_mocks.rb
197
+ - spec/support/artist_mocks.rb
193
198
  - spec/support/audio_driver_mock.rb
194
199
  - spec/support/common_objects.rb
195
200
  - spec/support/context_logged_in.rb
196
- - spec/support/context_stub_session.rb
197
201
  - spec/support/cover_me.rb
198
202
  - spec/support/enumerable_comparison.rb
203
+ - spec/support/image_mocks.rb
204
+ - spec/support/playlist_container_mocks.rb
205
+ - spec/support/playlist_mocks.rb
206
+ - spec/support/search_mocks.rb
207
+ - spec/support/session_mocks.rb
199
208
  - spec/support/shared_for_callbacks.rb
200
209
  - spec/support/shared_for_linkable_objects.rb
201
210
  - spec/support/shared_for_loadable_objects.rb
211
+ - spec/support/toplist_mocks.rb
212
+ - spec/support/track_mocks.rb
213
+ - spec/support/user_mocks.rb
202
214
  - spec/mockspotify/libmockspotify/src/Makefile.am
203
215
  - spec/mockspotify/libmockspotify/src/album.c
204
216
  - spec/mockspotify/libmockspotify/src/albumbrowse.c
@@ -258,6 +270,7 @@ test_files:
258
270
  - spec/hallon/artist_spec.rb
259
271
  - spec/hallon/audio_queue_spec.rb
260
272
  - spec/hallon/base_spec.rb
273
+ - spec/hallon/blob_spec.rb
261
274
  - spec/hallon/enumerator_spec.rb
262
275
  - spec/hallon/error_spec.rb
263
276
  - spec/hallon/ffi_spec.rb
@@ -292,13 +305,22 @@ test_files:
292
305
  - spec/mockspotify/mockspotify_spec.rb
293
306
  - spec/spec_helper.rb
294
307
  - spec/support/.gitkeep
308
+ - spec/support/album_mocks.rb
309
+ - spec/support/artist_mocks.rb
295
310
  - spec/support/audio_driver_mock.rb
296
311
  - spec/support/common_objects.rb
297
312
  - spec/support/context_logged_in.rb
298
- - spec/support/context_stub_session.rb
299
313
  - spec/support/cover_me.rb
300
314
  - spec/support/enumerable_comparison.rb
315
+ - spec/support/image_mocks.rb
316
+ - spec/support/playlist_container_mocks.rb
317
+ - spec/support/playlist_mocks.rb
318
+ - spec/support/search_mocks.rb
319
+ - spec/support/session_mocks.rb
301
320
  - spec/support/shared_for_callbacks.rb
302
321
  - spec/support/shared_for_linkable_objects.rb
303
322
  - spec/support/shared_for_loadable_objects.rb
323
+ - spec/support/toplist_mocks.rb
324
+ - spec/support/track_mocks.rb
325
+ - spec/support/user_mocks.rb
304
326
  has_rdoc:
@@ -1,5 +0,0 @@
1
- shared_context "stubbed session", :stub_session do
2
- before do
3
- subject.stub(:session).and_return(session)
4
- end
5
- end