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,16 +1,16 @@
1
- module Sevendigital
2
-
3
- class Basket < SevendigitalObject
4
- attr_accessor :id, :basket_items
5
-
6
- def add_item(release_id, track_id=nil, options={})
7
- @basket_items = @api_client.basket.add_item(id, release_id, track_id, options).basket_items
8
- end
9
-
10
- def remove_item(item_id, options={})
11
- @basket_items = @api_client.basket.remove_item(id, item_id, options).basket_items
12
- end
13
-
14
- end
15
-
1
+ module Sevendigital
2
+
3
+ class Basket < SevendigitalObject
4
+ attr_accessor :id, :basket_items
5
+
6
+ def add_item(release_id, track_id=nil, options={})
7
+ @basket_items = @api_client.basket.add_item(id, release_id, track_id, options).basket_items
8
+ end
9
+
10
+ def remove_item(item_id, options={})
11
+ @basket_items = @api_client.basket.remove_item(id, item_id, options).basket_items
12
+ end
13
+
14
+ end
15
+
16
16
  end
@@ -1,15 +1,15 @@
1
- module Sevendigital
2
-
3
- class BasketItem < SevendigitalObject
4
-
5
- attr_accessor :id
6
-
7
- sevendigital_basic_property :type, :artist_name, :item_name, :price, :track_id, :release_id
8
-
9
- sevendigital_extended_property :artist
10
- sevendigital_extended_property :release
11
- sevendigital_extended_property :track
12
-
13
- end
14
-
1
+ module Sevendigital
2
+
3
+ class BasketItem < SevendigitalObject
4
+
5
+ attr_accessor :id
6
+
7
+ sevendigital_basic_property :type, :artist_name, :item_name, :price, :track_id, :release_id
8
+
9
+ sevendigital_extended_property :artist
10
+ sevendigital_extended_property :release
11
+ sevendigital_extended_property :track
12
+
13
+ end
14
+
15
15
  end
@@ -0,0 +1,12 @@
1
+ module Sevendigital
2
+
3
+ class Card < SevendigitalObject
4
+
5
+ attr_accessor :id, :type, :last_4_digits, :card_holder_name, :expiry_date
6
+
7
+ # sevendigital_basic_property
8
+
9
+
10
+ end
11
+
12
+ end
@@ -1,9 +1,9 @@
1
- module Sevendigital
2
-
3
- class ChartItem < SevendigitalObject
4
-
5
- attr_accessor :position, :change, :item
6
-
7
- end
8
-
9
- end
1
+ module Sevendigital
2
+
3
+ class ChartItem < SevendigitalObject
4
+
5
+ attr_accessor :position, :change, :item
6
+
7
+ end
8
+
9
+ end
@@ -1,7 +1,7 @@
1
- module Sevendigital
2
-
3
- class DownloadUrl
4
- attr_accessor :url, :format
5
- end
6
-
7
- end
1
+ module Sevendigital
2
+
3
+ class DownloadUrl
4
+ attr_accessor :url, :format
5
+ end
6
+
7
+ end
@@ -1,7 +1,7 @@
1
- module Sevendigital
2
-
3
- class Format
4
- attr_accessor :id, :file_format, :bit_rate, :drm_free
5
- end
6
-
7
- end
1
+ module Sevendigital
2
+
3
+ class Format
4
+ attr_accessor :id, :file_format, :bit_rate, :drm_free
5
+ end
6
+
7
+ end
@@ -1,7 +1,7 @@
1
- module Sevendigital
2
-
3
- class Label
4
- attr_accessor :id, :name
5
- end
6
-
7
- end
1
+ module Sevendigital
2
+
3
+ class Label
4
+ attr_accessor :id, :name
5
+ end
6
+
7
+ end
@@ -1,5 +1,5 @@
1
- module Sevendigital
2
- class Locker < SevendigitalObject
3
- attr_accessor :locker_releases
4
- end
1
+ module Sevendigital
2
+ class Locker < SevendigitalObject
3
+ attr_accessor :locker_releases
4
+ end
5
5
  end
