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,19 +1,20 @@
1
- module Sevendigital
2
-
3
- class LockerReleaseDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :locker_release end
6
- def default_list_element_name; :locker_releases end
7
-
8
- def from_proxy(locker_release_proxy)
9
- make_sure_not_eating_nil(locker_release_proxy)
10
- locker_release = Sevendigital::LockerRelease.new(@api_client)
11
- locker_release.release = @api_client.release_digestor.from_xml(locker_release_proxy.release)
12
- locker_release.locker_tracks = @api_client.locker_track_digestor.list_from_xml(locker_release_proxy.locker_tracks, :locker_tracks)
13
-
14
- return locker_release
15
- end
16
-
17
- end
18
-
19
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class LockerReleaseDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :locker_release end
7
+ def default_list_element_name; :locker_releases end
8
+
9
+ def from_proxy(locker_release_proxy)
10
+ make_sure_not_eating_nil(locker_release_proxy)
11
+ locker_release = Sevendigital::LockerRelease.new(@api_client)
12
+ locker_release.release = @api_client.release_digestor.from_xml(locker_release_proxy.release)
13
+ locker_release.locker_tracks = @api_client.locker_track_digestor.list_from_xml(locker_release_proxy.locker_tracks, :locker_tracks)
14
+
15
+ return locker_release
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -1,21 +1,22 @@
1
- module Sevendigital
2
-
3
- class LockerTrackDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :locker_track end
6
- def default_list_element_name; :locker_tracks end
7
-
8
- def from_proxy(locker_track_proxy)
9
- make_sure_not_eating_nil(locker_track_proxy)
10
- locker_track = Sevendigital::LockerTrack.new(@api_client)
11
- locker_track.track = @api_client.track_digestor.from_xml(locker_track_proxy.track)
12
- locker_track.remaining_downloads = locker_track_proxy.remaining_downloads.value.to_i
13
- locker_track.purchase_date = DateTime.parse(locker_track_proxy.purchase_date.value.to_s)
14
- locker_track.download_urls = @api_client.download_url_digestor.list_from_xml(locker_track_proxy.download_urls)
15
-
16
- return locker_track
17
- end
18
-
19
- end
20
-
21
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class LockerTrackDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :locker_track end
7
+ def default_list_element_name; :locker_tracks end
8
+
9
+ def from_proxy(locker_track_proxy)
10
+ make_sure_not_eating_nil(locker_track_proxy)
11
+ locker_track = Sevendigital::LockerTrack.new(@api_client)
12
+ locker_track.track = @api_client.track_digestor.from_xml(locker_track_proxy.track)
13
+ locker_track.remaining_downloads = locker_track_proxy.remaining_downloads.value.to_i
14
+ locker_track.purchase_date = DateTime.parse(locker_track_proxy.purchase_date.value.to_s)
15
+ locker_track.download_urls = @api_client.download_url_digestor.list_from_xml(locker_track_proxy.download_urls)
16
+
17
+ return locker_track
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -1,14 +1,15 @@
1
- module Sevendigital
2
-
3
- class OAuthAccessTokenDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :oauth_access_token end
6
-
7
- def from_proxy(token_proxy)
8
- make_sure_not_eating_nil(token_proxy)
9
- OAuth::AccessToken.new(@api_client.oauth_consumer, token_proxy.oauth_token.value, token_proxy.oauth_token_secret.value)
10
- end
11
-
12
- end
13
-
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class OAuthAccessTokenDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :oauth_access_token end
7
+
8
+ def from_proxy(token_proxy)
9
+ make_sure_not_eating_nil(token_proxy)
10
+ OAuth::AccessToken.new(@api_client.oauth_consumer, token_proxy.oauth_token.value, token_proxy.oauth_token_secret.value)
11
+ end
12
+
13
+ end
14
+
14
15
  end
@@ -1,14 +1,15 @@
1
- module Sevendigital
2
-
3
- class OAuthRequestTokenDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :oauth_request_token end
6
-
7
- def from_proxy(token_proxy)
8
- make_sure_not_eating_nil(token_proxy)
9
- OAuth::RequestToken.new(@api_client.oauth_consumer, token_proxy.oauth_token.value, token_proxy.oauth_token_secret.value)
10
- end
11
-
12
- end
13
-
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class OAuthRequestTokenDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :oauth_request_token end
7
+
8
+ def from_proxy(token_proxy)
9
+ make_sure_not_eating_nil(token_proxy)
10
+ OAuth::RequestToken.new(@api_client.oauth_consumer, token_proxy.oauth_token.value, token_proxy.oauth_token_secret.value)
11
+ end
12
+
13
+ end
14
+
14
15
  end
