class Pitchscrape::BestNewMusic
Constants
- BNM_URL
Public Class Methods
albums(page = 1)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 8 def albums(page = 1) parse_doc(page) end
Private Class Methods
doc(page)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 14 def doc(page) Nokogiri::HTML(open("#{BNM_URL}/#{page}"), nil, 'UTF-8').css('ul.bnm-list > li') end
parse_artist(album)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 38 def parse_artist(album) album.at_css('div.info h1').text end
parse_artwork(album)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 30 def parse_artwork(album) Nokogiri::HTML(album.at_css('div.lazy').attr('data-content')).at_css('img').attr('src') end
parse_doc(page)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 18 def parse_doc(page) doc(page).map do |album| Pitchscrape::Album.new( artwork: parse_artwork(album), title: parse_title(album), artist: parse_artist(album), rating: parse_rating(album), review: parse_review(album) ) end end
parse_rating(album)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 42 def parse_rating(album) album.at_css('div.info span.score').text.strip end
parse_review(album)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 46 def parse_review(album) sanitize(album.at_css('div.editorial').inner_html) end
parse_title(album)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 34 def parse_title(album) album.at_css('div.info h2').text end
sanitize(html)
click to toggle source
# File lib/pitchscrape/best_new_music.rb, line 50 def sanitize(html) html.gsub(/<p>|<\/p>|\n/, '').strip end