7digital 0.0.5 → 0.0.6

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 (271) hide show
  1. data/README.rdoc +136 -136
  2. data/lib/sevendigital.rb +53 -53
  3. data/lib/sevendigital/api_operator.rb +130 -124
  4. data/lib/sevendigital/api_operator_cached.rb +41 -29
  5. data/lib/sevendigital/api_request.rb +65 -64
  6. data/lib/sevendigital/client.rb +113 -98
  7. data/lib/sevendigital/client_configuration.rb +86 -86
  8. data/lib/sevendigital/client_digestors.rb +107 -79
  9. data/lib/sevendigital/client_managers.rb +47 -34
  10. data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -57
  11. data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -31
  12. data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -18
  13. data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -25
  14. data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -27
  15. data/lib/sevendigital/digestion_tract/digestor.rb +71 -70
  16. data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -19
  17. data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -21
  18. data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -19
  19. data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -17
  20. data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -19
  21. data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -21
  22. data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -13
  23. data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -13
  24. data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -23
  25. data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -24
  26. data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -52
  27. data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -21
  28. data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -37
  29. data/lib/sevendigital/digestion_tract/user_card_digestor.rb +24 -0
  30. data/lib/sevendigital/digestion_tract/user_digestor.rb +21 -0
  31. data/lib/sevendigital/management/artist_manager.rb +99 -82
  32. data/lib/sevendigital/management/basket_manager.rb +29 -29
  33. data/lib/sevendigital/management/manager.rb +12 -11
  34. data/lib/sevendigital/management/oauth_manager.rb +23 -23
  35. data/lib/sevendigital/management/release_manager.rb +56 -50
  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 +27 -0
  39. data/lib/sevendigital/management/user_manager.rb +71 -51
  40. data/lib/sevendigital/model/api_response.rb +25 -40
  41. data/lib/sevendigital/model/artist.rb +94 -64
  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 +12 -0
  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 -47
  54. data/lib/sevendigital/model/sevendigital_error.rb +11 -11
  55. data/lib/sevendigital/model/sevendigital_object.rb +57 -56
  56. data/lib/sevendigital/model/tag.rb +7 -7
  57. data/lib/sevendigital/model/track.rb +83 -28
  58. data/lib/sevendigital/model/user.rb +63 -33
  59. data/lib/sevendigital/pager.rb +23 -22
  60. data/lib/sevendigital/peachy_patchy.rb +9 -0
  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 -102
  64. data/spec/api_operator_spec.rb +336 -338
  65. data/spec/api_request_spec.rb +31 -31
  66. data/spec/client_configuration_spec.rb +74 -74
  67. data/spec/client_spec.rb +162 -153
  68. data/spec/data/config/sevendigital.yml +5 -5
  69. data/spec/data/configuration_env_override.yml +5 -5
  70. data/spec/data/configuration_override.yml +1 -1
  71. data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
  72. data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
  73. data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
  74. data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
  75. data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
  76. data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
  77. data/spec/digestion_tract/format_digestor_spec.rb +38 -38
  78. data/spec/digestion_tract/label_digestor_spec.rb +33 -33
  79. data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
  80. data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -71
  81. data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
  82. data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
  83. data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
  84. data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
  85. data/spec/digestion_tract/price_digestor_spec.rb +73 -73
  86. data/spec/digestion_tract/release_digestor_spec.rb +101 -101
  87. data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
  88. data/spec/digestion_tract/track_digestor_spec.rb +104 -104
  89. data/spec/digestion_tract/user_card_digestor_spec.rb +58 -0
  90. data/spec/digestion_tract/user_digestor_spec.rb +44 -0
  91. data/spec/management/artist_manager_spec.rb +151 -133
  92. data/spec/management/basket_manager_spec.rb +77 -77
  93. data/spec/management/oauth_manager_spec.rb +72 -72
  94. data/spec/management/release_manager_spec.rb +200 -181
  95. data/spec/management/tag_manager_spec.rb +34 -34
  96. data/spec/management/track_manager_spec.rb +107 -105
  97. data/spec/management/user_card_manager_spec.rb +79 -0
  98. data/spec/management/user_manager_spec.rb +202 -162
  99. data/spec/model/api_response_spec.rb +48 -111
  100. data/spec/model/artist_spec.rb +154 -141
  101. data/spec/model/basket_spec.rb +62 -62
  102. data/spec/model/release_spec.rb +122 -110
  103. data/spec/model/sevendigital_object_spec.rb +73 -73
  104. data/spec/model/track_spec.rb +144 -143
  105. data/spec/model/user_spec.rb +160 -97
  106. data/spec/pager_spec.rb +7 -7
  107. data/spec/peachy_spec_helper_patch.rb +6 -6
  108. data/spec/proxy_police_spec.rb +69 -47
  109. data/spec/sevendigital_spec.rb +70 -0
  110. data/spec/sevendigital_spec.yml +5 -0
  111. data/spec/spec_helper.rb +64 -60
  112. data/spec/test-xml/methods/artist/browse.xml +21 -21
  113. data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
  114. data/spec/test-xml/methods/artist/chart.xml +30 -30
  115. data/spec/test-xml/methods/artist/details.xml +9 -9
  116. data/spec/test-xml/methods/artist/releases.xml +544 -544
  117. data/spec/test-xml/methods/artist/search.xml +18 -18
  118. data/spec/test-xml/methods/artist/similar.xml +39 -39
  119. data/spec/test-xml/methods/artist/tags.xml +12 -0
  120. data/spec/test-xml/methods/artist/toptracks.xml +279 -279
  121. data/spec/test-xml/methods/basket/additem.xml +23 -23
  122. data/spec/test-xml/methods/basket/create.xml +10 -10
  123. data/spec/test-xml/methods/basket/index.xml +23 -23
  124. data/spec/test-xml/methods/basket/removeitem.xml +10 -10
  125. data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
  126. data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
  127. data/spec/test-xml/methods/release/bydate.xml +173 -173
  128. data/spec/test-xml/methods/release/bytag/top.xml +150 -150
  129. data/spec/test-xml/methods/release/chart.xml +181 -181
  130. data/spec/test-xml/methods/release/details.xml +48 -48
  131. data/spec/test-xml/methods/release/recommend.xml +89 -89
  132. data/spec/test-xml/methods/release/search.xml +194 -194
  133. data/spec/test-xml/methods/release/tags.xml +27 -0
  134. data/spec/test-xml/methods/release/tracks.xml +28 -28
  135. data/spec/test-xml/methods/tag/index.xml +16 -16
  136. data/spec/test-xml/methods/track/chart.xml +149 -149
  137. data/spec/test-xml/methods/track/details.xml +30 -30
  138. data/spec/test-xml/methods/track/search.xml +159 -159
  139. data/spec/test-xml/methods/user/locker.xml +49 -49
  140. data/spec/test-xml/methods/user/payment/card/add.xml +8 -0
  141. data/spec/test-xml/methods/user/payment/card/index.xml +8 -0
  142. data/spec/test-xml/methods/user/payment/card/select.xml +1 -0
  143. data/spec/test-xml/methods/user/purchase/item.xml +48 -48
  144. data/spec/test-xml/methods/user/signUp.xml +6 -0
  145. data/spec/test-xml/objects/artist.xml +6 -6
  146. data/spec/test-xml/objects/artist_chart_item.xml +7 -7
  147. data/spec/test-xml/objects/artist_list.xml +22 -22
  148. data/spec/test-xml/objects/artist_list_empty.xml +4 -4
  149. data/spec/test-xml/objects/basket.xml +21 -21
  150. data/spec/test-xml/objects/basket_item.xml +11 -11
  151. data/spec/test-xml/objects/basket_item_list.xml +25 -25
  152. data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
  153. data/spec/test-xml/objects/download_url.xml +7 -7
  154. data/spec/test-xml/objects/locker.xml +47 -47
  155. data/spec/test-xml/objects/locker_release.xml +40 -40
  156. data/spec/test-xml/objects/locker_release_list.xml +87 -87
  157. data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
  158. data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
  159. data/spec/test-xml/objects/locker_track.xml +25 -25
  160. data/spec/test-xml/objects/locker_track_list.xml +26 -26
  161. data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
  162. data/spec/test-xml/objects/oauth_access_token.xml +3 -3
  163. data/spec/test-xml/objects/oauth_request_token.xml +3 -3
  164. data/spec/test-xml/objects/price.xml +7 -7
  165. data/spec/test-xml/objects/release.xml +40 -40
  166. data/spec/test-xml/objects/release_chart_item.xml +39 -39
  167. data/spec/test-xml/objects/release_list.xml +18 -18
  168. data/spec/test-xml/objects/release_list_empty.xml +4 -4
  169. data/spec/test-xml/objects/response.xml +38 -38
  170. data/spec/test-xml/objects/tag.xml +4 -4
  171. data/spec/test-xml/objects/track.xml +33 -33
  172. data/spec/test-xml/objects/track_chart_item.xml +27 -27
  173. data/spec/test-xml/objects/user.xml +4 -0
  174. data/spec/test-xml/objects/user_payment_card.xml +6 -0
  175. data/spec/test-xml/objects/user_payment_card_list_empty.xml +1 -0
  176. metadata +51 -192
  177. data/lib/sevendigital/default_configuration.yml +0 -2
  178. data/spec/coverage/assets/0.3.9/app.js +0 -66
  179. data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  180. data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  181. data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  182. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  183. data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  184. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  185. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  186. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  187. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  188. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  189. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  190. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  191. data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  192. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  193. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  194. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  195. data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  196. data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  197. data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  198. data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  199. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
  200. data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
  201. data/spec/coverage/assets/0.3.9/favicon.png +0 -0
  202. data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
  203. data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
  204. data/spec/coverage/assets/0.3.9/jquery.timeago.js +0 -141
  205. data/spec/coverage/assets/0.3.9/jquery.url.js +0 -174
  206. data/spec/coverage/assets/0.3.9/loading.gif +0 -0
  207. data/spec/coverage/assets/0.3.9/magnify.png +0 -0
  208. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  209. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  210. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  211. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  212. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  213. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  214. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  215. data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  216. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  217. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  218. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  219. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  220. data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  221. data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
  222. data/spec/coverage/assets/0.3.9/stylesheet.css +0 -341
  223. data/spec/coverage/index.html +0 -43412
  224. data/spec/coverage/resultset.yml +0 -3251
  225. data/spec/model/coverage/assets/0.3.9/app.js +0 -66
  226. data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
  227. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
  228. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
  229. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
  230. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
  231. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
  232. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
  233. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
  234. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
  235. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
  236. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
  237. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
  238. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
  239. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
  240. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
  241. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
  242. data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
  243. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
  244. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
  245. data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
  246. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +0 -363
  247. data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
  248. data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
  249. data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +0 -155
  250. data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +0 -152
  251. data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +0 -141
  252. data/spec/model/coverage/assets/0.3.9/jquery.url.js +0 -174
  253. data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
  254. data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
  255. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  256. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  257. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  258. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  259. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  260. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  261. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  262. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  263. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
  264. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  265. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
  266. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
  267. data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  268. data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +0 -295
  269. data/spec/model/coverage/assets/0.3.9/stylesheet.css +0 -341
  270. data/spec/model/coverage/index.html +0 -8637
  271. data/spec/model/coverage/resultset.yml +0 -642
