Class: Sevendigital::ChartItemDigestor

Inherits:
Digestor
  • Object
show all
Defined in:
lib/sevendigital/digestion_tract/chart_item_digestor.rb

Instance Method Summary collapse

Methods inherited from Digestor

#content_present?, #from_xml_string, #get_optional_attribute, #get_optional_node, #get_optional_value, #get_required_attribute, #get_required_node, #get_required_value, #initialize, #list_from_xml_doc, #list_from_xml_string, #make_sure_eating_nokogiri_node, #nested_list_from_xml_doc, #nested_list_from_xml_string, #paginate_results, #value_present?

Constructor Details

This class inherits a constructor from Sevendigital::Digestor

Instance Method Details

#default_element_nameObject

:nodoc:



6
# File 'lib/sevendigital/digestion_tract/chart_item_digestor.rb', line 6

def default_element_name; :chartItem end

#default_list_element_nameObject



7
# File 'lib/sevendigital/digestion_tract/chart_item_digestor.rb', line 7

def default_list_element_name; :chart end

#from_proxy(chart_item_proxy) ⇒ Object



9
10
11
12
13
# File 'lib/sevendigital/digestion_tract/chart_item_digestor.rb', line 9

def from_proxy(chart_item_proxy)
  
  from_xml_string(chart_item_proxy.to_s)

end

#from_xml_doc(xml_node) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sevendigital/digestion_tract/chart_item_digestor.rb', line 15

def from_xml_doc(xml_node)
  make_sure_eating_nokogiri_node(xml_node)

  chart_item = ChartItem.new(@client)

  chart_item.position = get_required_value(xml_node, "position") {|v| v.to_i}
  chart_item.change = get_required_value(xml_node, "change") {|v| v.downcase.to_sym}
  if xml_node.at_xpath("./release") then
    chart_item.item = get_required_node(xml_node, "release") {|v| @api_client.release_digestor.from_xml_doc(v) }
  elsif xml_node.at_xpath("./track")
    chart_item.item = get_required_node(xml_node, "track") {|v| @api_client.track_digestor.from_xml_doc(v) }
  else
    chart_item.item = get_required_node(xml_node, "artist") {|v| @api_client.artist_digestor.from_xml_doc(v) }
  end
  return chart_item
end