@@ -1,9 +1,9 @@
1
- module Sevendigital
2
-
3
- class LockerRelease < SevendigitalObject
4
-
5
- attr_accessor :release, :locker_tracks
6
-
7
- end
8
-
9
- end
1
+ module Sevendigital
2
+
3
+ class LockerRelease < SevendigitalObject
4
+
5
+ attr_accessor :release, :locker_tracks
6
+
7
+ end
8
+
9
+ end
@@ -1,9 +1,9 @@
1
- module Sevendigital
2
-
3
- class LockerTrack < SevendigitalObject
4
-
5
- attr_accessor :track, :download_urls, :remaining_downloads, :purchase_date
6
-
7
- end
8
-
9
- end
1
+ module Sevendigital
2
+
3
+ class LockerTrack < SevendigitalObject
4
+
5
+ attr_accessor :track, :download_urls, :remaining_downloads, :purchase_date
6
+
7
+ end
8
+
9
+ end
@@ -1,9 +1,9 @@
1
- module Sevendigital
2
-
3
- class Price
4
-
5
- attr_accessor :currency_code, :currency_symbol, :value, :formatted_price, :rrp, :formatted_rrp, :on_sale
6
-
7
- end
8
-
9
- end
1
+ module Sevendigital
2
+
3
+ class Price
4
+
5
+ attr_accessor :currency_code, :currency_symbol, :value, :formatted_price, :rrp, :formatted_rrp, :on_sale
6
+
7
+ end
8
+
9
+ end
@@ -1,48 +1,53 @@
1
- module Sevendigital
2
-
3
- class Release < SevendigitalObject
4
-
5
- attr_accessor :id, :title
6
-
7
- sevendigital_basic_property :version, :type, :artist, :image, :url, :release_date,
8
- :added_date, :barcode, :year, :explicit_content, :formats, :label
9
-
10
- sevendigital_extended_property :tracks
11
- sevendigital_extended_property :recommendations
12
-
13
- def get_details(options={})
14
- release_with_details = @api_client.release.get_details(@id, options)
15
- copy_basic_properties_from(release_with_details)
16
- @price = release_with_details.instance_variable_get("@price")
17
- release_with_details
18
- end
19
-
20
- def get_tracks(options={})
21
- @api_client.release.get_tracks(@id, options)
22
- end
23
-
24
- def get_recommendations(options={})
25
- @recommendations = @api_client.release.get_recommendations(@id, options)
26
- end
27
-
28
- def demand_price(options={})
29
- get_details(options) if @price.nil? || @price.value.nil?
30
- end
31
-
32
- def price(options={})
33
- begin
34
- demand_price(options) if @api_client.configuration.lazy_load?
35
- rescue
36
- puts "Error whilst lazyloading price - #{error.error_code} #{error.error_message}" if @api_client.verbose?
37
- raise error if !@api_client.configuration.ignorant_lazy_load?
38
- end
39
- @price
40
- end
41
-
42
- def price=(value)
43
- @price = value
44
- end
45
-
46
- end
47
-
1
+ module Sevendigital
2
+
3
+ class Release < SevendigitalObject
4
+
5
+ attr_accessor :id, :title
6
+
7
+ sevendigital_basic_property :version, :type, :artist, :image, :url, :release_date,
8
+ :added_date, :barcode, :year, :explicit_content, :formats, :label
9
+
10
+ sevendigital_extended_property :tracks
11
+ sevendigital_extended_property :recommendations
12
+ sevendigital_extended_property :tags
13
+
14
+ def get_details(options={})
15
+ release_with_details = @api_client.release.get_details(@id, options)
16
+ copy_basic_properties_from(release_with_details)
17
+ @price = release_with_details.instance_variable_get("@price")
18
+ release_with_details
19
+ end
20
+
21
+ def get_tracks(options={})
22
+ @api_client.release.get_tracks(@id, options)
23
+ end
24
+
25
+ def get_recommendations(options={})
26
+ @api_client.release.get_recommendations(@id, options)
27
+ end
28
+
29
+ def get_tags(options={})
30
+ @api_client.release.get_tags(@id, options)
31
+ end
32
+
33
+ def demand_price(options={})
34
+ get_details(options) if @price.nil? || @price.value.nil?
35
+ end
36
+
37
+ def price(options={})
38
+ begin
39
+ demand_price(options) if @api_client.configuration.lazy_load
40
+ rescue
41
+ puts "Error whilst lazyloading price - #{error.error_code} #{error.error_message}" if @api_client.verbose?
42
+ raise error if !@api_client.configuration.ignorant_lazy_load
43
+ end
44
+ @price
45
+ end
46
+
47
+ def price=(value)
48
+ @price = value
49
+ end
50
+
51
+ end
52
+
48
53
  end