@@ -1,23 +1,24 @@
1
- module Sevendigital
2
-
3
- class PagerDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :results end
6
- def default_list_element_name; nil end
7
-
8
- def from_proxy(pager_proxy)
9
- make_sure_not_eating_nil(pager_proxy)
10
- return nil unless paging_info_available?(pager_proxy)
11
- pager = Pager.new
12
- pager.page = pager_proxy.page.value.to_i
13
- pager.page_size = pager_proxy.page_size.value.to_i
14
- pager.total_items = pager_proxy.total_items.value.to_i
15
- return pager
16
- end
17
-
18
- def paging_info_available?(pager_proxy)
19
- pager_proxy.page && pager_proxy.page_size && pager_proxy.total_items
20
- end
21
-
22
- end
23
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class PagerDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :results end
7
+ def default_list_element_name; nil end
8
+
9
+ def from_proxy(pager_proxy)
10
+ make_sure_not_eating_nil(pager_proxy)
11
+ return nil unless paging_info_available?(pager_proxy)
12
+ pager = Pager.new
13
+ pager.page = pager_proxy.page.value.to_i
14
+ pager.page_size = pager_proxy.page_size.value.to_i
15
+ pager.total_items = pager_proxy.total_items.value.to_i
16
+ return pager
17
+ end
18
+
19
+ def paging_info_available?(pager_proxy)
20
+ pager_proxy.page && pager_proxy.page_size && pager_proxy.total_items
21
+ end
22
+
23
+ end
24
+ end
@@ -1,25 +1,26 @@
1
- require 'rational'
2
- module Sevendigital
3
-
4
- class PriceDigestor < Digestor # :nodoc:
5
-
6
- def default_element_name; :price end
7
- def default_list_element_name; nil end
8
-
9
- def from_proxy(price_proxy)
10
- make_sure_not_eating_nil(price_proxy)
11
- price = Sevendigital::Price.new()
12
- price.currency_code = price_proxy.currency.code.to_s.upcase.to_sym
13
- price.currency_symbol= price_proxy.currency.value
14
- price.value= price_proxy.value.value.to_f if !price_proxy.value.value.to_s.empty?
15
- price.formatted_price= price_proxy.formatted_price.value
16
- price.rrp= price_proxy.rrp.value.to_f if price_proxy.rrp
17
- price.formatted_rrp= price_proxy.formatted_rrp.value if price_proxy.formatted_rrp
18
- price.on_sale = price_proxy.on_sale.value.to_s.downcase == "true" if price_proxy.on_sale
19
-
20
- return price
21
- end
22
-
23
- end
24
-
1
+ require 'rational'
2
+ module Sevendigital
3
+
4
+ #@private
5
+ class PriceDigestor < Digestor # :nodoc:
6
+
7
+ def default_element_name; :price end
8
+ def default_list_element_name; nil end
9
+
10
+ def from_proxy(price_proxy)
11
+ make_sure_not_eating_nil(price_proxy)
12
+ price = Sevendigital::Price.new()
13
+ price.currency_code = price_proxy.currency.code.to_s.upcase.to_sym
14
+ price.currency_symbol= price_proxy.currency.value
15
+ price.value= price_proxy.value.value.to_f if !price_proxy.value.value.to_s.empty?
16
+ price.formatted_price= price_proxy.formatted_price.value
17
+ price.rrp= price_proxy.rrp.value.to_f if price_proxy.rrp
18
+ price.formatted_rrp= price_proxy.formatted_rrp.value if price_proxy.formatted_rrp
19
+ price.on_sale = price_proxy.on_sale.value.to_s.downcase == "true" if price_proxy.on_sale
20
+
21
+ return price
22
+ end
23
+
24
+ end
25
+
25
26
  end