@@ -1,79 +1,107 @@
1
- module Sevendigital
2
-
3
- class Client
4
-
5
- def api_response_digestor
6
- @api_response_digestor ||= ApiResponseDigestor.new(self)
7
- end
8
-
9
- def artist_digestor
10
- @artist_digestor ||= ArtistDigestor.new(self)
11
- end
12
-
13
- def basket_digestor
14
- @basket_digestor ||= BasketDigestor.new(self)
15
- end
16
-
17
- def basket_item_digestor
18
- @basket_item_digestor ||= BasketItemDigestor.new(self)
19
- end
20
-
21
- def chart_item_digestor
22
- @chart_item_digestor ||= ChartItemDigestor.new(self)
23
- end
24
-
25
- def download_url_digestor
26
- @download_url_digestor ||= DownloadUrlDigestor.new(self)
27
- end
28
-
29
- def format_digestor
30
- @format_digestor ||= FormatDigestor.new(self)
31
- end
32
-
33
- def label_digestor
34
- @label_digestor ||= LabelDigestor.new(self)
35
- end
36
-
37
- def locker_digestor
38
- @locker_digestor ||= LockerDigestor.new(self)
39
- end
40
-
41
- def locker_release_digestor
42
- @locker_release_digestor ||= LockerReleaseDigestor.new(self)
43
- end
44
-
45
- def locker_track_digestor
46
- @locker_track_digestor ||= LockerTrackDigestor.new(self)
47
- end
48
-
49
- def oauth_request_token_digestor
50
- @oauth_request_token_digestor ||= OAuthRequestTokenDigestor.new(self)
51
- end
52
-
53
- def oauth_access_token_digestor
54
- @oauth_access_token_digestor ||= OAuthAccessTokenDigestor.new(self)
55
- end
56
-
57
- def pager_digestor
58
- @pager_digestor ||= PagerDigestor.new(self)
59
- end
60
-
61
- def price_digestor
62
- @price_digestor ||= PriceDigestor.new(self)
63
- end
64
-
65
- def release_digestor
66
- @release_digestor ||= ReleaseDigestor.new(self)
67
- end
68
-
69
- def track_digestor
70
- @track_digestor ||= TrackDigestor.new(self)
71
- end
72
-
73
- def tag_digestor
74
- @tag_digestor ||= TagDigestor.new(self)
75
- end
76
-
77
- end
78
-
79
- end
1
+ module Sevendigital
2
+
3
+ class Client #:nodoc:
4
+
5
+ #@private
6
+ def api_response_digestor
7
+ @api_response_digestor ||= ApiResponseDigestor.new(self)
8
+ end
9
+
10
+ #@private
11
+ def artist_digestor
12
+ @artist_digestor ||= ArtistDigestor.new(self)
13
+ end
14
+
15
+ #@private
16
+ def basket_digestor
17
+ @basket_digestor ||= BasketDigestor.new(self)
18
+ end
19
+
20
+ #@private
21
+ def basket_item_digestor
22
+ @basket_item_digestor ||= BasketItemDigestor.new(self)
23
+ end
24
+
25
+ #@private
26
+ def chart_item_digestor
27
+ @chart_item_digestor ||= ChartItemDigestor.new(self)
28
+ end
29
+
30
+ #@private
31
+ def download_url_digestor
32
+ @download_url_digestor ||= DownloadUrlDigestor.new(self)
33
+ end
34
+
35
+ #@private
36
+ def format_digestor
37
+ @format_digestor ||= FormatDigestor.new(self)
38
+ end
39
+
40
+ #@private
41
+ def label_digestor
42
+ @label_digestor ||= LabelDigestor.new(self)
43
+ end
44
+
45
+ #@private
46
+ def locker_digestor
47
+ @locker_digestor ||= LockerDigestor.new(self)
48
+ end
49
+
50
+ #@private
51
+ def locker_release_digestor
52
+ @locker_release_digestor ||= LockerReleaseDigestor.new(self)
53
+ end
54
+
55
+ #@private
56
+ def locker_track_digestor
57
+ @locker_track_digestor ||= LockerTrackDigestor.new(self)
58
+ end
59
+
60
+ #@private
61
+ def oauth_request_token_digestor
62
+ @oauth_request_token_digestor ||= OAuthRequestTokenDigestor.new(self)
63
+ end
64
+
65
+ #@private
66
+ def oauth_access_token_digestor
67
+ @oauth_access_token_digestor ||= OAuthAccessTokenDigestor.new(self)
68
+ end
69
+
70
+ #@private
71
+ def pager_digestor
72
+ @pager_digestor ||= PagerDigestor.new(self)
73
+ end
74
+
75
+ #@private
76
+ def price_digestor
77
+ @price_digestor ||= PriceDigestor.new(self)
78
+ end
79
+
80
+ #@private
81
+ def release_digestor
82
+ @release_digestor ||= ReleaseDigestor.new(self)
83
+ end
84
+
85
+ #@private
86
+ def track_digestor
87
+ @track_digestor ||= TrackDigestor.new(self)
88
+ end
89
+
90
+ #@private
91
+ def tag_digestor
92
+ @tag_digestor ||= TagDigestor.new(self)
93
+ end
94
+
95
+ #@private
96
+ def user_card_digestor
97
+ @user_card_digestor ||= UserCardDigestor.new(self)
98
+ end
99
+
100
+ #@private
101
+ def user_digestor
102
+ @user_digestor ||= UserDigestor.new(self)
103
+ end
104
+
105
+ end
106
+
107
+ end
@@ -1,34 +1,47 @@
1
- module Sevendigital
2
-
3
- class Client
4
-
5
- def artist
6
- @artist_manager ||= ArtistManager.new(self)
7
- end
8
-
9
- def basket
10
- @basket_manager ||= BasketManager.new(self)
11
- end
12
- def release
13
- @release_manager ||= ReleaseManager.new(self)
14
- end
15
-
16
- def tag
17
- @tag_manager ||= TagManager.new(self)
18
- end
19
-
20
- def track
21
- @track_manager ||= TrackManager.new(self)
22
- end
23
-
24
- def user
25
- @user_manager ||= UserManager.new(self)
26
- end
27
-
28
- def oauth
29
- @oauth_manager ||= OAuthManager.new(self)
30
- end
31
-
32
- end
33
-
34
- end
1
+ module Sevendigital
2
+
3
+ class Client
4
+
5
+ #@return [ArtistManager]
6
+ def artist
7
+ @artist_manager ||= ArtistManager.new(self)
8
+ end
9
+
10
+ #@return [BasketManager]
11
+ def basket
12
+ @basket_manager ||= BasketManager.new(self)
13
+ end
14
+
15
+ #@return [ReleaseManager]
16
+ def release
17
+ @release_manager ||= ReleaseManager.new(self)
18
+ end
19
+
20
+ #@return [TagManager]
21
+ def tag
22
+ @tag_manager ||= TagManager.new(self)
23
+ end
24
+
25
+ #@return [TrackManager]
26
+ def track
27
+ @track_manager ||= TrackManager.new(self)
28
+ end
29
+
30
+ #@return [UserManager]
31
+ def user
32
+ @user_manager ||= UserManager.new(self)
33
+ end
34
+
35
+ #@return [UserManager]
36
+ def user_payment_card
37
+ @user_card_manager ||= UserCardManager.new(self)
38
+ end
39
+
40
+ #@return [OAuthManager]
41
+ def oauth
42
+ @oauth_manager ||= OAuthManager.new(self)
43
+ end
44
+
45
+ end
46
+
47
+ end
@@ -1,57 +1,58 @@
1
- module Sevendigital
2
-
3
- class ApiResponseDigestor < Digestor # :nodoc:
4
-
5
- def from_xml(xml_or_proxy, element_name = :response)
6
- return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
7
- end
8
-
9
- def from_proxy(proxy)
10
- if proxy && proxy.status then
11
- return from_ok_response(proxy) if proxy.status == 'ok'
12
- return from_error_response(proxy.error) if proxy.status == 'error' && proxy.error
13
- end
14
- return from_invalid_xml
15
- end
16
-
17
- def from_invalid_xml
18
- response = ApiResponse.new
19
- response.error_code = 10000
20
- response.error_message = 'Invalid 7digital API response'
21
- return response
22
- end
23
-
24
- def from_error_response(error)
25
- response = ApiResponse.new
26
- response.error_code = error.code.to_i
27
- response.error_message = error.error_message.value.to_s
28
- return response
29
- end
30
-
31
- def from_ok_response(response_content)
32
- response = ApiResponse.new
33
- response.error_code = 0
34
- response.content = response_content
35
- return response
36
- end
37
-
38
- def from_http_response(http_response)
39
- if http_response.is_a?(Net::HTTPSuccess) then
40
- response = from_xml(http_response.body.to_s)
41
- else
42
- response = from_invalid_http_response(http_response)
43
- end
44
- response.headers = http_response.header
45
- response
46
- end
47
-
48
- def from_invalid_http_response(http_response)
49
- response = ApiResponse.new
50
- response.error_code = Integer(http_response.code)
51
- response.error_message= http_response.body.to_s
52
- return response
53
- end
54
-
55
- end
56
-
57
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class ApiResponseDigestor < Digestor # :nodoc:
5
+
6
+ def from_xml(xml_or_proxy, element_name = :response)
7
+ return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
8
+ end
9
+
10
+ def from_proxy(proxy)
11
+ if proxy && proxy.status then
12
+ return from_ok_response(proxy) if proxy.status == 'ok'
13
+ return from_error_response(proxy.error) if proxy.status == 'error' && proxy.error
14
+ end
15
+ return from_invalid_xml
16
+ end
17
+
18
+ def from_invalid_xml
19
+ response = ApiResponse.new
20
+ response.error_code = 10000
21
+ response.error_message = 'Invalid 7digital API response'
22
+ return response
23
+ end
24
+
25
+ def from_error_response(error)
26
+ response = ApiResponse.new
27
+ response.error_code = error.code.to_i
28
+ response.error_message = error.error_message.value.to_s
29
+ return response
30
+ end
31
+
32
+ def from_ok_response(response_content)
33
+ response = ApiResponse.new
34
+ response.error_code = 0
35
+ response.content = response_content
36
+ return response
37
+ end
38
+
39
+ def from_http_response(http_response)
40
+ if http_response.is_a?(Net::HTTPSuccess) then
41
+ response = from_xml(http_response.body.to_s)
42
+ else
43
+ response = from_invalid_http_response(http_response)
44
+ end
45
+ response.headers = http_response.header
46
+ response
47
+ end
48
+
49
+ def from_invalid_http_response(http_response)
50
+ response = ApiResponse.new
51
+ response.error_code = Integer(http_response.code)
52
+ response.error_message= http_response.body.to_s
53
+ return response
54
+ end
55
+
56
+ end
57
+
58
+ end
@@ -1,31 +1,32 @@
1
- module Sevendigital
2
-
3
- class ArtistDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :artist end
6
- def default_list_element_name; :artists end
7
-
8
- def from_proxy(artist_proxy)
9
- make_sure_not_eating_nil(artist_proxy)
10
- artist = Artist.new(@api_client)
11
- populate_required_properties(artist, artist_proxy)
12
- populate_optional_properties(artist, artist_proxy)
13
- return artist
14
- end
15
-
16
- private
17
-
18
- def populate_required_properties(artist, artist_proxy)
19
- artist.id = artist_proxy.id.to_i
20
- artist.name = artist_proxy.name.value.to_s
21
- end
22
-
23
- def populate_optional_properties(artist, artist_proxy)
24
- artist.sort_name = artist_proxy.sort_name.value.to_s if artist_proxy.sort_name
25
- artist.appears_as = artist_proxy.appears_as.value.to_s if artist_proxy.appears_as
26
- artist.image = artist_proxy.image.value.to_s if artist_proxy.image
27
- artist.url = artist_proxy.url.value.to_s if artist_proxy.url
28
- end
29
-
30
- end
31
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class ArtistDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :artist end
7
+ def default_list_element_name; :artists end
8
+
9
+ def from_proxy(artist_proxy)
10
+ make_sure_not_eating_nil(artist_proxy)
11
+ artist = Artist.new(@api_client)
12
+ populate_required_properties(artist, artist_proxy)
13
+ populate_optional_properties(artist, artist_proxy)
14
+ return artist
15
+ end
16
+
17
+ private
18
+
19
+ def populate_required_properties(artist, artist_proxy)
20
+ artist.id = artist_proxy.id.to_i
21
+ artist.name = artist_proxy.name.value.to_s
22
+ end
23
+
24
+ def populate_optional_properties(artist, artist_proxy)
25
+ artist.sort_name = artist_proxy.sort_name.value.to_s if artist_proxy.sort_name
26
+ artist.appears_as = artist_proxy.appears_as.value.to_s if artist_proxy.appears_as
27
+ artist.image = artist_proxy.image.value.to_s if artist_proxy.image
28
+ artist.url = artist_proxy.url.value.to_s if artist_proxy.url
29
+ end
30
+
31
+ end
32
+ end