7digital 0.0.6 → 0.0.7

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 (269) hide show
  1. data/README.rdoc +136 -136
  2. data/lib/sevendigital.rb +53 -53
  3. data/lib/sevendigital/api_operator.rb +130 -130
  4. data/lib/sevendigital/api_operator_cached.rb +41 -41
  5. data/lib/sevendigital/api_request.rb +65 -65
  6. data/lib/sevendigital/client.rb +113 -113
  7. data/lib/sevendigital/client_configuration.rb +86 -86
  8. data/lib/sevendigital/client_digestors.rb +107 -107
  9. data/lib/sevendigital/client_managers.rb +47 -47
  10. data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -58
  11. data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -32
  12. data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
  13. data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
  14. data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -28
  15. data/lib/sevendigital/digestion_tract/digestor.rb +71 -71
  16. data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -20
  17. data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -22
  18. data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -20
  19. data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -18
  20. data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -20
  21. data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -22
  22. data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -14
  23. data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -14
  24. data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -24
  25. data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -25
  26. data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -53
  27. data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -22
  28. data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -38
  29. data/lib/sevendigital/digestion_tract/user_card_digestor.rb +23 -23
  30. data/lib/sevendigital/digestion_tract/user_digestor.rb +20 -20
  31. data/lib/sevendigital/management/artist_manager.rb +99 -99
  32. data/lib/sevendigital/management/basket_manager.rb +29 -29
  33. data/lib/sevendigital/management/manager.rb +12 -12
  34. data/lib/sevendigital/management/oauth_manager.rb +23 -23
  35. data/lib/sevendigital/management/release_manager.rb +56 -56
  36. data/lib/sevendigital/management/tag_manager.rb +10 -10
  37. data/lib/sevendigital/management/track_manager.rb +28 -28
  38. data/lib/sevendigital/management/user_card_manager.rb +26 -26
  39. data/lib/sevendigital/management/user_manager.rb +71 -71
  40. data/lib/sevendigital/model/api_response.rb +25 -25
  41. data/lib/sevendigital/model/artist.rb +94 -94
  42. data/lib/sevendigital/model/basket.rb +15 -15
  43. data/lib/sevendigital/model/basket_item.rb +14 -14
  44. data/lib/sevendigital/model/card.rb +11 -11
  45. data/lib/sevendigital/model/chart_item.rb +9 -9
  46. data/lib/sevendigital/model/download_url.rb +7 -7
  47. data/lib/sevendigital/model/format.rb +7 -7
  48. data/lib/sevendigital/model/label.rb +7 -7
  49. data/lib/sevendigital/model/locker.rb +4 -4
  50. data/lib/sevendigital/model/locker_release.rb +9 -9
  51. data/lib/sevendigital/model/locker_track.rb +9 -9
  52. data/lib/sevendigital/model/price.rb +9 -9
  53. data/lib/sevendigital/model/release.rb +52 -52
  54. data/lib/sevendigital/model/sevendigital_error.rb +11 -11
  55. data/lib/sevendigital/model/sevendigital_object.rb +57 -57
  56. data/lib/sevendigital/model/tag.rb +7 -7
  57. data/lib/sevendigital/model/track.rb +83 -83
  58. data/lib/sevendigital/model/user.rb +63 -63
  59. data/lib/sevendigital/pager.rb +23 -23
  60. data/lib/sevendigital/peachy_patchy.rb +9 -9
  61. data/lib/sevendigital/proxy_police.rb +27 -27
  62. data/lib/sevendigital/version.rb +5 -5
  63. data/spec/api_operator_cached_spec.rb +178 -178
  64. data/spec/api_operator_spec.rb +336 -336
  65. data/spec/api_request_spec.rb +31 -31
  66. data/spec/client_configuration_spec.rb +79 -74
  67. data/spec/client_spec.rb +162 -162
  68. data/spec/coverage/assets/0.3.9/app.js +66 -0
  69. data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  70. data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  71. data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  72. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  73. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  74. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  75. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  76. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  77. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  78. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  79. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  80. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  81. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  82. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  83. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  84. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  85. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  86. data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  87. data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  88. data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  89. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
  90. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  91. data/spec/coverage/assets/0.3.9/favicon.png +0 -0
  92. data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
  93. data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
  94. data/spec/coverage/assets/0.3.9/jquery.timeago.js +141 -0
  95. data/spec/coverage/assets/0.3.9/jquery.url.js +174 -0
  96. data/spec/coverage/assets/0.3.9/loading.gif +0 -0
  97. data/spec/coverage/assets/0.3.9/magnify.png +0 -0
  98. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  99. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  100. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  101. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  102. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  103. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  104. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  105. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  106. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  107. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  108. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  109. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  110. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  111. data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  112. data/spec/coverage/assets/0.3.9/stylesheet.css +341 -0
  113. data/spec/coverage/index.html +47481 -0
  114. data/spec/coverage/resultset.yml +3556 -0
  115. data/spec/data/config/sevendigital.yml +5 -5
  116. data/spec/data/configuration_env_override.yml +5 -5
  117. data/spec/data/configuration_override.yml +1 -1
  118. data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
  119. data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
  120. data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
  121. data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
  122. data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
  123. data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
  124. data/spec/digestion_tract/format_digestor_spec.rb +38 -38
  125. data/spec/digestion_tract/label_digestor_spec.rb +33 -33
  126. data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
  127. data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
  128. data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
  129. data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
  130. data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
  131. data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
  132. data/spec/digestion_tract/price_digestor_spec.rb +73 -73
  133. data/spec/digestion_tract/release_digestor_spec.rb +101 -101
  134. data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
  135. data/spec/digestion_tract/track_digestor_spec.rb +104 -104
  136. data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
  137. data/spec/digestion_tract/user_digestor_spec.rb +44 -44
  138. data/spec/management/artist_manager_spec.rb +151 -151
  139. data/spec/management/basket_manager_spec.rb +77 -77
  140. data/spec/management/oauth_manager_spec.rb +72 -72
  141. data/spec/management/release_manager_spec.rb +200 -200
  142. data/spec/management/tag_manager_spec.rb +34 -34
  143. data/spec/management/track_manager_spec.rb +107 -107
  144. data/spec/management/user_card_manager_spec.rb +78 -78
  145. data/spec/management/user_manager_spec.rb +202 -202
  146. data/spec/model/api_response_spec.rb +48 -48
  147. data/spec/model/artist_spec.rb +154 -154
  148. data/spec/model/basket_spec.rb +62 -62
  149. data/spec/model/coverage/assets/0.3.9/app.js +66 -0
  150. data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  151. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  152. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  153. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  154. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  155. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  156. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  157. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  158. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  159. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  160. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  161. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  162. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  163. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  164. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  165. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  166. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  167. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  168. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  169. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  170. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
  171. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  172. data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
  173. data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
  174. data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
  175. data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +141 -0
  176. data/spec/model/coverage/assets/0.3.9/jquery.url.js +174 -0
  177. data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
  178. data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
  179. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  180. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  181. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  182. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  183. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  184. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  185. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  186. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  187. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  188. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  189. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  190. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  191. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  192. data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  193. data/spec/model/coverage/assets/0.3.9/stylesheet.css +341 -0
  194. data/spec/model/coverage/index.html +8637 -0
  195. data/spec/model/coverage/resultset.yml +642 -0
  196. data/spec/model/release_spec.rb +122 -122
  197. data/spec/model/sevendigital_object_spec.rb +73 -73
  198. data/spec/model/track_spec.rb +144 -144
  199. data/spec/model/user_spec.rb +160 -160
  200. data/spec/pager_spec.rb +7 -7
  201. data/spec/peachy_spec_helper_patch.rb +6 -6
  202. data/spec/proxy_police_spec.rb +69 -69
  203. data/spec/sevendigital_spec.rb +51 -70
  204. data/spec/sevendigital_spec.yml +4 -4
  205. data/spec/spec_helper.rb +64 -64
  206. data/spec/test-xml/methods/artist/browse.xml +21 -21
  207. data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
  208. data/spec/test-xml/methods/artist/chart.xml +30 -30
  209. data/spec/test-xml/methods/artist/details.xml +9 -9
  210. data/spec/test-xml/methods/artist/releases.xml +544 -544
  211. data/spec/test-xml/methods/artist/search.xml +18 -18
  212. data/spec/test-xml/methods/artist/similar.xml +39 -39
  213. data/spec/test-xml/methods/artist/tags.xml +11 -11
  214. data/spec/test-xml/methods/artist/toptracks.xml +279 -279
  215. data/spec/test-xml/methods/basket/additem.xml +23 -23
  216. data/spec/test-xml/methods/basket/create.xml +10 -10
  217. data/spec/test-xml/methods/basket/index.xml +23 -23
  218. data/spec/test-xml/methods/basket/removeitem.xml +10 -10
  219. data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
  220. data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
  221. data/spec/test-xml/methods/release/bydate.xml +173 -173
  222. data/spec/test-xml/methods/release/bytag/top.xml +150 -150
  223. data/spec/test-xml/methods/release/chart.xml +181 -181
  224. data/spec/test-xml/methods/release/details.xml +48 -48
  225. data/spec/test-xml/methods/release/recommend.xml +89 -89
  226. data/spec/test-xml/methods/release/search.xml +194 -194
  227. data/spec/test-xml/methods/release/tags.xml +27 -27
  228. data/spec/test-xml/methods/release/tracks.xml +28 -28
  229. data/spec/test-xml/methods/tag/index.xml +16 -16
  230. data/spec/test-xml/methods/track/chart.xml +149 -149
  231. data/spec/test-xml/methods/track/details.xml +30 -30
  232. data/spec/test-xml/methods/track/search.xml +159 -159
  233. data/spec/test-xml/methods/user/locker.xml +49 -49
  234. data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
  235. data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
  236. data/spec/test-xml/methods/user/purchase/basket.xml +49 -0
  237. data/spec/test-xml/methods/user/purchase/item.xml +48 -48
  238. data/spec/test-xml/methods/user/signUp.xml +5 -5
  239. data/spec/test-xml/objects/artist.xml +6 -6
  240. data/spec/test-xml/objects/artist_chart_item.xml +7 -7
  241. data/spec/test-xml/objects/artist_list.xml +22 -22
  242. data/spec/test-xml/objects/artist_list_empty.xml +4 -4
  243. data/spec/test-xml/objects/basket.xml +21 -21
  244. data/spec/test-xml/objects/basket_item.xml +11 -11
  245. data/spec/test-xml/objects/basket_item_list.xml +25 -25
  246. data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
  247. data/spec/test-xml/objects/download_url.xml +7 -7
  248. data/spec/test-xml/objects/locker.xml +47 -47
  249. data/spec/test-xml/objects/locker_release.xml +40 -40
  250. data/spec/test-xml/objects/locker_release_list.xml +87 -87
  251. data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
  252. data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
  253. data/spec/test-xml/objects/locker_track.xml +25 -25
  254. data/spec/test-xml/objects/locker_track_list.xml +26 -26
  255. data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
  256. data/spec/test-xml/objects/oauth_access_token.xml +3 -3
  257. data/spec/test-xml/objects/oauth_request_token.xml +3 -3
  258. data/spec/test-xml/objects/price.xml +7 -7
  259. data/spec/test-xml/objects/release.xml +40 -40
  260. data/spec/test-xml/objects/release_chart_item.xml +39 -39
  261. data/spec/test-xml/objects/release_list.xml +18 -18
  262. data/spec/test-xml/objects/release_list_empty.xml +4 -4
  263. data/spec/test-xml/objects/response.xml +38 -38
  264. data/spec/test-xml/objects/tag.xml +4 -4
  265. data/spec/test-xml/objects/track.xml +33 -33
  266. data/spec/test-xml/objects/track_chart_item.xml +27 -27
  267. data/spec/test-xml/objects/user.xml +4 -4
  268. data/spec/test-xml/objects/user_payment_card.xml +5 -5
  269. metadata +193 -3