@@ -1,52 +1,53 @@
1
- module Sevendigital
2
-
3
- require 'date'
4
-
5
- class ReleaseDigestor < Digestor # :nodoc:
6
-
7
- def default_element_name; :release end
8
- def default_list_element_name; :releases end
9
-
10
- def from_proxy(release_proxy)
11
- make_sure_not_eating_nil(release_proxy)
12
- release = Release.new(@api_client)
13
-
14
- populate_required_properties(release, release_proxy)
15
- populate_optional_properties(release, release_proxy)
16
- populate_formats(release, release_proxy)
17
-
18
- return release
19
- end
20
-
21
- def populate_required_properties(release, release_proxy)
22
- release.id = release_proxy.id.to_i
23
- release.title = release_proxy.title.value.to_s
24
- release.artist = @api_client.artist_digestor.from_proxy(release_proxy.artist)
25
- end
26
-
27
- def populate_optional_properties(release, release_proxy)
28
- release.version = release_proxy.version.value.to_s if release_proxy.version
29
- release.type = release_proxy.type.value.downcase.to_sym if value_present?(release_proxy.type)
30
- release.barcode = release_proxy.barcode.value.to_s if value_present?(release_proxy.barcode)
31
- release.year = release_proxy.year.value.to_i if value_present?(release_proxy.year)
32
- release.explicit_content = release_proxy.explicit_content.value.to_s.downcase == "true" if value_present?(release_proxy.explicit_content)
33
- release.release_date = DateTime.parse(release_proxy.release_date.value.to_s) if value_present?(release_proxy.release_date)
34
- release.added_date = DateTime.parse(release_proxy.added_date.value.to_s) if value_present?(release_proxy.added_date)
35
- release.label = @api_client.label_digestor.from_proxy(release_proxy.label) if content_present?(release_proxy.label)
36
- release.image = release_proxy.image.value.to_s if value_present?(release_proxy.image)
37
- release.url = release_proxy.url.value.to_s if value_present?(release_proxy.url)
38
- release.price = @api_client.price_digestor.from_proxy(release_proxy.price) if content_present?(release_proxy.price)
39
- end
40
-
41
- def populate_formats(release, release_proxy)
42
- if release_proxy.formats && release_proxy.formats.format then
43
- release.formats = Array.new
44
- release_proxy.formats.format.each do |format|
45
- release.formats << @api_client.format_digestor.from_proxy(format)
46
- end
47
- end
48
- end
49
-
50
- end
51
-
52
- end
1
+ module Sevendigital
2
+
3
+ require 'date'
4
+
5
+ #@private
6
+ class ReleaseDigestor < Digestor # :nodoc:
7
+
8
+ def default_element_name; :release end
9
+ def default_list_element_name; :releases end
10
+
11
+ def from_proxy(release_proxy)
12
+ make_sure_not_eating_nil(release_proxy)
13
+ release = Release.new(@api_client)
14
+
15
+ populate_required_properties(release, release_proxy)
16
+ populate_optional_properties(release, release_proxy)
17
+ populate_formats(release, release_proxy)
18
+
19
+ return release
20
+ end
21
+
22
+ def populate_required_properties(release, release_proxy)
23
+ release.id = release_proxy.id.to_i
24
+ release.title = release_proxy.title.value.to_s
25
+ release.artist = @api_client.artist_digestor.from_proxy(release_proxy.artist)
26
+ end
27
+
28
+ def populate_optional_properties(release, release_proxy)
29
+ release.version = release_proxy.version.value.to_s if release_proxy.version
30
+ release.type = release_proxy.type.value.downcase.to_sym if value_present?(release_proxy.type)
31
+ release.barcode = release_proxy.barcode.value.to_s if value_present?(release_proxy.barcode)
32
+ release.year = release_proxy.year.value.to_i if value_present?(release_proxy.year)
33
+ release.explicit_content = release_proxy.explicit_content.value.to_s.downcase == "true" if value_present?(release_proxy.explicit_content)
34
+ release.release_date = DateTime.parse(release_proxy.release_date.value.to_s) if value_present?(release_proxy.release_date)
35
+ release.added_date = DateTime.parse(release_proxy.added_date.value.to_s) if value_present?(release_proxy.added_date)
36
+ release.label = @api_client.label_digestor.from_proxy(release_proxy.label) if content_present?(release_proxy.label)
37
+ release.image = release_proxy.image.value.to_s if value_present?(release_proxy.image)
38
+ release.url = release_proxy.url.value.to_s if value_present?(release_proxy.url)
39
+ release.price = @api_client.price_digestor.from_proxy(release_proxy.price) if content_present?(release_proxy.price)
40
+ end
41
+
42
+ def populate_formats(release, release_proxy)
43
+ if release_proxy.formats && release_proxy.formats.format then
44
+ release.formats = Array.new
45
+ release_proxy.formats.format.each do |format|
46
+ release.formats << @api_client.format_digestor.from_proxy(format)
47
+ end
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ end
@@ -1,22 +1,23 @@
1
- module Sevendigital
2
-
3
- class TagDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :tag end
6
- def default_list_element_name; :tags end
7
-
8
- def from_proxy(tag_proxy)
9
- make_sure_not_eating_nil(tag_proxy)
10
-
11
- tag = Tag.new()
12
- tag.id = tag_proxy.id.to_s
13
- tag.text = tag_proxy.text.value.to_s
14
- tag.url = tag_proxy.url.value.to_s if value_present?(tag_proxy.url)
15
- tag.count = tag_proxy.count.value.to_i #if value_present?(tag_proxy.count)
16
-
17
- return tag
18
- end
19
-
20
- end
21
-
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class TagDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :tag end
7
+ def default_list_element_name; :tags end
8
+
9
+ def from_proxy(tag_proxy)
10
+ make_sure_not_eating_nil(tag_proxy)
11
+
12
+ tag = Tag.new()
13
+ tag.id = tag_proxy.id.to_s
14
+ tag.text = tag_proxy.text.value.to_s
15
+ tag.url = tag_proxy.url.value.to_s if value_present?(tag_proxy.url)
16
+ tag.count = tag_proxy.count_.value.to_i if value_present?(tag_proxy.count_)
17
+
18
+ return tag
19
+ end
20
+
21
+ end
22
+
22
23
  end
