7digital 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|