@@ -1,24 +1,24 @@
1
- module Sevendigital
2
-
3
- #@private
4
- class UserCardDigestor < Digestor # :nodoc:
5
-
6
- def default_element_name; :card end
7
- def default_list_element_name; :cards end
8
-
9
- def from_proxy(card_proxy)
10
- make_sure_not_eating_nil(card_proxy)
11
-
12
- card = Sevendigital::Card.new(@api_client)
13
- card.id = card_proxy.id.to_i
14
- card.type = card_proxy.type.value.to_s
15
- card.last_4_digits = card_proxy.last4digits.value.to_s
16
- card.card_holder_name = card_proxy.card_holder_name.value.to_s if value_present?(card_proxy.card_holder_name)
17
- card.expiry_date = card_proxy.expiry_date.value.to_s if value_present?(card_proxy.expiry_date)
18
-
19
- return card
20
- end
21
-
22
- end
23
-
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class UserCardDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :card end
7
+ def default_list_element_name; :cards end
8
+
9
+ def from_proxy(card_proxy)
10
+ make_sure_not_eating_nil(card_proxy)
11
+
12
+ card = Sevendigital::Card.new(@api_client)
13
+ card.id = card_proxy.id.to_i
14
+ card.type = card_proxy.type.value.to_s
15
+ card.last_4_digits = card_proxy.last4digits.value.to_s
16
+ card.card_holder_name = card_proxy.card_holder_name.value.to_s if value_present?(card_proxy.card_holder_name)
17
+ card.expiry_date = card_proxy.expiry_date.value.to_s if value_present?(card_proxy.expiry_date)
18
+
19
+ return card
20
+ end
21
+
22
+ end
23
+
24
24
  end
