wimp 1.0.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.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +5 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +154 -0
  7. data/Rakefile +6 -0
  8. data/lib/gen/README.md +6 -0
  9. data/lib/gen/client_api_login_service.rb +270 -0
  10. data/lib/gen/client_api_service.rb +3016 -0
  11. data/lib/gen/services_constants.rb +13 -0
  12. data/lib/gen/services_types.rb +1035 -0
  13. data/lib/wimp.rb +66 -0
  14. data/lib/wimp/base.rb +30 -0
  15. data/lib/wimp/error.rb +4 -0
  16. data/lib/wimp/playlist.rb +93 -0
  17. data/lib/wimp/simple_artist.rb +10 -0
  18. data/lib/wimp/track.rb +91 -0
  19. data/lib/wimp/version.rb +3 -0
  20. data/resources/skipped-methods.md +44 -0
  21. data/resources/thrift/services.thrift +396 -0
  22. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_add_my_track_id.yml +263 -0
  23. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_add_tracks_to_playlist.yml +445 -0
  24. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_be_able_to_remove_tracks.yml +452 -0
  25. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_create_a_playlist.yml +98 -0
  26. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_find_by_uuid.yml +49 -0
  27. data/spec/fixtures/vcr_cassettes/WiMP_Playlist/should_not_crash_on_invalid_pos.yml +372 -0
  28. data/spec/fixtures/vcr_cassettes/WiMP_Track/.yml +169 -0
  29. data/spec/fixtures/vcr_cassettes/WiMP_Track/should_be_searchable.yml +169 -0
  30. data/spec/fixtures/vcr_cassettes/WiMP_Track/should_paginate.yml +61 -0
  31. data/spec/fixtures/vcr_cassettes/login/should_raise_error_using_invalid_credentials.yml +47 -0
  32. data/spec/fixtures/vcr_cassettes/login/should_return_sesson_id_on_successfull_login.yml +53 -0
  33. data/spec/login_spec.rb +21 -0
  34. data/spec/playlist_spec.rb +37 -0
  35. data/spec/spec_helper.rb +19 -0
  36. data/spec/track_spec.rb +26 -0
  37. data/wimp.gemspec +30 -0
  38. metadata +207 -0
