Class: Sevendigital::ReleaseDigestor

Inherits:
Digestor
  • Object
show all
Defined in:
lib/sevendigital/digestion_tract/release_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:



8
# File 'lib/sevendigital/digestion_tract/release_digestor.rb', line 8

def default_element_name; :release end

#default_list_element_nameObject



9
# File 'lib/sevendigital/digestion_tract/release_digestor.rb', line 9

def default_list_element_name; :releases end

#from_xml_doc(xml_node) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/sevendigital/digestion_tract/release_digestor.rb', line 11

def from_xml_doc(xml_node)
  make_sure_eating_nokogiri_node(xml_node)

  release = Release.new(@api_client)

  populate_required_properties(release, xml_node)
  populate_optional_properties(release, xml_node)

  release
end

#populate_optional_properties(release, xml_node) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/sevendigital/digestion_tract/release_digestor.rb', line 28

def populate_optional_properties(release, xml_node)
  release.version = get_optional_value(xml_node, "version")
  release.type = get_optional_value(xml_node, "type") {|v| v.to_s.downcase.to_sym}
  release.barcode = get_optional_value(xml_node, "barcode")
  release.year = get_optional_value(xml_node, "year") {|v| v.to_i}
  release.explicit_content = get_optional_value(xml_node, "explicitContent") {|v| v.to_s.downcase == "true"}
  release.release_date = get_optional_value(xml_node, "releaseDate") {|v| DateTime.parse(v)}
  release.added_date = get_optional_value(xml_node, "addedDate") {|v| DateTime.parse(v)}
  release.label = get_optional_node(xml_node, "label") {|v| @api_client.label_digestor.from_xml_doc(v)}
  release.image = get_optional_value(xml_node, "image")
  release.url = get_optional_value(xml_node, "url")
  release.price = get_optional_node(xml_node, "price") {|v| @api_client.price_digestor.from_xml_doc(v)}
  release.formats = get_optional_node(xml_node, "formats") {|v| @api_client.format_digestor.list_from_xml_doc(v)}
end

#populate_required_properties(release, xml_node) ⇒ Object



22
23
24
25
26
# File 'lib/sevendigital/digestion_tract/release_digestor.rb', line 22

def populate_required_properties(release, xml_node)
  release.id = get_required_attribute(xml_node, "id").to_i
  release.title = get_required_value(xml_node, "title")
  release.artist = get_required_node(xml_node, "artist") {|v| @api_client.artist_digestor.from_xml_doc(v) }
end