@@ -1,11 +1,11 @@
1
- module Sevendigital
2
- class SevendigitalError < StandardError;
3
- attr_accessor :error_code, :error_message
4
-
5
- def initialize(error_code = 10000, error_message=nil)
6
- @error_code = error_code
7
- @error_message = error_message
8
- end
9
-
10
- end
11
- end
1
+ module Sevendigital
2
+ class SevendigitalError < StandardError;
3
+ attr_accessor :error_code, :error_message
4
+
5
+ def initialize(error_code = 10000, error_message=nil)
6
+ @error_code = error_code
7
+ @error_message = error_message
8
+ end
9
+
10
+ end
11
+ end
@@ -1,56 +1,57 @@
1
- class Class
2
-
3
- def sevendigital_basic_property(*properties)
4
- @basic_properties = []
5
- properties.each do |property|
6
- @basic_properties << "@#{property}".to_sym
7
- sevendigital_extended_property property, :get_details
8
- end
9
- end
10
-
11
- def sevendigital_extended_property(accessor, get_method = nil)
12
-
13
- get_method ||= "get_#{accessor.to_s}".to_sym
14
- demand_method = "demand_#{accessor.to_s}".to_sym
15
-
16
- define_method(demand_method) do |*options|
17
- if instance_variable_get("@#{accessor}").nil? then
18
- value = send(get_method, *options)
19
- instance_variable_set("@#{accessor}", value) if get_method != :get_details
20
- end
21
- end
22
-
23
- define_method("#{accessor}") do |*options|
24
- begin
25
- send(demand_method, *options) if instance_variable_get("@#{accessor}").nil? && @api_client.configuration.lazy_load
26
- rescue Sevendigital::SevendigitalError => error
27
- puts "Error whilst lazyloading #{accessor} - #{error.error_code} #{error.error_message}" if @api_client.verbose?
28
- raise error if !@api_client.configuration.ignorant_lazy_load
29
- end
30
- instance_variable_get("@#{accessor}")
31
- end
32
-
33
- define_method("#{accessor}=") do |val|
34
- instance_variable_set("@#{accessor}",val)
35
- end
36
- end
37
- end
38
-
39
- module Sevendigital
40
-
41
- class SevendigitalObject
42
-
43
- def initialize(api_client)
44
- @api_client = api_client
45
- end
46
-
47
- def copy_basic_properties_from(other_object)
48
- self.class.instance_variable_get(:@basic_properties).each do |property|
49
- instance_variable_set(property, other_object.instance_variable_get(property))
50
- end
51
- end
52
-
53
- end
54
-
55
- end
56
-
1
+ #@private
2
+ class Class # :nodoc:
3
+
4
+ def sevendigital_basic_property(*properties)
5
+ @basic_properties ||= []
6
+ properties.each do |property|
7
+ @basic_properties << "@#{property}".to_sym
8
+ sevendigital_extended_property property, :get_details
9
+ end
10
+ end
11
+
12
+ def sevendigital_extended_property(accessor, get_method = nil)
13
+
14
+ get_method ||= "get_#{accessor.to_s}".to_sym
15
+ demand_method = "demand_#{accessor.to_s}".to_sym
16
+
17
+ define_method(demand_method) do |*options|
18
+ if instance_variable_get("@#{accessor}").nil? then
19
+ value = send(get_method, *options)
20
+ instance_variable_set("@#{accessor}", value) if get_method != :get_details
21
+ end
22
+ end
23
+
24
+ define_method("#{accessor}") do |*options|
25
+ begin
26
+ send(demand_method, *options) if instance_variable_get("@#{accessor}").nil? && @api_client.configuration.lazy_load
27
+ rescue Sevendigital::SevendigitalError => error
28
+ puts "Error whilst lazyloading #{accessor} - #{error.error_code} #{error.error_message}" if @api_client.verbose?
29
+ raise error if !@api_client.configuration.ignorant_lazy_load
30
+ end
31
+ instance_variable_get("@#{accessor}")
32
+ end
33
+
34
+ define_method("#{accessor}=") do |val|
35
+ instance_variable_set("@#{accessor}",val)
36
+ end
37
+ end
38
+ end
39
+
40
+ module Sevendigital
41
+
42
+ class SevendigitalObject
43
+
44
+ def initialize(api_client)
45
+ @api_client = api_client
46
+ end
47
+
48
+ def copy_basic_properties_from(other_object)
49
+ self.class.instance_variable_get(:@basic_properties).each do |property|
50
+ instance_variable_set(property, other_object.instance_variable_get(property))
51
+ end
52
+ end
53
+
54
+ end
55
+
56
+ end
57
+