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