class CUI8Tracks::Set

Attributes

page[RW]
per_page[RW]
q[RW]
sort[RW]
tag[RW]
total_entries[R]
user[RW]

Public Class Methods

new() click to toggle source
# File lib/cui8tracks/set.rb, line 4
def initialize
  # default config
  @per_page = 1
  @page = 1
  @sort = 'hot'
end

Public Instance Methods

data() click to toggle source

to access session.set.play_token

# File lib/cui8tracks/set.rb, line 16
def data
  @data ||= api.get('/sets/new')
end
each_mix() { |mix| ... } click to toggle source
# File lib/cui8tracks/set.rb, line 31
def each_mix(&block)
  loop {
    current_mixes = mixes
    return if current_mixes.empty?

    current_mixes.each{ |mix|
      yield mix
    }
    @page += 1
  }
end
info() click to toggle source
Calls superclass method CUI8Tracks::Thing#info
# File lib/cui8tracks/set.rb, line 11
def info
  super(self.query)
end
mixes() click to toggle source
# File lib/cui8tracks/set.rb, line 21
def mixes
  got = api.get(path, query)
  @total_entries = got['total_entries']
  got['mixes'].map{|mix_data|
    mix = CUI8Tracks::Mix.new(mix_data)
    mix.session = self.session
    mix
  }
end
path() click to toggle source
# File lib/cui8tracks/set.rb, line 43
def path
  @user ? "/users/#{@user}/mixes" : "/mixes"
end
query() click to toggle source
# File lib/cui8tracks/set.rb, line 47
def query
  {
    :q => @q,
    :tag => @tag,
    :sort => @sort,
    :page => @page,
    :per_page => @per_page
  }.each_pair.inject({}){|a, pair|
    key, value = *pair
    a.update({key => value}) if value
    a
  }
end