class CUI8Tracks::Mix

Public Instance Methods

each_track() { |track| ... } click to toggle source
# File lib/cui8tracks/mix.rb, line 28
def each_track(&block)
  got = api.get("/sets/#{set.play_token}/play", {:mix_id => self.id})
  track = CUI8Tracks::Track.new(got['set']['track'])
  @track = track
  track.session = self.session
  track.mix = self
  yield track
  return if @skipped
  loop {
    got = api.get("/sets/#{set.play_token}/next", {:mix_id => self.id})
    break if got['set']['at_end']
    track = CUI8Tracks::Track.new(got['set']['track'])
    @track = track
    track.session = self.session
    yield track
    return if @skipped
  }
end
id() click to toggle source
# File lib/cui8tracks/mix.rb, line 24
def id
  @data['id']
end
info() click to toggle source
Calls superclass method CUI8Tracks::Thing#info
# File lib/cui8tracks/mix.rb, line 11
def info
  %w{ name description user tag_list_cache restful_url plays_count liked_by_current_user}.each{ |key|
    value = case key
            when 'user'
              data[key]['slug']
            else
              data[key]
            end
    super(key => value)
  }
  notify "Playing mix #{self.name}", self.description
end
skip() click to toggle source
# File lib/cui8tracks/mix.rb, line 47
def skip
  @skipped = true
  @track.stop
end
user() click to toggle source
# File lib/cui8tracks/mix.rb, line 4
def user
  return @user if @user
  @user = CUI8Tracks::User.new(@data['user'])
  @user.session = self.session
  @user
end