7digital 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +136 -136
- data/lib/sevendigital.rb +53 -53
- data/lib/sevendigital/api_operator.rb +130 -130
- data/lib/sevendigital/api_operator_cached.rb +41 -41
- data/lib/sevendigital/api_request.rb +65 -65
- data/lib/sevendigital/client.rb +113 -113
- data/lib/sevendigital/client_configuration.rb +86 -86
- data/lib/sevendigital/client_digestors.rb +107 -107
- data/lib/sevendigital/client_managers.rb +47 -47
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -58
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -32
- data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
- data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -28
- data/lib/sevendigital/digestion_tract/digestor.rb +71 -71
- data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -18
- data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -25
- data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -53
- data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -38
- data/lib/sevendigital/digestion_tract/user_card_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/user_digestor.rb +20 -20
- data/lib/sevendigital/management/artist_manager.rb +99 -99
- data/lib/sevendigital/management/basket_manager.rb +29 -29
- data/lib/sevendigital/management/manager.rb +12 -12
- data/lib/sevendigital/management/oauth_manager.rb +23 -23
- data/lib/sevendigital/management/release_manager.rb +56 -56
- data/lib/sevendigital/management/tag_manager.rb +10 -10
- data/lib/sevendigital/management/track_manager.rb +28 -28
- data/lib/sevendigital/management/user_card_manager.rb +26 -26
- data/lib/sevendigital/management/user_manager.rb +71 -71
- data/lib/sevendigital/model/api_response.rb +25 -25
- data/lib/sevendigital/model/artist.rb +94 -94
- data/lib/sevendigital/model/basket.rb +15 -15
- data/lib/sevendigital/model/basket_item.rb +14 -14
- data/lib/sevendigital/model/card.rb +11 -11
- data/lib/sevendigital/model/chart_item.rb +9 -9
- data/lib/sevendigital/model/download_url.rb +7 -7
- data/lib/sevendigital/model/format.rb +7 -7
- data/lib/sevendigital/model/label.rb +7 -7
- data/lib/sevendigital/model/locker.rb +4 -4
- data/lib/sevendigital/model/locker_release.rb +9 -9
- data/lib/sevendigital/model/locker_track.rb +9 -9
- data/lib/sevendigital/model/price.rb +9 -9
- data/lib/sevendigital/model/release.rb +52 -52
- data/lib/sevendigital/model/sevendigital_error.rb +11 -11
- data/lib/sevendigital/model/sevendigital_object.rb +57 -57
- data/lib/sevendigital/model/tag.rb +7 -7
- data/lib/sevendigital/model/track.rb +83 -83
- data/lib/sevendigital/model/user.rb +63 -63
- data/lib/sevendigital/pager.rb +23 -23
- data/lib/sevendigital/peachy_patchy.rb +9 -9
- data/lib/sevendigital/proxy_police.rb +27 -27
- data/lib/sevendigital/version.rb +5 -5
- data/spec/api_operator_cached_spec.rb +178 -178
- data/spec/api_operator_spec.rb +336 -336
- data/spec/api_request_spec.rb +31 -31
- data/spec/client_configuration_spec.rb +79 -74
- data/spec/client_spec.rb +162 -162
- data/spec/coverage/assets/0.3.9/app.js +66 -0
- data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
- data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/coverage/assets/0.3.9/jquery.url.js +174 -0
- data/spec/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/coverage/index.html +47481 -0
- data/spec/coverage/resultset.yml +3556 -0
- data/spec/data/config/sevendigital.yml +5 -5
- data/spec/data/configuration_env_override.yml +5 -5
- data/spec/data/configuration_override.yml +1 -1
- data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
- data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
- data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
- data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
- data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
- data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
- data/spec/digestion_tract/format_digestor_spec.rb +38 -38
- data/spec/digestion_tract/label_digestor_spec.rb +33 -33
- data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
- data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
- data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
- data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
- data/spec/digestion_tract/price_digestor_spec.rb +73 -73
- data/spec/digestion_tract/release_digestor_spec.rb +101 -101
- data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
- data/spec/digestion_tract/track_digestor_spec.rb +104 -104
- data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
- data/spec/digestion_tract/user_digestor_spec.rb +44 -44
- data/spec/management/artist_manager_spec.rb +151 -151
- data/spec/management/basket_manager_spec.rb +77 -77
- data/spec/management/oauth_manager_spec.rb +72 -72
- data/spec/management/release_manager_spec.rb +200 -200
- data/spec/management/tag_manager_spec.rb +34 -34
- data/spec/management/track_manager_spec.rb +107 -107
- data/spec/management/user_card_manager_spec.rb +78 -78
- data/spec/management/user_manager_spec.rb +202 -202
- data/spec/model/api_response_spec.rb +48 -48
- data/spec/model/artist_spec.rb +154 -154
- data/spec/model/basket_spec.rb +62 -62
- data/spec/model/coverage/assets/0.3.9/app.js +66 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
- data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/model/coverage/assets/0.3.9/jquery.url.js +174 -0
- data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/model/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/model/coverage/index.html +8637 -0
- data/spec/model/coverage/resultset.yml +642 -0
- data/spec/model/release_spec.rb +122 -122
- data/spec/model/sevendigital_object_spec.rb +73 -73
- data/spec/model/track_spec.rb +144 -144
- data/spec/model/user_spec.rb +160 -160
- data/spec/pager_spec.rb +7 -7
- data/spec/peachy_spec_helper_patch.rb +6 -6
- data/spec/proxy_police_spec.rb +69 -69
- data/spec/sevendigital_spec.rb +51 -70
- data/spec/sevendigital_spec.yml +4 -4
- data/spec/spec_helper.rb +64 -64
- data/spec/test-xml/methods/artist/browse.xml +21 -21
- data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
- data/spec/test-xml/methods/artist/chart.xml +30 -30
- data/spec/test-xml/methods/artist/details.xml +9 -9
- data/spec/test-xml/methods/artist/releases.xml +544 -544
- data/spec/test-xml/methods/artist/search.xml +18 -18
- data/spec/test-xml/methods/artist/similar.xml +39 -39
- data/spec/test-xml/methods/artist/tags.xml +11 -11
- data/spec/test-xml/methods/artist/toptracks.xml +279 -279
- data/spec/test-xml/methods/basket/additem.xml +23 -23
- data/spec/test-xml/methods/basket/create.xml +10 -10
- data/spec/test-xml/methods/basket/index.xml +23 -23
- data/spec/test-xml/methods/basket/removeitem.xml +10 -10
- data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
- data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
- data/spec/test-xml/methods/release/bydate.xml +173 -173
- data/spec/test-xml/methods/release/bytag/top.xml +150 -150
- data/spec/test-xml/methods/release/chart.xml +181 -181
- data/spec/test-xml/methods/release/details.xml +48 -48
- data/spec/test-xml/methods/release/recommend.xml +89 -89
- data/spec/test-xml/methods/release/search.xml +194 -194
- data/spec/test-xml/methods/release/tags.xml +27 -27
- data/spec/test-xml/methods/release/tracks.xml +28 -28
- data/spec/test-xml/methods/tag/index.xml +16 -16
- data/spec/test-xml/methods/track/chart.xml +149 -149
- data/spec/test-xml/methods/track/details.xml +30 -30
- data/spec/test-xml/methods/track/search.xml +159 -159
- data/spec/test-xml/methods/user/locker.xml +49 -49
- data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
- data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
- data/spec/test-xml/methods/user/purchase/basket.xml +49 -0
- data/spec/test-xml/methods/user/purchase/item.xml +48 -48
- data/spec/test-xml/methods/user/signUp.xml +5 -5
- data/spec/test-xml/objects/artist.xml +6 -6
- data/spec/test-xml/objects/artist_chart_item.xml +7 -7
- data/spec/test-xml/objects/artist_list.xml +22 -22
- data/spec/test-xml/objects/artist_list_empty.xml +4 -4
- data/spec/test-xml/objects/basket.xml +21 -21
- data/spec/test-xml/objects/basket_item.xml +11 -11
- data/spec/test-xml/objects/basket_item_list.xml +25 -25
- data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
- data/spec/test-xml/objects/download_url.xml +7 -7
- data/spec/test-xml/objects/locker.xml +47 -47
- data/spec/test-xml/objects/locker_release.xml +40 -40
- data/spec/test-xml/objects/locker_release_list.xml +87 -87
- data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
- data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
- data/spec/test-xml/objects/locker_track.xml +25 -25
- data/spec/test-xml/objects/locker_track_list.xml +26 -26
- data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
- data/spec/test-xml/objects/oauth_access_token.xml +3 -3
- data/spec/test-xml/objects/oauth_request_token.xml +3 -3
- data/spec/test-xml/objects/price.xml +7 -7
- data/spec/test-xml/objects/release.xml +40 -40
- data/spec/test-xml/objects/release_chart_item.xml +39 -39
- data/spec/test-xml/objects/release_list.xml +18 -18
- data/spec/test-xml/objects/release_list_empty.xml +4 -4
- data/spec/test-xml/objects/response.xml +38 -38
- data/spec/test-xml/objects/tag.xml +4 -4
- data/spec/test-xml/objects/track.xml +33 -33
- data/spec/test-xml/objects/track_chart_item.xml +27 -27
- data/spec/test-xml/objects/user.xml +4 -4
- data/spec/test-xml/objects/user_payment_card.xml +5 -5
- metadata +193 -3
@@ -1,19 +1,19 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class BasketDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :basket end
|
7
|
-
|
8
|
-
def from_proxy(basket_proxy)
|
9
|
-
make_sure_not_eating_nil (basket_proxy)
|
10
|
-
basket = Sevendigital::Basket.new(@api_client)
|
11
|
-
basket.id = basket_proxy.id.to_s
|
12
|
-
basket.basket_items = @api_client.basket_item_digestor.list_from_proxy(basket_proxy.basket_items)
|
13
|
-
|
14
|
-
return basket
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class BasketDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :basket end
|
7
|
+
|
8
|
+
def from_proxy(basket_proxy)
|
9
|
+
make_sure_not_eating_nil (basket_proxy)
|
10
|
+
basket = Sevendigital::Basket.new(@api_client)
|
11
|
+
basket.id = basket_proxy.id.to_s
|
12
|
+
basket.basket_items = @api_client.basket_item_digestor.list_from_proxy(basket_proxy.basket_items)
|
13
|
+
|
14
|
+
return basket
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -1,26 +1,26 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class BasketItemDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :basket_item end
|
7
|
-
def default_list_element_name; :basket_items end
|
8
|
-
|
9
|
-
def from_proxy(basket_item_proxy)
|
10
|
-
make_sure_not_eating_nil(basket_item_proxy)
|
11
|
-
basket_item = BasketItem.new(@api_client)
|
12
|
-
|
13
|
-
basket_item.id = basket_item_proxy.id.to_i
|
14
|
-
basket_item.type = basket_item_proxy.type.value.downcase.to_sym
|
15
|
-
basket_item.artist_name = basket_item_proxy.artist_name.value.to_s
|
16
|
-
basket_item.item_name = basket_item_proxy.item_name.value.to_s
|
17
|
-
basket_item.release_id = basket_item_proxy.release_id.value.to_i
|
18
|
-
basket_item.track_id = basket_item_proxy.track_id.value.to_i
|
19
|
-
basket_item.price = @api_client.price_digestor.from_proxy(basket_item_proxy.price)
|
20
|
-
|
21
|
-
return basket_item
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class BasketItemDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :basket_item end
|
7
|
+
def default_list_element_name; :basket_items end
|
8
|
+
|
9
|
+
def from_proxy(basket_item_proxy)
|
10
|
+
make_sure_not_eating_nil(basket_item_proxy)
|
11
|
+
basket_item = BasketItem.new(@api_client)
|
12
|
+
|
13
|
+
basket_item.id = basket_item_proxy.id.to_i
|
14
|
+
basket_item.type = basket_item_proxy.type.value.downcase.to_sym
|
15
|
+
basket_item.artist_name = basket_item_proxy.artist_name.value.to_s
|
16
|
+
basket_item.item_name = basket_item_proxy.item_name.value.to_s
|
17
|
+
basket_item.release_id = basket_item_proxy.release_id.value.to_i
|
18
|
+
basket_item.track_id = basket_item_proxy.track_id.value.to_i
|
19
|
+
basket_item.price = @api_client.price_digestor.from_proxy(basket_item_proxy.price)
|
20
|
+
|
21
|
+
return basket_item
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -1,28 +1,28 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class ChartItemDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :chart_item end
|
7
|
-
def default_list_element_name; :chart end
|
8
|
-
|
9
|
-
def from_proxy(chart_item_proxy)
|
10
|
-
|
11
|
-
make_sure_not_eating_nil(chart_item_proxy)
|
12
|
-
|
13
|
-
chart_item = ChartItem.new(@client)
|
14
|
-
chart_item.position = chart_item_proxy.position.value.to_i
|
15
|
-
chart_item.change = chart_item_proxy.change.value.to_s.downcase.to_sym
|
16
|
-
if chart_item_proxy.release then
|
17
|
-
chart_item.item = @api_client.release_digestor.from_proxy(chart_item_proxy.release)
|
18
|
-
elsif chart_item_proxy.track
|
19
|
-
chart_item.item = @api_client.track_digestor.from_proxy(chart_item_proxy.track)
|
20
|
-
else
|
21
|
-
chart_item.item = @api_client.artist_digestor.from_proxy(chart_item_proxy.artist)
|
22
|
-
end
|
23
|
-
return chart_item
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class ChartItemDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :chart_item end
|
7
|
+
def default_list_element_name; :chart end
|
8
|
+
|
9
|
+
def from_proxy(chart_item_proxy)
|
10
|
+
|
11
|
+
make_sure_not_eating_nil(chart_item_proxy)
|
12
|
+
|
13
|
+
chart_item = ChartItem.new(@client)
|
14
|
+
chart_item.position = chart_item_proxy.position.value.to_i
|
15
|
+
chart_item.change = chart_item_proxy.change.value.to_s.downcase.to_sym
|
16
|
+
if chart_item_proxy.release then
|
17
|
+
chart_item.item = @api_client.release_digestor.from_proxy(chart_item_proxy.release)
|
18
|
+
elsif chart_item_proxy.track
|
19
|
+
chart_item.item = @api_client.track_digestor.from_proxy(chart_item_proxy.track)
|
20
|
+
else
|
21
|
+
chart_item.item = @api_client.artist_digestor.from_proxy(chart_item_proxy.artist)
|
22
|
+
end
|
23
|
+
return chart_item
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -1,71 +1,71 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
#internal generic class used for digesting XML responses from the API
|
5
|
-
class Digestor # :nodoc:
|
6
|
-
|
7
|
-
#TODO TEST THIS CRAP
|
8
|
-
|
9
|
-
def initialize(api_client)
|
10
|
-
@api_client = api_client
|
11
|
-
end
|
12
|
-
|
13
|
-
def from_xml(xml_or_proxy, element_name = default_element_name)
|
14
|
-
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
15
|
-
end
|
16
|
-
|
17
|
-
def list_from_xml(xml_or_proxy, list_element_name = default_list_element_name)
|
18
|
-
list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name))
|
19
|
-
end
|
20
|
-
|
21
|
-
def list_from_proxy(object_list_proxy)
|
22
|
-
make_sure_not_eating_nil(object_list_proxy)
|
23
|
-
list = []
|
24
|
-
return list if object_list_proxy.kind_of?(Peachy::SimpleContent)
|
25
|
-
if object_list_proxy.send(default_element_name) then
|
26
|
-
object_list_proxy.send(default_element_name).each { |object_proxy| list << from_proxy(object_proxy) }
|
27
|
-
end
|
28
|
-
paginate_results(object_list_proxy, list)
|
29
|
-
end
|
30
|
-
|
31
|
-
#nested parsing for api methods that return standard object inside containers with no additional (useful) information
|
32
|
-
#e.g. tagged_item.artist, recommendation.release, search_result.track, etc
|
33
|
-
|
34
|
-
def nested_list_from_xml(xml_or_proxy, container_element_name, list_element_name = default_list_element_name)
|
35
|
-
nested_list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name), container_element_name)
|
36
|
-
end
|
37
|
-
|
38
|
-
def nested_list_from_proxy(object_list_proxy, container_element_name)
|
39
|
-
make_sure_not_eating_nil(object_list_proxy)
|
40
|
-
list = []
|
41
|
-
if object_list_proxy.send(container_element_name) then
|
42
|
-
object_list_proxy.send(container_element_name).each do
|
43
|
-
|object_proxy| list << from_proxy(object_proxy.send(default_element_name))
|
44
|
-
end
|
45
|
-
end
|
46
|
-
return paginate_results(object_list_proxy, list)
|
47
|
-
end
|
48
|
-
|
49
|
-
def paginate_results(xml_results, list)
|
50
|
-
pager = @api_client.pager_digestor.from_xml(xml_results)
|
51
|
-
return list if !pager
|
52
|
-
pager.paginate_list(list)
|
53
|
-
end
|
54
|
-
|
55
|
-
def make_sure_not_eating_nil(proxy)
|
56
|
-
raise DigestiveProblem, "There's nothing i can digest" unless proxy
|
57
|
-
end
|
58
|
-
|
59
|
-
def value_present?(proxy_node)
|
60
|
-
!proxy_node.nil? && !proxy_node.value.nil? && !proxy_node.value.empty?
|
61
|
-
end
|
62
|
-
|
63
|
-
def content_present?(proxy_node)
|
64
|
-
!proxy_node.nil?
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
class DigestiveProblem < StandardError; end
|
70
|
-
|
71
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
#internal generic class used for digesting XML responses from the API
|
5
|
+
class Digestor # :nodoc:
|
6
|
+
|
7
|
+
#TODO TEST THIS CRAP
|
8
|
+
|
9
|
+
def initialize(api_client)
|
10
|
+
@api_client = api_client
|
11
|
+
end
|
12
|
+
|
13
|
+
def from_xml(xml_or_proxy, element_name = default_element_name)
|
14
|
+
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
15
|
+
end
|
16
|
+
|
17
|
+
def list_from_xml(xml_or_proxy, list_element_name = default_list_element_name)
|
18
|
+
list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name))
|
19
|
+
end
|
20
|
+
|
21
|
+
def list_from_proxy(object_list_proxy)
|
22
|
+
make_sure_not_eating_nil(object_list_proxy)
|
23
|
+
list = []
|
24
|
+
return list if object_list_proxy.kind_of?(Peachy::SimpleContent)
|
25
|
+
if object_list_proxy.send(default_element_name) then
|
26
|
+
object_list_proxy.send(default_element_name).each { |object_proxy| list << from_proxy(object_proxy) }
|
27
|
+
end
|
28
|
+
paginate_results(object_list_proxy, list)
|
29
|
+
end
|
30
|
+
|
31
|
+
#nested parsing for api methods that return standard object inside containers with no additional (useful) information
|
32
|
+
#e.g. tagged_item.artist, recommendation.release, search_result.track, etc
|
33
|
+
|
34
|
+
def nested_list_from_xml(xml_or_proxy, container_element_name, list_element_name = default_list_element_name)
|
35
|
+
nested_list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name), container_element_name)
|
36
|
+
end
|
37
|
+
|
38
|
+
def nested_list_from_proxy(object_list_proxy, container_element_name)
|
39
|
+
make_sure_not_eating_nil(object_list_proxy)
|
40
|
+
list = []
|
41
|
+
if object_list_proxy.send(container_element_name) then
|
42
|
+
object_list_proxy.send(container_element_name).each do
|
43
|
+
|object_proxy| list << from_proxy(object_proxy.send(default_element_name))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
return paginate_results(object_list_proxy, list)
|
47
|
+
end
|
48
|
+
|
49
|
+
def paginate_results(xml_results, list)
|
50
|
+
pager = @api_client.pager_digestor.from_xml(xml_results)
|
51
|
+
return list if !pager
|
52
|
+
pager.paginate_list(list)
|
53
|
+
end
|
54
|
+
|
55
|
+
def make_sure_not_eating_nil(proxy)
|
56
|
+
raise DigestiveProblem, "There's nothing i can digest" unless proxy
|
57
|
+
end
|
58
|
+
|
59
|
+
def value_present?(proxy_node)
|
60
|
+
!proxy_node.nil? && !proxy_node.value.nil? && !proxy_node.value.empty?
|
61
|
+
end
|
62
|
+
|
63
|
+
def content_present?(proxy_node)
|
64
|
+
!proxy_node.nil?
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
class DigestiveProblem < StandardError; end
|
70
|
+
|
71
|
+
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class DownloadUrlDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :download_url end
|
7
|
-
def default_list_element_name; :download_urls end
|
8
|
-
|
9
|
-
def from_proxy(download_url_proxy)
|
10
|
-
make_sure_not_eating_nil (download_url_proxy)
|
11
|
-
download_url = DownloadUrl.new()
|
12
|
-
download_url.url = download_url_proxy.url.value.to_s
|
13
|
-
download_url.format = @api_client.format_digestor.from_proxy(download_url_proxy.format)
|
14
|
-
|
15
|
-
return download_url
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class DownloadUrlDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :download_url end
|
7
|
+
def default_list_element_name; :download_urls end
|
8
|
+
|
9
|
+
def from_proxy(download_url_proxy)
|
10
|
+
make_sure_not_eating_nil (download_url_proxy)
|
11
|
+
download_url = DownloadUrl.new()
|
12
|
+
download_url.url = download_url_proxy.url.value.to_s
|
13
|
+
download_url.format = @api_client.format_digestor.from_proxy(download_url_proxy.format)
|
14
|
+
|
15
|
+
return download_url
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -1,22 +1,22 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class FormatDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :format end
|
7
|
-
def default_list_element_name; :formats end
|
8
|
-
|
9
|
-
def from_proxy(format_proxy)
|
10
|
-
make_sure_not_eating_nil (format_proxy)
|
11
|
-
format = Format.new()
|
12
|
-
format.id = format_proxy.id.to_i
|
13
|
-
format.file_format = format_proxy.file_format.value.to_sym
|
14
|
-
format.bit_rate = format_proxy.bit_rate.value.to_i
|
15
|
-
format.drm_free = format_proxy.drm_free.value.to_s.downcase == "true"
|
16
|
-
|
17
|
-
return format
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class FormatDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :format end
|
7
|
+
def default_list_element_name; :formats end
|
8
|
+
|
9
|
+
def from_proxy(format_proxy)
|
10
|
+
make_sure_not_eating_nil (format_proxy)
|
11
|
+
format = Format.new()
|
12
|
+
format.id = format_proxy.id.to_i
|
13
|
+
format.file_format = format_proxy.file_format.value.to_sym
|
14
|
+
format.bit_rate = format_proxy.bit_rate.value.to_i
|
15
|
+
format.drm_free = format_proxy.drm_free.value.to_s.downcase == "true"
|
16
|
+
|
17
|
+
return format
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class LabelDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :label end
|
7
|
-
def default_list_element_name; :labels end
|
8
|
-
|
9
|
-
def from_proxy(label_proxy)
|
10
|
-
make_sure_not_eating_nil(label_proxy)
|
11
|
-
|
12
|
-
label = Label.new()
|
13
|
-
label.id = label_proxy.id.to_i
|
14
|
-
label.name = label_proxy.name.value.to_s
|
15
|
-
|
16
|
-
return label
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class LabelDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :label end
|
7
|
+
def default_list_element_name; :labels end
|
8
|
+
|
9
|
+
def from_proxy(label_proxy)
|
10
|
+
make_sure_not_eating_nil(label_proxy)
|
11
|
+
|
12
|
+
label = Label.new()
|
13
|
+
label.id = label_proxy.id.to_i
|
14
|
+
label.name = label_proxy.name.value.to_s
|
15
|
+
|
16
|
+
return label
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
21
|
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class LockerDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :locker end
|
7
|
-
|
8
|
-
def from_proxy(locker_proxy)
|
9
|
-
make_sure_not_eating_nil (locker_proxy)
|
10
|
-
locker = Locker.new(@api_client)
|
11
|
-
locker.locker_releases = @api_client.locker_release_digestor.list_from_proxy(locker_proxy.locker_releases)
|
12
|
-
|
13
|
-
return locker
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class LockerDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :locker end
|
7
|
+
|
8
|
+
def from_proxy(locker_proxy)
|
9
|
+
make_sure_not_eating_nil (locker_proxy)
|
10
|
+
locker = Locker.new(@api_client)
|
11
|
+
locker.locker_releases = @api_client.locker_release_digestor.list_from_proxy(locker_proxy.locker_releases)
|
12
|
+
|
13
|
+
return locker
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|