@@ -1,21 +1,21 @@
1
- module Sevendigital
2
-
3
- #@private
4
- class UserDigestor < Digestor # :nodoc:
5
-
6
- def default_element_name; :user end
7
-
8
- def from_proxy(user_proxy)
9
- make_sure_not_eating_nil(user_proxy)
10
-
11
- user = User.new(@api_client)
12
- user.id = user_proxy.id.to_s if !user_proxy.nil?
13
- user.type = user_proxy.type.value.to_sym
14
- user.email_address = user_proxy.email_address.value.to_s if value_present?(user_proxy.email_address)
15
-
16
- return user
17
- end
18
-
19
- end
20
-
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class UserDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :user end
7
+
8
+ def from_proxy(user_proxy)
9
+ make_sure_not_eating_nil(user_proxy)
10
+
11
+ user = User.new(@api_client)
12
+ user.id = user_proxy.id.to_s if !user_proxy.nil?
13
+ user.type = user_proxy.type.value.to_sym
14
+ user.email_address = user_proxy.email_address.value.to_s if value_present?(user_proxy.email_address)
15
+
16
+ return user
17
+ end
18
+
19
+ end
20
+
21
21
  end
@@ -1,99 +1,99 @@
1
- require "peachy"
2
-
3
- module Sevendigital
4
-
5
- # provides access to Artist related API methods (artist/*)
6
- class ArtistManager < Manager
7
-
8
- # calls *artist/details* API method and returns Artist with populated details
9
- #
10
- # @param [Integer] artist_id
11
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
12
- # @return [Artist]
13
- def get_details(artist_id, options={})
14
- api_response = @api_client.make_api_request(:GET, "artist/details", {:artistId => artist_id}, options)
15
- @api_client.artist_digestor.from_xml(api_response.content.artist)
16
- end
17
-
18
- # calls *artist/releases* API method and returns Release array
19
- #
20
- # @param [Integer] artist_id
21
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
22
- # @return [[Artist]]
23
- def get_releases(artist_id, options={})
24
- api_response = @api_client.make_api_request(:GET, "artist/releases", {:artistId => artist_id}, options)
25
- @api_client.release_digestor.list_from_xml(api_response.content.releases)
26
- end
27
-
28
- # calls *artist/toptracks* API method and returns Track array
29
- #
30
- # @param [Integer] artist_id
31
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
32
- # @return [Array<Track>]
33
- def get_top_tracks(artist_id, options={})
34
- api_response = @api_client.make_api_request(:GET, "artist/topTracks", {:artistId => artist_id}, options)
35
- @api_client.track_digestor.list_from_xml(api_response.content.tracks)
36
- end
37
-
38
- # calls *artist/similar* API method and returns Artist array
39
- #
40
- # @param [Integer] artist_id
41
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
42
- # @return [Array<Artist>]
43
- def get_similar(artist_id, options={})
44
- api_response = @api_client.make_api_request(:GET, "artist/similar", {:artistId => artist_id}, options)
45
- @api_client.artist_digestor.list_from_xml(api_response.content.artists)
46
- end
47
-
48
- # calls *artist/byTag/top* API method and returns Artist array
49
- #
50
- # @param [String] tags tag or comma separated list of tags
51
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
52
- # @return [Array<Artist>]
53
- def get_top_by_tag(tags, options={})
54
- api_response = @api_client.make_api_request(:GET, "artist/byTag/top", {:tags => tags}, options)
55
- @api_client.artist_digestor.nested_list_from_xml(api_response.content.tagged_results, :tagged_item, :tagged_results)
56
- end
57
-
58
- # calls *artist/search* API method and returns Artist array
59
- #
60
- # @param [String] query search query
61
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
62
- # @return [Array<Artist>]
63
- def search(query, options={})
64
- api_response = @api_client.make_api_request(:GET, "artist/search", {:q => query}, options)
65
- @api_client.artist_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
66
- end
67
-
68
- # calls *artist/browse* API method and returns Artist array
69
- #
70
- # @param [String] letter the letter(s) returned artist names should artists
71
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
72
- # @return [Array<Artist>]
73
- def browse(letter, options={})
74
- api_response = @api_client.make_api_request(:GET, "artist/browse", {:letter => letter}, options)
75
- @api_client.artist_digestor.list_from_xml(api_response.content.artists)
76
- end
77
-
78
- # calls *artist/chart* API method and returns Artist array
79
- #
80
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
81
- def get_chart(options={})
82
- api_response = @api_client.make_api_request(:GET, "artist/chart", {}, options)
83
- @api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
84
- end
85
-
86
- # calls *artist/tags* API method and returns Tag array
87
- #
88
- # @param [Integer] artist_id
89
- # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
90
- # @return [Array<Tag>]
91
- def get_tags(artist_id, options={})
92
- api_response = @api_client.make_api_request(:GET, "artist/tags", {:artistId => artist_id}, options)
93
- @api_client.tag_digestor.list_from_xml(api_response.content.tags)
94
- end
95
-
96
-
97
- end
98
-
99
- end
1
+ require "peachy"
2
+
3
+ module Sevendigital
4
+
5
+ # provides access to Artist related API methods (artist/*)
6
+ class ArtistManager < Manager
7
+
8
+ # calls *artist/details* API method and returns Artist with populated details
9
+ #
10
+ # @param [Integer] artist_id
11
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
12
+ # @return [Artist]
13
+ def get_details(artist_id, options={})
14
+ api_response = @api_client.make_api_request(:GET, "artist/details", {:artistId => artist_id}, options)
15
+ @api_client.artist_digestor.from_xml(api_response.content.artist)
16
+ end
17
+
18
+ # calls *artist/releases* API method and returns Release array
19
+ #
20
+ # @param [Integer] artist_id
21
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
22
+ # @return [[Artist]]
23
+ def get_releases(artist_id, options={})
24
+ api_response = @api_client.make_api_request(:GET, "artist/releases", {:artistId => artist_id}, options)
25
+ @api_client.release_digestor.list_from_xml(api_response.content.releases)
26
+ end
27
+
28
+ # calls *artist/toptracks* API method and returns Track array
29
+ #
30
+ # @param [Integer] artist_id
31
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
32
+ # @return [Array<Track>]
33
+ def get_top_tracks(artist_id, options={})
34
+ api_response = @api_client.make_api_request(:GET, "artist/topTracks", {:artistId => artist_id}, options)
35
+ @api_client.track_digestor.list_from_xml(api_response.content.tracks)
36
+ end
37
+
38
+ # calls *artist/similar* API method and returns Artist array
39
+ #
40
+ # @param [Integer] artist_id
41
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
42
+ # @return [Array<Artist>]
43
+ def get_similar(artist_id, options={})
44
+ api_response = @api_client.make_api_request(:GET, "artist/similar", {:artistId => artist_id}, options)
45
+ @api_client.artist_digestor.list_from_xml(api_response.content.artists)
46
+ end
47
+
48
+ # calls *artist/byTag/top* API method and returns Artist array
49
+ #
50
+ # @param [String] tags tag or comma separated list of tags
51
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
52
+ # @return [Array<Artist>]
53
+ def get_top_by_tag(tags, options={})
54
+ api_response = @api_client.make_api_request(:GET, "artist/byTag/top", {:tags => tags}, options)
55
+ @api_client.artist_digestor.nested_list_from_xml(api_response.content.tagged_results, :tagged_item, :tagged_results)
56
+ end
57
+
58
+ # calls *artist/search* API method and returns Artist array
59
+ #
60
+ # @param [String] query search query
61
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
62
+ # @return [Array<Artist>]
63
+ def search(query, options={})
64
+ api_response = @api_client.make_api_request(:GET, "artist/search", {:q => query}, options)
65
+ @api_client.artist_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
66
+ end
67
+
68
+ # calls *artist/browse* API method and returns Artist array
69
+ #
70
+ # @param [String] letter the letter(s) returned artist names should artists
71
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
72
+ # @return [Array<Artist>]
73
+ def browse(letter, options={})
74
+ api_response = @api_client.make_api_request(:GET, "artist/browse", {:letter => letter}, options)
75
+ @api_client.artist_digestor.list_from_xml(api_response.content.artists)
76
+ end
77
+
78
+ # calls *artist/chart* API method and returns Artist array
79
+ #
80
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
81
+ def get_chart(options={})
82
+ api_response = @api_client.make_api_request(:GET, "artist/chart", {}, options)
83
+ @api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
84
+ end
85
+
86
+ # calls *artist/tags* API method and returns Tag array
87
+ #
88
+ # @param [Integer] artist_id
89
+ # @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
90
+ # @return [Array<Tag>]
91
+ def get_tags(artist_id, options={})
92
+ api_response = @api_client.make_api_request(:GET, "artist/tags", {:artistId => artist_id}, options)
93
+ @api_client.tag_digestor.list_from_xml(api_response.content.tags)
94
+ end
95
+
96
+
97
+ end
98
+
99
+ end
@@ -1,29 +1,29 @@
1
- module Sevendigital
2
-
3
- class BasketManager < Manager
4
-
5
- def get(basket_id, options={})
6
- api_response = @api_client.make_api_request(:GET, "basket", {:basketId => basket_id}, options)
7
- @api_client.basket_digestor.from_xml(api_response.content.basket)
8
- end
9
-
10
- def create(options={})
11
- api_response = @api_client.make_api_request(:GET, "basket/create", {}, options)
12
- @api_client.basket_digestor.from_xml(api_response.content.basket)
13
- end
14
-
15
- def add_item(basket_id, release_id, track_id=nil, options={})
16
- api_response = @api_client.make_api_request(:GET, "basket/addItem", {:basketId => basket_id, :releaseId => release_id, :trackId => track_id}, options)
17
- @api_client.basket_digestor.from_xml(api_response.content.basket)
18
- end
19
-
20
-
21
- def remove_item(basket_id, item_id, options={})
22
- api_response = @api_client.make_api_request(:GET, "basket/removeItem", {:basketId => basket_id, :itemId => item_id}, options)
23
- @api_client.basket_digestor.from_xml(api_response.content.basket)
24
- end
25
-
26
-
27
- end
28
-
29
- end
1
+ module Sevendigital
2
+
3
+ class BasketManager < Manager
4
+
5
+ def get(basket_id, options={})
6
+ api_response = @api_client.make_api_request(:GET, "basket", {:basketId => basket_id}, options)
7
+ @api_client.basket_digestor.from_xml(api_response.content.basket)
8
+ end
9
+
10
+ def create(options={})
11
+ api_response = @api_client.make_api_request(:GET, "basket/create", {}, options)
12
+ @api_client.basket_digestor.from_xml(api_response.content.basket)
13
+ end
14
+
15
+ def add_item(basket_id, release_id, track_id=nil, options={})
16
+ api_response = @api_client.make_api_request(:GET, "basket/addItem", {:basketId => basket_id, :releaseId => release_id, :trackId => track_id}, options)
17
+ @api_client.basket_digestor.from_xml(api_response.content.basket)
18
+ end
19
+
20
+
21
+ def remove_item(basket_id, item_id, options={})
22
+ api_response = @api_client.make_api_request(:GET, "basket/removeItem", {:basketId => basket_id, :itemId => item_id}, options)
23
+ @api_client.basket_digestor.from_xml(api_response.content.basket)
24
+ end
25
+
26
+
27
+ end
28
+
29
+ end
@@ -1,12 +1,12 @@
1
- module Sevendigital
2
-
3
- #@private
4
- class Manager # :nodoc:
5
-
6
- def initialize(api_client)
7
- @api_client = api_client
8
- end
9
-
10
- end
11
-
12
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class Manager # :nodoc:
5
+
6
+ def initialize(api_client)
7
+ @api_client = api_client
8
+ end
9
+
10
+ end
11
+
12
+ end
@@ -1,23 +1,23 @@
1
- module Sevendigital
2
-
3
- class OAuthManager < Manager
4
-
5
- def get_request_token
6
- api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken", {})
7
- @api_client.oauth_request_token_digestor.from_xml(api_response.content.oauth_request_token, :oauth_request_token)
8
- end
9
-
10
- def get_access_token(request_token)
11
- api_response = @api_client.make_signed_api_request(:GET, "oauth/accessToken", {}, {}, request_token)
12
- @api_client.oauth_access_token_digestor.from_xml(api_response.content.oauth_access_token, :oauth_access_token)
13
- end
14
-
15
- def authorise_request_token(username, password, request_token)
16
- api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken/authorise", \
17
- {:username => username, :password => password, :token => request_token.token})
18
- api_response.ok?
19
- end
20
-
21
- end
22
-
23
- end
1
+ module Sevendigital
2
+
3
+ class OAuthManager < Manager
4
+
5
+ def get_request_token
6
+ api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken", {})
7
+ @api_client.oauth_request_token_digestor.from_xml(api_response.content.oauth_request_token, :oauth_request_token)
8
+ end
9
+
10
+ def get_access_token(request_token)
11
+ api_response = @api_client.make_signed_api_request(:GET, "oauth/accessToken", {}, {}, request_token)
12
+ @api_client.oauth_access_token_digestor.from_xml(api_response.content.oauth_access_token, :oauth_access_token)
13
+ end
14
+
15
+ def authorise_request_token(username, password, request_token)
16
+ api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken/authorise", \
17
+ {:username => username, :password => password, :token => request_token.token})
18
+ api_response.ok?
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -1,57 +1,57 @@
1
- require "peachy"
2
-
3
- module Sevendigital
4
-
5
- class ReleaseManager < Manager
6
-
7
- def get_details(release_id, options = {})
8
- api_response = @api_client.make_api_request(:GET, "release/details", {:releaseId => release_id}, options)
9
- @api_client.release_digestor.from_xml(api_response.content.release)
10
- end
11
-
12
- def get_tracks(release_id, options = {})
13
- options[:page_size] ||= 100
14
- api_response = @api_client.make_api_request(:GET, "release/tracks", {:releaseId => release_id}, options)
15
- @api_client.track_digestor.list_from_xml(api_response.content.tracks)
16
- end
17
-
18
- def get_chart(options={})
19
- api_response = @api_client.make_api_request(:GET, "release/chart", {}, options)
20
- @api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
21
- end
22
-
23
- def get_by_date(from_date = nil, to_date = nil, options = {})
24
- parameters = Hash.new
25
- parameters[:fromDate] = from_date.strftime("%Y%m%d") if from_date
26
- parameters[:toDate] = to_date.strftime("%Y%m%d") if to_date
27
-
28
- api_response = @api_client.make_api_request(:GET, "release/byDate", parameters, options)
29
- @api_client.release_digestor.list_from_xml(api_response.content.releases)
30
- end
31
-
32
- def get_recommendations(release_id, options = {})
33
- api_response = @api_client.make_api_request(:GET, "release/recommend", {:releaseId => release_id}, options)
34
- @api_client.release_digestor.nested_list_from_xml(api_response.content.recommendations, :recommended_item, :recommendations)
35
- end
36
-
37
-
38
- def get_top_by_tag(tags, options = {})
39
- api_response = @api_client.make_api_request(:GET, "release/byTag/top", {:tags => tags}, options)
40
- @api_client.release_digestor.nested_list_from_xml( \
41
- api_response.content.tagged_results, :tagged_item, :tagged_results )
42
- end
43
-
44
- def search(query, options={})
45
- api_response = @api_client.make_api_request(:GET, "release/search", {:q => query}, options)
46
- @api_client.release_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
47
- end
48
-
49
-
50
- def get_tags(release_id, options = {})
51
- api_response = @api_client.make_api_request(:GET, "release/tags", {:releaseId => release_id}, options)
52
- @api_client.tag_digestor.list_from_xml(api_response.content.tags)
53
- end
54
-
55
- end
56
-
1
+ require "peachy"
2
+
3
+ module Sevendigital
4
+
5
+ class ReleaseManager < Manager
6
+
7
+ def get_details(release_id, options = {})
8
+ api_response = @api_client.make_api_request(:GET, "release/details", {:releaseId => release_id}, options)
9
+ @api_client.release_digestor.from_xml(api_response.content.release)
10
+ end
11
+
12
+ def get_tracks(release_id, options = {})
13
+ options[:page_size] ||= 100
14
+ api_response = @api_client.make_api_request(:GET, "release/tracks", {:releaseId => release_id}, options)
15
+ @api_client.track_digestor.list_from_xml(api_response.content.tracks)
16
+ end
17
+
18
+ def get_chart(options={})
19
+ api_response = @api_client.make_api_request(:GET, "release/chart", {}, options)
20
+ @api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
21
+ end
22
+
23
+ def get_by_date(from_date = nil, to_date = nil, options = {})
24
+ parameters = Hash.new
25
+ parameters[:fromDate] = from_date.strftime("%Y%m%d") if from_date
26
+ parameters[:toDate] = to_date.strftime("%Y%m%d") if to_date
27
+
28
+ api_response = @api_client.make_api_request(:GET, "release/byDate", parameters, options)
29
+ @api_client.release_digestor.list_from_xml(api_response.content.releases)
30
+ end
31
+
32
+ def get_recommendations(release_id, options = {})
33
+ api_response = @api_client.make_api_request(:GET, "release/recommend", {:releaseId => release_id}, options)
34
+ @api_client.release_digestor.nested_list_from_xml(api_response.content.recommendations, :recommended_item, :recommendations)
35
+ end
36
+
37
+
38
+ def get_top_by_tag(tags, options = {})
39
+ api_response = @api_client.make_api_request(:GET, "release/byTag/top", {:tags => tags}, options)
40
+ @api_client.release_digestor.nested_list_from_xml( \
41
+ api_response.content.tagged_results, :tagged_item, :tagged_results )
42
+ end
43
+
44
+ def search(query, options={})
45
+ api_response = @api_client.make_api_request(:GET, "release/search", {:q => query}, options)
46
+ @api_client.release_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
47
+ end
48
+
49
+
50
+ def get_tags(release_id, options = {})
51
+ api_response = @api_client.make_api_request(:GET, "release/tags", {:releaseId => release_id}, options)
52
+ @api_client.tag_digestor.list_from_xml(api_response.content.tags)
53
+ end
54
+
55
+ end
56
+
57
57
  end