@@ -0,0 +1,169 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://client.wimpmusic.com/clientapi/servicelogin
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: !binary |-
9
+ gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAAVdXVhYUByZWFsbHlteW1h
10
+ aWwuY29tCwACAAAABnFkZ2ZiYgsAAwAAAAZ3aW1wc2ULAAQAAAAJc2xiaDRV
11
+ VWdICwAFAAAAFUFuZHJvaWRfV0lNUC0yLjUuMi5zZQsABgAAAAo4MjYzMzcx
12
+ MDg0AA==
13
+ headers:
14
+ Content-Type:
15
+ - application/x-thrift
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ User-Agent:
21
+ - Ruby
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx/1.1.19
29
+ Date:
30
+ - Tue, 18 Mar 2014 15:49:02 GMT
31
+ Content-Type:
32
+ - application/x-thrift
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Connection:
36
+ - keep-alive
37
+ X-Powered-By:
38
+ - 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
39
+ Access-Control-Allow-Origin:
40
+ - '*'
41
+ body:
42
+ encoding: ASCII-8BIT
43
+ string: !binary |-
44
+ gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAAIAAEANcYACAACAOdHGgoABAAA
45
+ AUTUnno5CwAFAAAAGEtBVEZiM0lmRnFXSXVnSG9sQU5zOHVTaQsABwAAAAVW
46
+ QUxJRAgACAAAAD4CAAkAAgAKAQoACwAAAUVxtBr/CAAMAAAAAQgADQAAAAEI
47
+ AA4AAAABCAAPAAAAAQsAEAAAABV1dWFhQHJlYWxseW15bWFpbC5jb20KABEA
48
+ AAFE+3jFfwgAEgAAAAMKABMAAAAAAAAAAAsAFAAAAAVJTlRSTwIAFQECABYA
49
+ CAAXAAAABAoAGAAAAAAAAAAACgAZAAABRNV9xaYKABoAAAAAAAAAAAoAGwAA
50
+ AAAAAAAACgAcAAABRNV9xaYIAB0AAAABAAA=
51
+ http_version:
52
+ recorded_at: Tue, 18 Mar 2014 15:49:02 GMT
53
+ - request:
54
+ method: post
55
+ uri: http://client.wimpmusic.com/clientapi/service
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: !binary |-
59
+ gAEAAQAAAAZzZWFyY2gAAAAACwABAAAAD21hZG9ubmEgaHVuZyB1cAgAAgAA
60
+ AAAIAAMAAAAACAAEAAAACgsABQAAABhLQVRGYjNJZkZxV0l1Z0hvbEFOczh1
61
+ U2kIAAYAAAAAAA==
62
+ headers:
63
+ Content-Type:
64
+ - application/x-thrift
65
+ Accept-Encoding:
66
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
67
+ Accept:
68
+ - '*/*'
69
+ User-Agent:
70
+ - Ruby
71
+ response:
72
+ status:
73
+ code: 200
74
+ message: OK
75
+ headers:
76
+ Server:
77
+ - nginx/1.1.19
78
+ Date:
79
+ - Tue, 18 Mar 2014 15:49:02 GMT
80
+ Content-Type:
81
+ - application/x-thrift
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Connection:
85
+ - keep-alive
86
+ X-Powered-By:
87
+ - 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
88
+ Access-Control-Allow-Origin:
89
+ - '*'
90
+ body:
91
+ encoding: ASCII-8BIT
92
+ string: !binary |-
93
+ gAEAAgAAAAZzZWFyY2gAAAAADAAADwABDAAAAAAPAAIMAAAABQsAAQAAAAdI
94
+ dW5nIFVwCwACAAAAB01hZG9ubmEIAAMAADy5CAAEAAR2nAsABQAAABRIdW5n
95
+ IFVwIChJbnQnbCBNYXhpKQsABgAAAGUyMDA1IFdhcm5lciBCcm9zLiBSZWNv
96
+ cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
97
+ bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLggABwAAAMsIAAsA
98
+ BHadCAANAAAAAQgADgAAAAELAA8AAAANUmFkaW8gVmVyc2lvbgoAEAAAAQdY
99
+ W6WAAgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAA
100
+ AAJFUAIAGQEIABoAAAABCAAbAADcUQgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
101
+ AQAAABVXYXJuZXIgQnJvcy4vTWF2ZXJpY2sIAAIAAAOTCwADAAAAA1dNRwgA
102
+ BAAAAVYLAAUAAAAVV2FybmVyIEJyb3MuL01hdmVyaWNrCAAGAAf0YAAIAB8A
103
+ AAAACgAgAAABB1hbpYALACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2Rj
104
+ L3BzZXI/cHJvZHVjdElkPTI5MjUwOSZjb250ZW50VHlwZUlkPTEyJmNjb2Rl
105
+ PVBUAgAjAAgAJAAAAEwLACUAAAB9MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3Jk
106
+ cyBJbmMuIGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5j
107
+ LiBmb3IgdGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJv
108
+ cy4vTWF2ZXJpY2sACwABAAAADkh1bmcgVXAgW0xpdmVdCwACAAAAB01hZG9u
109
+ bmEIAAMAADy5CAAEAAYB0QsABQAAABRUaGUgQ29uZmVzc2lvbnMgVG91cgsA
110
+ BgAAAGUyMDA2IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBV
111
+ LlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQg
112
+ b3V0c2lkZSB0aGUgVS5TLggABwAAAk4IAAsABgHeCAANAAAAAQgADgAAAA0L
113
+ AA8AAAAETGl2ZQoAEAAAARBq77mAAgARAQIAEgEEABMAAAAAAAAAAAIAFQAC
114
+ ABYACwAXAAAAA1MwMgsAGAAAAAVBbGJ1bQIAGQEIABoAAAABCAAbAAAQvggA
115
+ HAAAAAAEAB0AAAAAAAAAAAwAHgsAAQAAAA9XYXJuZXIgQnJvdGhlcnMIAAIA
116
+ AVtZCwADAAAAA1dNRwgABAAAAVYLAAUAAAAITWF2ZXJpY2sIAAYAEQlQAAgA
117
+ HwAAAAAKACAAAAEQau+5gAsAIQAAAEhodHRwOi8vd2RjLmFzcGlyby5jb20v
118
+ ZGMvcHNlcj9wcm9kdWN0SWQ9MzkzNjk0JmNvbnRlbnRUeXBlSWQ9MTImY2Nv
119
+ ZGU9UFQCACMACAAkAAAAFAsAJQAAAHcyMDA2IFdhcm5lciBCcm9zLiBSZWNv
120
+ cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
121
+ bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLiAvIFdhcm5lciBC
122
+ cm90aGVycwALAAEAAAAcSHVuZyBVcCAoU0RQIEV4dGVuZGVkIFZvY2FsKQsA
123
+ AgAAAAdNYWRvbm5hCAADAAA8uQgABAAEfBULAAUAAAAUSHVuZyBVcCAoREog
124
+ VmVyc2lvbikLAAYAAABlMjAwNSBXYXJuZXIgQnJvcy4gUmVjb3JkcyBJbmMu
125
+ IGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5jLiBmb3Ig
126
+ dGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4IAAcAAAHdCAALAAR8FggADQAA
127
+ AAEIAA4AAAABCwAPAAAAElNEUCBFeHRlbmRlZCBWb2NhbAoAEAAAAQmZI+WA
128
+ AgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAAAAVB
129
+ bGJ1bQIAGQEIABoAAAABCAAbAAAFhAgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
130
+ AQAAAA9XYXJuZXIgQnJvdGhlcnMIAAIAAVtZCwADAAAAA1dNRwgABAAAAVYL
131
+ AAUAAAAMV2FybmVyIEJyb3MuCAAGABD3ZQAIAB8AAAAACgAgAAABCZkj5YAL
132
+ ACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2RjL3BzZXI/cHJvZHVjdElk
133
+ PTI5MzkxMCZjb250ZW50VHlwZUlkPTEyJmNjb2RlPVBUAgAjAAgAJAAAAA4L
134
+ ACUAAAB3MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3JkcyBJbmMuIGZvciB0aGUg
135
+ VS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5jLiBmb3IgdGhlIHdvcmxk
136
+ IG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJvdGhlcnMACwABAAAAI0h1
137
+ bmcgVXAgKFNEUCBFeHRlbmRlZCBWb2NhbCkgKEVkaXQpCwACAAAAB01hZG9u
138
+ bmEIAAMAADy5CAAEABlTwQsABQAAABFIdW5nIFVwIChSZW1peGVzKQsABgAA
139
+ AGUyMDA1IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMu
140
+ IGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0
141
+ c2lkZSB0aGUgVS5TLggABwAAASkIAAsAGVPCCAANAAAAAQgADgAAAAELAA8A
142
+ AAAZU0RQIEV4dGVuZGVkIFZvY2FsICAgRWRpdAoAEAAAAQb7cj8AAgARAQIA
143
+ EgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAAAAJFUAIAGQEI
144
+ ABoAAAABCAAbAAAC3AgAHAAAAAAEAB0AAAAAAAAAAAwAHgsAAQAAAA9XYXJu
145
+ ZXIgQnJvdGhlcnMIAAIAAVtZCwADAAAAA1dNRwgABAAAAVYLAAUAAAAVV2Fy
146
+ bmVyIEJyb3MuL01hdmVyaWNrCAAGABELEwAIAB8AAAAACgAgAAABBvtyPwAL
147
+ ACEAAABJaHR0cDovL3dkYy5hc3Bpcm8uY29tL2RjL3BzZXI/cHJvZHVjdElk
148
+ PTE2NTk4NDImY29udGVudFR5cGVJZD0xMiZjY29kZT1QVAIAIwAIACQAAAAM
149
+ CwAlAAAAdzIwMDUgV2FybmVyIEJyb3MuIFJlY29yZHMgSW5jLiBmb3IgdGhl
150
+ IFUuUy4gYW5kIFdFQSBJbnRlcm5hdGlvbmFsIEluYy4gZm9yIHRoZSB3b3Js
151
+ ZCBvdXRzaWRlIHRoZSBVLlMuIC8gV2FybmVyIEJyb3RoZXJzAAsAAQAAAB9I
152
+ dW5nIFVwIChDaHVzICYgQ2ViYWxsb3MgUmVtaXgpCwACAAAAB01hZG9ubmEI
153
+ AAMAADy5CAAEAAR8FQsABQAAABRIdW5nIFVwIChESiBWZXJzaW9uKQsABgAA
154
+ AGUyMDA1IFdhcm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMu
155
+ IGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0
156
+ c2lkZSB0aGUgVS5TLggABwAAAkQIAAsABHwZCAANAAAAAQgADgAAAAQLAA8A
157
+ AAAVQ2h1cyAmIENlYmFsbG9zIFJlbWl4CgAQAAAAAAAAAAACABEAAgASAQQA
158
+ EwAAAAAAAAAAAgAVAQIAFgALABcAAAAACwAYAAAABUFsYnVtAgAZAQgAGgAA
159
+ AAEIABsAAAGrCAAcAAAAAAQAHQAAAAAAAAAADAAeCwABAAAAD1dhcm5lciBC
160
+ cm90aGVycwgAAgABW1kLAAMAAAADV01HCAAEAAABVgsABQAAAAxXYXJuZXIg
161
+ QnJvcy4IAAYAEPdlAAgAHwAAAAAKACAAAAEJmSPlgAsAIQAAAEhodHRwOi8v
162
+ d2RjLmFzcGlyby5jb20vZGMvcHNlcj9wcm9kdWN0SWQ9MjkzOTEzJmNvbnRl
163
+ bnRUeXBlSWQ9MTImY2NvZGU9UFQCACMACAAkAAAADAsAJQAAAHcyMDA1IFdh
164
+ cm5lciBCcm9zLiBSZWNvcmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEg
165
+ SW50ZXJuYXRpb25hbCBJbmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUg
166
+ VS5TLiAvIFdhcm5lciBCcm90aGVycwAPAAMMAAAAAAAA
167
+ http_version:
168
+ recorded_at: Tue, 18 Mar 2014 15:49:03 GMT
169
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://client.wimpmusic.com/clientapi/service
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: !binary |-
9
+ gAEAAQAAAAZzZWFyY2gAAAAACwABAAAAD21hZG9ubmEgaHVuZyB1cAgAAgAA
10
+ AAAIAAMAAAAACAAEAAAAAQsABQAAABh4SVhGVHpTeFhBZUFacnNRa25lajVo
11
+ N0cIAAYAAAAAAA==
12
+ headers:
13
+ Content-Type:
14
+ - application/x-thrift
15
+ Accept-Encoding:
16
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
17
+ Accept:
18
+ - '*/*'
19
+ User-Agent:
20
+ - Ruby
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Server:
27
+ - nginx/1.1.19
28
+ Date:
29
+ - Tue, 18 Mar 2014 11:49:51 GMT
30
+ Content-Type:
31
+ - application/x-thrift
32
+ Transfer-Encoding:
33
+ - chunked
34
+ Connection:
35
+ - keep-alive
36
+ X-Powered-By:
37
+ - 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
38
+ Access-Control-Allow-Origin:
39
+ - '*'
40
+ body:
41
+ encoding: ASCII-8BIT
42
+ string: !binary |-
43
+ gAEAAgAAAAZzZWFyY2gAAAAADAAADwABDAAAAAAPAAIMAAAAAQsAAQAAAAdI
44
+ dW5nIFVwCwACAAAAB01hZG9ubmEIAAMAADy5CAAEAAR2nAsABQAAABRIdW5n
45
+ IFVwIChJbnQnbCBNYXhpKQsABgAAAGUyMDA1IFdhcm5lciBCcm9zLiBSZWNv
46
+ cmRzIEluYy4gZm9yIHRoZSBVLlMuIGFuZCBXRUEgSW50ZXJuYXRpb25hbCBJ
47
+ bmMuIGZvciB0aGUgd29ybGQgb3V0c2lkZSB0aGUgVS5TLggABwAAAMsIAAsA
48
+ BHadCAANAAAAAQgADgAAAAELAA8AAAANUmFkaW8gVmVyc2lvbgoAEAAAAQdY
49
+ W6WAAgARAQIAEgEEABMAAAAAAAAAAAIAFQACABYACwAXAAAAA1MwMgsAGAAA
50
+ AAJFUAIAGQEIABoAAAABCAAbAADcUQgAHAAAAAAEAB0AAAAAAAAAAAwAHgsA
51
+ AQAAABVXYXJuZXIgQnJvcy4vTWF2ZXJpY2sIAAIAAAOTCwADAAAAA1dNRwgA
52
+ BAAAAVYLAAUAAAAVV2FybmVyIEJyb3MuL01hdmVyaWNrCAAGAAf0YAAIAB8A
53
+ AAAACgAgAAABB1hbpYALACEAAABIaHR0cDovL3dkYy5hc3Bpcm8uY29tL2Rj
54
+ L3BzZXI/cHJvZHVjdElkPTI5MjUwOSZjb250ZW50VHlwZUlkPTEyJmNjb2Rl
55
+ PVBUAgAjAAgAJAAAAEwLACUAAAB9MjAwNSBXYXJuZXIgQnJvcy4gUmVjb3Jk
56
+ cyBJbmMuIGZvciB0aGUgVS5TLiBhbmQgV0VBIEludGVybmF0aW9uYWwgSW5j
57
+ LiBmb3IgdGhlIHdvcmxkIG91dHNpZGUgdGhlIFUuUy4gLyBXYXJuZXIgQnJv
58
+ cy4vTWF2ZXJpY2sADwADDAAAAAAAAA==
59
+ http_version:
60
+ recorded_at: Tue, 18 Mar 2014 11:49:53 GMT
61
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://client.wimpmusic.com/clientapi/servicelogin
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: !binary |-
9
+ gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAACLTELAAIAAAACLTELAAMA
10
+ AAAGd2ltcHNlCwAEAAAACXNsYmg0VVVnSAsABQAAABVBbmRyb2lkX1dJTVAt
11
+ Mi41LjIuc2ULAAYAAAAKODI2MzM3MTA4NAA=
12
+ headers:
13
+ Content-Type:
14
+ - application/x-thrift
15
+ Accept-Encoding:
16
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
17
+ Accept:
18
+ - '*/*'
19
+ User-Agent:
20
+ - Ruby
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Server:
27
+ - nginx/1.1.19
28
+ Date:
29
+ - Tue, 18 Mar 2014 10:20:18 GMT
30
+ Content-Type:
31
+ - application/x-thrift
32
+ Transfer-Encoding:
33
+ - chunked
34
+ Connection:
35
+ - keep-alive
36
+ X-Powered-By:
37
+ - 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
38
+ Access-Control-Allow-Origin:
39
+ - '*'
40
+ body:
41
+ encoding: ASCII-8BIT
42
+ string: !binary |-
43
+ gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAILAAEAAAAZTm8gcHJvZmlsZSBm
44
+ b3VuZCBmb3IgWy0xXQAA
45
+ http_version:
46
+ recorded_at: Tue, 18 Mar 2014 10:20:21 GMT
47
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://client.wimpmusic.com/clientapi/servicelogin
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: !binary |-
9
+ gAEAAQAAAAtzaW1wbGVMb2dpbgAAAAALAAEAAAAVdXVhYUByZWFsbHlteW1h
10
+ aWwuY29tCwACAAAABnFkZ2ZiYgsAAwAAAAZ3aW1wc2ULAAQAAAAJc2xiaDRV
11
+ VWdICwAFAAAAFUFuZHJvaWRfV0lNUC0yLjUuMi5zZQsABgAAAAo4MjYzMzcx
12
+ MDg0AA==
13
+ headers:
14
+ Content-Type:
15
+ - application/x-thrift
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ User-Agent:
21
+ - Ruby
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx/1.1.19
29
+ Date:
30
+ - Tue, 18 Mar 2014 10:20:18 GMT
31
+ Content-Type:
32
+ - application/x-thrift
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Connection:
36
+ - keep-alive
37
+ X-Powered-By:
38
+ - 'Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
39
+ Access-Control-Allow-Origin:
40
+ - '*'
41
+ body:
42
+ encoding: ASCII-8BIT
43
+ string: !binary |-
44
+ gAEAAgAAAAtzaW1wbGVMb2dpbgAAAAAMAAAIAAEANcYACAACAOdHGgoABAAA
45
+ AUTUnno5CwAFAAAAGHRtU0ZkQnE5QWE1am83eG14ZVZRWGN6agsABwAAAAVW
46
+ QUxJRAgACAAAAD4CAAkAAgAKAQoACwAAAUVxtBr/CAAMAAAAAQgADQAAAAEI
47
+ AA4AAAABCAAPAAAAAQsAEAAAABV1dWFhQHJlYWxseW15bWFpbC5jb20KABEA
48
+ AAFE+3jFfwgAEgAAAAMKABMAAAAAAAAAAAsAFAAAAAVJTlRSTwIAFQECABYA
49
+ CAAXAAAABAoAGAAAAAAAAAAACgAZAAAAAAAAAAAKABoAAAAAAAAAAAoAGwAA
50
+ AAAAAAAACgAcAAAAAAAAAAAIAB0AAAABAAA=
51
+ http_version:
52
+ recorded_at: Tue, 18 Mar 2014 10:20:21 GMT
53
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,21 @@
1
+ describe "login", vcr: {record: :new_episodes} do
2
+ after(:each) { WiMP.configuration.logout! }
3
+
4
+ it "should return sesson id on successfull login" do
5
+ WiMP.configure do |config|
6
+ config.username = "uuaa@reallymymail.com"
7
+ config.password = "qdgfbb"
8
+ end
9
+ WiMP.configuration.session.should_not be_empty
10
+ end
11
+
12
+ it "should raise error using invalid credentials" do
13
+ WiMP.configure do |config|
14
+ config.username = "-1"
15
+ config.password = "-1"
16
+ end
17
+ expect {
18
+ WiMP.configuration.session
19
+ }.to raise_error(WiMP::LoginFailed)
20
+ end
21
+ end
@@ -0,0 +1,37 @@
1
+ describe WiMP::Playlist, vcr: {record: :new_episodes} do
2
+ before(:each) do
3
+ WiMP.configure do |config|
4
+ config.username = "uuaa@reallymymail.com"
5
+ config.password = "qdgfbb"
6
+ end
7
+ end
8
+
9
+ let(:uuid) { "83331404-e312-4fe3-a6eb-00843e195c7b" }
10
+ let(:playlist) { WiMP::Playlist.find(uuid) }
11
+
12
+ it "should create a playlist" do
13
+ playlist = WiMP::Playlist.create("Tjohoo")
14
+ playlist.url.should match(%r{http://wimpmusic.se/playlist/\w+})
15
+ end
16
+
17
+ it "should find by uuid" do
18
+ playlist.uuid.should eq(uuid)
19
+ end
20
+
21
+ it "should be able to add tracks to playlist" do
22
+ tracks = WiMP::Track.search("elvis", limit: 5)
23
+ playlist.add_tracks(tracks, start_position: 100).should be_true
24
+ end
25
+
26
+ it "should add my track id" do
27
+ playlist.add_tracks_by_id([415672]).should be_true
28
+ end
29
+
30
+ it "should be able to remove tracks" do
31
+ playlist.remove_tracks_by_indices([1,2,3]).should be_true
32
+ end
33
+
34
+ it "should not crash on invalid pos" do
35
+ playlist.remove_tracks_by_indices([400]).should be_true
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ require "rspec"
2
+ require "webmock/rspec"
3
+ require "wimp"
4
+ require "vcr"
5
+ require "uri"
6
+
7
+ RSpec.configure do |config|
8
+ config.mock_with :rspec
9
+ end
10
+
11
+ VCR.configure do |c|
12
+ c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
13
+ c.hook_into :webmock
14
+ c.default_cassette_options = {
15
+ record: :new_episodes
16
+ }
17
+ c.allow_http_connections_when_no_cassette = false
18
+ c.configure_rspec_metadata!
19
+ end
@@ -0,0 +1,26 @@
1
+ describe WiMP::Track, vcr: {record: :new_episodes} do
2
+ before(:each) do
3
+ WiMP.configure do |config|
4
+ config.username = "uuaa@reallymymail.com"
5
+ config.password = "qdgfbb"
6
+ end
7
+ end
8
+
9
+ it "should be searchable" do
10
+ tracks = WiMP::Track.search("madonna hung up")
11
+ tracks.should_not be_empty
12
+ tracks.each do |track|
13
+ track.title.should be_a(String)
14
+ track.id.should be_a(Integer)
15
+ track.artist_id.should be_a(Integer)
16
+ track.url.should match(%r{http://wimpmusic.se/track/\d+})
17
+ track.artist.url.should match(%r{http://wimpmusic.se/artist/\d+})
18
+ track.artist.name.should be_a(String)
19
+ track.artist.id.should be_a(Integer)
20
+ end
21
+ end
22
+
23
+ it "should paginate" do
24
+ WiMP::Track.search("madonna hung up", limit: 1).count.should eq(1)
25
+ end
26
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "wimp/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "wimp"
8
+ spec.version = Wimp::VERSION
9
+ spec.authors = ["Linus Oleander"]
10
+ spec.email = ["linus@oleander.nu"]
11
+ spec.summary = %q{Ruby bindings for WiMP}
12
+ spec.homepage = "https://github.com/oleander/wimp-rb"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.5"
21
+ spec.add_development_dependency "rake"
22
+
23
+ spec.add_dependency "thrift"
24
+ spec.add_dependency "rack"
25
+ spec.add_dependency "thin"
26
+
27
+ spec.add_development_dependency "vcr"
28
+ spec.add_development_dependency "rspec"
29
+ spec.add_development_dependency "webmock", "1.8.0"
30
+ end