Sha256: 6407761aca3fb1ba5b4f8346939ccf95b744aec80f60824c6900c2ad8c8e402b

Contents?: true

Size: 843 Bytes

Versions: 4

Compression:

Stored size: 843 Bytes

Contents

# encoding: UTF-8
module MusicBrainz
  module Bindings
    module Artist
      def parse(xml)
        xml = xml.xpath('./artist') unless xml.xpath('./artist').empty?
        {
          id: (xml.attribute('id').value rescue nil),
          type: (xml.attribute('type').value rescue nil),
          name: (xml.xpath('./name').text.gsub(/[`’]/, "'") rescue nil),
          country: (xml.xpath('./country').text rescue nil),
          date_begin: (xml.xpath('./life-span/begin').text rescue nil),
          date_end: (xml.xpath('./life-span/end').text rescue nil),
          urls: (Hash[xml.xpath('./relation-list[@target-type="url"]/relation').map{ |xml|
            [xml.attribute('type').value.downcase.split(" ").join("_").to_sym, xml.xpath('./target').text]
          }] rescue {})
        }
      end

      extend self
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
musicbrainz-0.7.5 lib/musicbrainz/bindings/artist.rb
musicbrainz-0.7.4 lib/musicbrainz/bindings/artist.rb
musicbrainz-0.7.3 lib/musicbrainz/bindings/artist.rb
musicbrainz-0.7.2 lib/musicbrainz/bindings/artist.rb