lib/metal_archives/parsers/label.rb in metal_archives-2.0.2 vs lib/metal_archives/parsers/label.rb in metal_archives-2.1.0

- old
+ new

@@ -28,33 +28,37 @@ } end doc.css('#label_info dl').each do |dl| dl.search('dt').each do |dt| - case dt.content + content = sanitize(dt.next_element.content) + + next if content == 'N/A' + + case sanitize(dt.content) when 'Address:' - break if dt.next_element.content == 'N/A' - props[:address] = dt.next_element.content + props[:address] = content when 'Country:' - break if dt.next_element.content == 'N/A' - props[:country] = ParserHelper.parse_country dt.next_element.css('a').first.content + props[:country] = ParserHelper.parse_country css('a').first.content when 'Phone number:' - break if dt.next_element.content == 'N/A' - props[:phone] = dt.next_element.content + props[:phone] = content when 'Status:' - props[:status] = dt.next_element.content.downcase.tr(' ', '_').to_sym + props[:status] = content.downcase.tr(' ', '_').to_sym when 'Specialised in:' - break if dt.next_element.content == 'N/A' - props[:specializations] = ParserHelper.parse_genre dt.next_element.content + props[:specializations] = ParserHelper.parse_genre content when 'Founding date :' - break if dt.next_element.content == 'N/A' - props[:date_founded] = Date.new dt.next_element.content.to_i + begin + dof = Date.parse content + props[:date_founded] = NilDate.new dof.year, dof.month, dof.day + rescue ArgumentError => e + props[:date_founded] = NilDate.parse content + end when 'Sub-labels:' # TODO when 'Online shopping:' - if dt.next_element.content == 'Yes' + if content == 'Yes' props[:online_shopping] = true - elsif dt.next_element.content == 'No' + elsif content == 'No' props[:online_shopping] = false end else raise "Unknown token: #{dt.content}" end