7digital 0.0.1 → 0.0.2
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 +9 -7
- data/lib/sevendigital.rb +54 -53
- data/lib/sevendigital/api_operator.rb +33 -30
- data/lib/sevendigital/api_operator_cached.rb +23 -23
- data/lib/sevendigital/api_request.rb +23 -23
- data/lib/sevendigital/client.rb +136 -124
- data/lib/sevendigital/default_configuration.yml +2 -2
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +52 -52
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +31 -31
- data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +27 -27
- data/lib/sevendigital/digestion_tract/digestor.rb +66 -66
- data/lib/sevendigital/digestion_tract/format_digestor.rb +21 -21
- data/lib/sevendigital/digestion_tract/label_digestor.rb +19 -19
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/price_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/release_digestor.rb +52 -52
- data/lib/sevendigital/digestion_tract/track_digestor.rb +37 -37
- data/lib/sevendigital/management/artist_manager.rb +45 -39
- data/lib/sevendigital/management/manager.rb +11 -11
- data/lib/sevendigital/management/release_manager.rb +57 -50
- data/lib/sevendigital/management/track_manager.rb +28 -17
- data/lib/sevendigital/model/api_response.rb +24 -12
- data/lib/sevendigital/model/artist.rb +46 -36
- data/lib/sevendigital/model/chart_item.rb +9 -9
- data/lib/sevendigital/model/format.rb +9 -9
- data/lib/sevendigital/model/label.rb +9 -9
- data/lib/sevendigital/model/price.rb +11 -11
- data/lib/sevendigital/model/release.rb +33 -33
- data/lib/sevendigital/model/sevendigital_error.rb +3 -3
- data/lib/sevendigital/model/sevendigital_object.rb +51 -51
- data/lib/sevendigital/model/track.rb +28 -7
- data/lib/sevendigital/pager.rb +16 -16
- data/lib/sevendigital/peachy_patch.rb +19 -0
- data/lib/sevendigital/proxy_police.rb +23 -23
- data/spec/api_operator_cached_spec.rb +47 -46
- data/spec/api_operator_spec.rb +114 -107
- data/spec/api_request_spec.rb +26 -27
- data/spec/client_spec.rb +75 -45
- data/spec/data/config/sevendigital.yml +5 -5
- data/spec/data/configuration_env_override.yml +5 -5
- data/spec/digestion_tract/api_response_digestor_spec.rb +78 -74
- data/spec/digestion_tract/artist_digestor_spec.rb +81 -82
- data/spec/digestion_tract/chart_digestor_spec.rb +52 -53
- data/spec/digestion_tract/format_digestor_spec.rb +38 -39
- data/spec/digestion_tract/label_digestor_spec.rb +33 -34
- data/spec/digestion_tract/pager_digestor_spec.rb +50 -51
- data/spec/digestion_tract/price_digestor_spec.rb +57 -57
- data/spec/digestion_tract/release_digestor_spec.rb +101 -102
- data/spec/digestion_tract/track_digestor_spec.rb +104 -106
- data/spec/management/artist_manager_spec.rb +128 -107
- data/spec/management/release_manager_spec.rb +222 -178
- data/spec/management/track_manager_spec.rb +88 -52
- data/spec/model/api_response_spec.rb +44 -31
- data/spec/model/artist_spec.rb +166 -121
- data/spec/model/release_spec.rb +109 -110
- data/spec/model/track_spec.rb +140 -0
- data/spec/pager_spec.rb +7 -8
- data/spec/peachy_spec_helper_patch.rb +7 -0
- data/spec/proxy_police_spec.rb +47 -48
- data/spec/spec_helper.rb +52 -48
- data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
- 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 +19 -0
- data/spec/test-xml/methods/artist/similar.xml +39 -39
- data/spec/test-xml/methods/artist/toptracks.xml +279 -279
- 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 +195 -0
- data/spec/test-xml/methods/release/tracks.xml +28 -28
- 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 +160 -0
- 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/price.xml +7 -7
- data/spec/test-xml/objects/release.xml +40 -40
- data/spec/test-xml/objects/release_chart_item.xml +39 -34
- 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 +39 -0
- data/spec/test-xml/objects/track.xml +33 -33
- data/spec/test-xml/objects/track_chart_item.xml +27 -27
- metadata +10 -5
- data/lib/peachy_patchy.rb +0 -14
- data/lib/sevendigital/version.rb +0 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
api_url: api.7digital.com
|
|
2
|
-
api_version: 1.2
|
|
1
|
+
api_url: api.7digital.com
|
|
2
|
+
api_version: 1.2
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class ApiResponseDigestor < Digestor
|
|
4
|
-
|
|
5
|
-
def from_xml(xml_or_proxy, element_name = :response)
|
|
6
|
-
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def from_proxy(proxy)
|
|
10
|
-
if proxy && proxy.status then
|
|
11
|
-
return from_ok_response(proxy) if proxy.status == 'ok'
|
|
12
|
-
return from_error_response(proxy.error) if proxy.status == 'error' && proxy.error
|
|
13
|
-
end
|
|
14
|
-
return from_invalid_xml
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def from_invalid_xml
|
|
18
|
-
response = ApiResponse.new
|
|
19
|
-
response.error_code = 10000
|
|
20
|
-
response.error_message = 'Invalid 7digital API response'
|
|
21
|
-
return response
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def from_error_response(error)
|
|
25
|
-
response = ApiResponse.new
|
|
26
|
-
response.error_code = error.code.to_i
|
|
27
|
-
response.error_message = error.error_message.value.to_s
|
|
28
|
-
return response
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def from_ok_response(response_content)
|
|
32
|
-
response = ApiResponse.new
|
|
33
|
-
response.error_code = 0
|
|
34
|
-
response.content = response_content
|
|
35
|
-
return response
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def from_http_response(http_response)
|
|
39
|
-
return from_xml(http_response.body.to_s) if http_response.is_a?(Net::HTTPSuccess)
|
|
40
|
-
from_invalid_http_response(http_response)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def from_invalid_http_response(http_response)
|
|
44
|
-
response = ApiResponse.new
|
|
45
|
-
response.error_code = Integer(http_response.code)
|
|
46
|
-
response.error_message= http_response.body.to_s
|
|
47
|
-
return response
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
end
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class ApiResponseDigestor < Digestor
|
|
4
|
+
|
|
5
|
+
def from_xml(xml_or_proxy, element_name = :response)
|
|
6
|
+
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def from_proxy(proxy)
|
|
10
|
+
if proxy && proxy.status then
|
|
11
|
+
return from_ok_response(proxy) if proxy.status == 'ok'
|
|
12
|
+
return from_error_response(proxy.error) if proxy.status == 'error' && proxy.error
|
|
13
|
+
end
|
|
14
|
+
return from_invalid_xml
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def from_invalid_xml
|
|
18
|
+
response = ApiResponse.new
|
|
19
|
+
response.error_code = 10000
|
|
20
|
+
response.error_message = 'Invalid 7digital API response'
|
|
21
|
+
return response
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def from_error_response(error)
|
|
25
|
+
response = ApiResponse.new
|
|
26
|
+
response.error_code = error.code.to_i
|
|
27
|
+
response.error_message = error.error_message.value.to_s
|
|
28
|
+
return response
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def from_ok_response(response_content)
|
|
32
|
+
response = ApiResponse.new
|
|
33
|
+
response.error_code = 0
|
|
34
|
+
response.content = response_content
|
|
35
|
+
return response
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def from_http_response(http_response)
|
|
39
|
+
return from_xml(http_response.body.to_s) if http_response.is_a?(Net::HTTPSuccess)
|
|
40
|
+
from_invalid_http_response(http_response)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def from_invalid_http_response(http_response)
|
|
44
|
+
response = ApiResponse.new
|
|
45
|
+
response.error_code = Integer(http_response.code)
|
|
46
|
+
response.error_message= http_response.body.to_s
|
|
47
|
+
return response
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class ArtistDigestor < Digestor
|
|
4
|
-
|
|
5
|
-
def default_element_name; :artist end
|
|
6
|
-
def default_list_element_name; :artists end
|
|
7
|
-
|
|
8
|
-
def from_proxy(artist_proxy)
|
|
9
|
-
make_sure_not_eating_nil(artist_proxy)
|
|
10
|
-
artist = Artist.new(@api_client)
|
|
11
|
-
populate_required_properties(artist, artist_proxy)
|
|
12
|
-
populate_optional_properties(artist, artist_proxy)
|
|
13
|
-
return artist
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
def populate_required_properties(artist, artist_proxy)
|
|
19
|
-
artist.id = artist_proxy.id.to_i
|
|
20
|
-
artist.name = artist_proxy.name.value.to_s
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def populate_optional_properties(artist, artist_proxy)
|
|
24
|
-
artist.sort_name = artist_proxy.sort_name.value.to_s if artist_proxy.sort_name
|
|
25
|
-
artist.appears_as = artist_proxy.appears_as.value.to_s if artist_proxy.appears_as
|
|
26
|
-
artist.image = artist_proxy.image.value.to_s if artist_proxy.image
|
|
27
|
-
artist.url = artist_proxy.url.value.to_s if artist_proxy.url
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
end
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class ArtistDigestor < Digestor
|
|
4
|
+
|
|
5
|
+
def default_element_name; :artist end
|
|
6
|
+
def default_list_element_name; :artists end
|
|
7
|
+
|
|
8
|
+
def from_proxy(artist_proxy)
|
|
9
|
+
make_sure_not_eating_nil(artist_proxy)
|
|
10
|
+
artist = Artist.new(@api_client)
|
|
11
|
+
populate_required_properties(artist, artist_proxy)
|
|
12
|
+
populate_optional_properties(artist, artist_proxy)
|
|
13
|
+
return artist
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def populate_required_properties(artist, artist_proxy)
|
|
19
|
+
artist.id = artist_proxy.id.to_i
|
|
20
|
+
artist.name = artist_proxy.name.value.to_s
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def populate_optional_properties(artist, artist_proxy)
|
|
24
|
+
artist.sort_name = artist_proxy.sort_name.value.to_s if artist_proxy.sort_name
|
|
25
|
+
artist.appears_as = artist_proxy.appears_as.value.to_s if artist_proxy.appears_as
|
|
26
|
+
artist.image = artist_proxy.image.value.to_s if artist_proxy.image
|
|
27
|
+
artist.url = artist_proxy.url.value.to_s if artist_proxy.url
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class ChartItemDigestor < Digestor
|
|
4
|
-
|
|
5
|
-
def default_element_name; :chart_item end
|
|
6
|
-
def default_list_element_name; :chart end
|
|
7
|
-
|
|
8
|
-
def from_proxy(chart_item_proxy)
|
|
9
|
-
|
|
10
|
-
make_sure_not_eating_nil(chart_item_proxy)
|
|
11
|
-
|
|
12
|
-
chart_item = ChartItem.new(@client)
|
|
13
|
-
chart_item.position = chart_item_proxy.position.value.to_i
|
|
14
|
-
chart_item.change = chart_item_proxy.change.value.to_s.downcase.to_sym
|
|
15
|
-
if chart_item_proxy.release then
|
|
16
|
-
chart_item.item = @api_client.release_digestor.from_proxy(chart_item_proxy.release)
|
|
17
|
-
elsif chart_item_proxy.track
|
|
18
|
-
chart_item.item = @api_client.track_digestor.from_proxy(chart_item_proxy.track)
|
|
19
|
-
else
|
|
20
|
-
chart_item.item = @api_client.artist_digestor.from_proxy(chart_item_proxy.artist)
|
|
21
|
-
end
|
|
22
|
-
return chart_item
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class ChartItemDigestor < Digestor
|
|
4
|
+
|
|
5
|
+
def default_element_name; :chart_item end
|
|
6
|
+
def default_list_element_name; :chart end
|
|
7
|
+
|
|
8
|
+
def from_proxy(chart_item_proxy)
|
|
9
|
+
|
|
10
|
+
make_sure_not_eating_nil(chart_item_proxy)
|
|
11
|
+
|
|
12
|
+
chart_item = ChartItem.new(@client)
|
|
13
|
+
chart_item.position = chart_item_proxy.position.value.to_i
|
|
14
|
+
chart_item.change = chart_item_proxy.change.value.to_s.downcase.to_sym
|
|
15
|
+
if chart_item_proxy.release then
|
|
16
|
+
chart_item.item = @api_client.release_digestor.from_proxy(chart_item_proxy.release)
|
|
17
|
+
elsif chart_item_proxy.track
|
|
18
|
+
chart_item.item = @api_client.track_digestor.from_proxy(chart_item_proxy.track)
|
|
19
|
+
else
|
|
20
|
+
chart_item.item = @api_client.artist_digestor.from_proxy(chart_item_proxy.artist)
|
|
21
|
+
end
|
|
22
|
+
return chart_item
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class Digestor
|
|
4
|
-
|
|
5
|
-
#TODO TEST THIS CRAP
|
|
6
|
-
|
|
7
|
-
def initialize(api_client)
|
|
8
|
-
@api_client = api_client
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def from_xml(xml_or_proxy, element_name = default_element_name)
|
|
12
|
-
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def list_from_xml(xml_or_proxy, list_element_name = default_list_element_name)
|
|
16
|
-
list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name))
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def list_from_proxy(object_list_proxy)
|
|
20
|
-
make_sure_not_eating_nil(object_list_proxy)
|
|
21
|
-
list = []
|
|
22
|
-
if object_list_proxy.send(default_element_name) then
|
|
23
|
-
object_list_proxy.send(default_element_name).each { |object_proxy| list << from_proxy(object_proxy) }
|
|
24
|
-
end
|
|
25
|
-
return paginate_results(object_list_proxy, list)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
#nested parsing for api methods that return standard object inside containers with no additional (useful) information
|
|
29
|
-
#e.g. tagged_item.artist, recommendation.release, search_result.track, etc
|
|
30
|
-
|
|
31
|
-
def nested_list_from_xml(xml_or_proxy, container_element_name, list_element_name = default_list_element_name)
|
|
32
|
-
nested_list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name), container_element_name)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def nested_list_from_proxy(object_list_proxy, container_element_name)
|
|
36
|
-
make_sure_not_eating_nil(object_list_proxy)
|
|
37
|
-
list = []
|
|
38
|
-
if object_list_proxy.send(container_element_name) then
|
|
39
|
-
object_list_proxy.send(container_element_name).each do
|
|
40
|
-
|object_proxy| list << from_proxy(object_proxy.send(default_element_name))
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
return paginate_results(object_list_proxy, list)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def paginate_results(xml_results, list)
|
|
47
|
-
@api_client.pager_digestor.from_xml(xml_results).paginate_list(list)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def make_sure_not_eating_nil(proxy)
|
|
51
|
-
raise DigestiveProblem, "There's nothing i can digest" unless proxy
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def value_present?(proxy_node)
|
|
55
|
-
!proxy_node.nil? && !proxy_node.value.nil? && !proxy_node.value.empty?
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def content_present?(proxy_node)
|
|
59
|
-
!proxy_node.nil?
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
class DigestiveProblem < StandardError; end
|
|
65
|
-
|
|
66
|
-
end
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class Digestor
|
|
4
|
+
|
|
5
|
+
#TODO TEST THIS CRAP
|
|
6
|
+
|
|
7
|
+
def initialize(api_client)
|
|
8
|
+
@api_client = api_client
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def from_xml(xml_or_proxy, element_name = default_element_name)
|
|
12
|
+
return from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, element_name))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def list_from_xml(xml_or_proxy, list_element_name = default_list_element_name)
|
|
16
|
+
list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name))
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def list_from_proxy(object_list_proxy)
|
|
20
|
+
make_sure_not_eating_nil(object_list_proxy)
|
|
21
|
+
list = []
|
|
22
|
+
if object_list_proxy.send(default_element_name) then
|
|
23
|
+
object_list_proxy.send(default_element_name).each { |object_proxy| list << from_proxy(object_proxy) }
|
|
24
|
+
end
|
|
25
|
+
return paginate_results(object_list_proxy, list)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
#nested parsing for api methods that return standard object inside containers with no additional (useful) information
|
|
29
|
+
#e.g. tagged_item.artist, recommendation.release, search_result.track, etc
|
|
30
|
+
|
|
31
|
+
def nested_list_from_xml(xml_or_proxy, container_element_name, list_element_name = default_list_element_name)
|
|
32
|
+
nested_list_from_proxy(ProxyPolice.ensure_is_proxy(xml_or_proxy, list_element_name), container_element_name)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def nested_list_from_proxy(object_list_proxy, container_element_name)
|
|
36
|
+
make_sure_not_eating_nil(object_list_proxy)
|
|
37
|
+
list = []
|
|
38
|
+
if object_list_proxy.send(container_element_name) then
|
|
39
|
+
object_list_proxy.send(container_element_name).each do
|
|
40
|
+
|object_proxy| list << from_proxy(object_proxy.send(default_element_name))
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
return paginate_results(object_list_proxy, list)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def paginate_results(xml_results, list)
|
|
47
|
+
@api_client.pager_digestor.from_xml(xml_results).paginate_list(list)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def make_sure_not_eating_nil(proxy)
|
|
51
|
+
raise DigestiveProblem, "There's nothing i can digest" unless proxy
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def value_present?(proxy_node)
|
|
55
|
+
!proxy_node.nil? && !proxy_node.value.nil? && !proxy_node.value.empty?
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def content_present?(proxy_node)
|
|
59
|
+
!proxy_node.nil?
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
class DigestiveProblem < StandardError; end
|
|
65
|
+
|
|
66
|
+
end
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class FormatDigestor < Digestor
|
|
4
|
-
|
|
5
|
-
def default_element_name; :format end
|
|
6
|
-
def default_list_element_name; :formats end
|
|
7
|
-
|
|
8
|
-
def from_proxy(format_proxy)
|
|
9
|
-
make_sure_not_eating_nil (format_proxy)
|
|
10
|
-
format = Format.new()
|
|
11
|
-
format.id = format_proxy.id.to_i
|
|
12
|
-
format.file_format = format_proxy.file_format.value.to_sym
|
|
13
|
-
format.bit_rate = format_proxy.bit_rate.value.to_i
|
|
14
|
-
format.drm_free = format_proxy.drm_free.value.to_s.downcase == "true"
|
|
15
|
-
|
|
16
|
-
return format
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
end
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class FormatDigestor < Digestor
|
|
4
|
+
|
|
5
|
+
def default_element_name; :format end
|
|
6
|
+
def default_list_element_name; :formats end
|
|
7
|
+
|
|
8
|
+
def from_proxy(format_proxy)
|
|
9
|
+
make_sure_not_eating_nil (format_proxy)
|
|
10
|
+
format = Format.new()
|
|
11
|
+
format.id = format_proxy.id.to_i
|
|
12
|
+
format.file_format = format_proxy.file_format.value.to_sym
|
|
13
|
+
format.bit_rate = format_proxy.bit_rate.value.to_i
|
|
14
|
+
format.drm_free = format_proxy.drm_free.value.to_s.downcase == "true"
|
|
15
|
+
|
|
16
|
+
return format
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class LabelDigestor < Digestor
|
|
4
|
-
|
|
5
|
-
def default_element_name; :label end
|
|
6
|
-
def default_list_element_name; :labels end
|
|
7
|
-
|
|
8
|
-
def from_proxy(label_proxy)
|
|
9
|
-
make_sure_not_eating_nil(label_proxy)
|
|
10
|
-
|
|
11
|
-
label = Label.new()
|
|
12
|
-
label.id = label_proxy.id.to_i
|
|
13
|
-
label.name = label_proxy.name.value.to_s
|
|
14
|
-
|
|
15
|
-
return label
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
|
|
1
|
+
module Sevendigital
|
|
2
|
+
|
|
3
|
+
class LabelDigestor < Digestor
|
|
4
|
+
|
|
5
|
+
def default_element_name; :label end
|
|
6
|
+
def default_list_element_name; :labels end
|
|
7
|
+
|
|
8
|
+
def from_proxy(label_proxy)
|
|
9
|
+
make_sure_not_eating_nil(label_proxy)
|
|
10
|
+
|
|
11
|
+
label = Label.new()
|
|
12
|
+
label.id = label_proxy.id.to_i
|
|
13
|
+
label.name = label_proxy.name.value.to_s
|
|
14
|
+
|
|
15
|
+
return label
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
19
|
+
|
|
20
20
|
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
module Sevendigital
|
|
2
|
-
|
|
3
|
-
class PagerDigestor < Digestor
|
|
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
|
+
class PagerDigestor < Digestor
|
|
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
|