@@ -1,37 +1,38 @@
1
- module Sevendigital
2
-
3
- class TrackDigestor < Digestor # :nodoc:
4
-
5
- def default_element_name; :track end
6
- def default_list_element_name; :tracks end
7
-
8
-
9
- def from_proxy(track_proxy)
10
- make_sure_not_eating_nil (track_proxy)
11
-
12
- track = Track.new(@api_client)
13
- populate_required_properties(track, track_proxy)
14
- populate_optional_properties(track, track_proxy)
15
-
16
- return track
17
- end
18
-
19
- def populate_required_properties(track, track_proxy)
20
- track.id = track_proxy.id.to_i
21
- track.title = track_proxy.title.value.to_s
22
- track.artist = @api_client.artist_digestor.from_proxy(track_proxy.artist)
23
- end
24
-
25
- def populate_optional_properties(track, track_proxy)
26
- track.version = track_proxy.version.value.to_s if track_proxy.version
27
- track.track_number = track_proxy.track_number.value.to_i if track_proxy.track_number
28
- track.duration = track_proxy.duration.value.to_i if track_proxy.duration
29
- track.release = @api_client.release_digestor.from_proxy(track_proxy.release) if track_proxy.release
30
- track.explicit_content = track_proxy.explicit_content.value.to_s.downcase == "true" if track_proxy.explicit_content
31
- track.isrc = track_proxy.isrc.value.to_s if track_proxy.isrc
32
- track.image = track_proxy.image.value.to_s if track_proxy.image
33
- track.url = track_proxy.url.value.to_s if track_proxy.url
34
- track.price = @api_client.price_digestor.from_proxy(track_proxy.price) if track_proxy.price
35
- end
36
- end
37
- end
1
+ module Sevendigital
2
+
3
+ #@private
4
+ class TrackDigestor < Digestor # :nodoc:
5
+
6
+ def default_element_name; :track end
7
+ def default_list_element_name; :tracks end
8
+
9
+
10
+ def from_proxy(track_proxy)
11
+ make_sure_not_eating_nil (track_proxy)
12
+
13
+ track = Track.new(@api_client)
14
+ populate_required_properties(track, track_proxy)
15
+ populate_optional_properties(track, track_proxy)
16
+
17
+ return track
18
+ end
19
+
20
+ def populate_required_properties(track, track_proxy)
21
+ track.id = track_proxy.id.to_i
22
+ track.title = track_proxy.title.value.to_s
23
+ track.artist = @api_client.artist_digestor.from_proxy(track_proxy.artist)
24
+ end
25
+
26
+ def populate_optional_properties(track, track_proxy)
27
+ track.version = track_proxy.version.value.to_s if track_proxy.version
28
+ track.track_number = track_proxy.track_number.value.to_i if track_proxy.track_number
29
+ track.duration = track_proxy.duration.value.to_i if track_proxy.duration
30
+ track.release = @api_client.release_digestor.from_proxy(track_proxy.release) if track_proxy.release
31
+ track.explicit_content = track_proxy.explicit_content.value.to_s.downcase == "true" if track_proxy.explicit_content
32
+ track.isrc = track_proxy.isrc.value.to_s if track_proxy.isrc
33
+ track.image = track_proxy.image.value.to_s if track_proxy.image
34
+ track.url = track_proxy.url.value.to_s if track_proxy.url
35
+ track.price = @api_client.price_digestor.from_proxy(track_proxy.price) if track_proxy.price
36
+ end
37
+ end
38
+ end