class Mixtape::Source::Base
Public Class Methods
new(number_of_songs)
click to toggle source
# File lib/mixtape/source/base.rb, line 6 def initialize(number_of_songs) @number_of_songs = number_of_songs if pages_ids.length != number_of_songs raise(ArgumentError, 'Number of songs must equal the number of pages') end end
Public Instance Methods
pages_ids()
click to toggle source
# File lib/mixtape/source/base.rb, line 19 def pages_ids (1..@number_of_songs).to_a end
songs()
click to toggle source
# File lib/mixtape/source/base.rb, line 13 def songs sliced_songs = pages_ids.pmap{ |id| songs_for_page_id(id) } random_songs = Mixtape::RandomSongs.new(sliced_songs) random_songs.pick_by(1) end
songs_for_page_id(id)
click to toggle source
# File lib/mixtape/source/base.rb, line 23 def songs_for_page_id(id) raise NotImplementedError end