class FronkinBandcampScraper::Release

Attributes

cover[RW]
date[RW]
doc[RW]
fans[RW]
formats[RW]
tags[RW]
title[RW]
tracks[RW]

Public Class Methods

new(doc) click to toggle source
# File lib/fronkin_bandcamp_scraper/release.rb, line 7
def initialize(doc)
  @doc = doc
  @title = doc.css('div#name-section h2.trackTitle').text.strip
  @date = doc.css('div.tralbumData.tralbum-credits meta').attribute('content').value
  @cover = doc.css('div#tralbumArt a.popupImage').attribute('href').value
  @tracks = scrape_tracks
  @tags = doc.css('div.tralbumData.tralbum-tags a.tag').map(&:text)
end

Private Instance Methods

scrape_tracks() click to toggle source
# File lib/fronkin_bandcamp_scraper/release.rb, line 18
def scrape_tracks
  track_titles = doc.css('table#track_table td.title-col span[itemprop="name"]').map(&:text)
  track_durations = doc.css('table#track_table td.title-col span.time').map { |node| node.text.strip }
  track_titles.zip(track_durations).map.with_index { |t, idx| Track.new(idx + 1, t[0], t[1]) }
end