Sha256: d5fcf507893ad9c569170011fd38654138714128c5bbbe122321974168c5de31

Contents?: true

Size: 863 Bytes

Versions: 11

Compression:

Stored size: 863 Bytes

Contents

module MusicBrainz
  class Track
    attr_accessor :position, :recording_id, :title, :length
  
    def self.find mbid
      xml = Nokogiri::XML(MusicBrainz.load('http://musicbrainz.org/ws/2/recording/' + mbid + '?limit=100'))
      self.parse_xml(xml) unless xml.nil?
    end
  
    def self.parse_xml xml
      @track = MusicBrainz::Track.new
      @track.position = xml.css('position').text.to_i unless xml.css('position').empty?
      @track.recording_id = xml.css('recording').attr('id').value unless xml.css('recording').empty?
      @track.title = xml.css('recording > title').text unless xml.css('recording > title').empty?
      @track.length = xml.css('length').first.text.to_i unless xml.css('length').empty?
      @track.length = xml.css('recording > length').first.text.to_i unless xml.css('recording > length').empty?
      @track
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
musicbrainz-0.4.10 lib/models/music_brainz/track.rb
musicbrainz-0.4.9 lib/models/music_brainz/track.rb
musicbrainz-0.4.8 lib/models/music_brainz/track.rb
musicbrainz-0.4.7 lib/models/music_brainz/track.rb
musicbrainz-0.4.6 lib/models/music_brainz/track.rb
musicbrainz-0.4.5 lib/models/music_brainz/track.rb
musicbrainz-0.4.4 lib/models/music_brainz/track.rb
musicbrainz-0.4.3 lib/models/music_brainz/track.rb
musicbrainz-0.4.2 lib/models/music_brainz/track.rb
musicbrainz-0.4.1 lib/models/music_brainz/track.rb
musicbrainz-0.4.0 lib/models/music_brainz/track.rb