class MonkeyMusic::Track
Attributes
metadata[RW]
Public Class Methods
from_user(user)
click to toggle source
# File lib/monkey_music/units/track.rb, line 9 def self.from_user(user) track = Track.new track.metadata = if @tier user.recommend!(@tier) || user.recommendations.sample else user.recommendations.sample end track end
tier(n)
click to toggle source
# File lib/monkey_music/units/track.rb, line 5 def self.tier(n) Class.new Track do @tier = n end end
Public Instance Methods
method_missing(method, *args, &block)
click to toggle source
Delegate to metadata
# File lib/monkey_music/units/track.rb, line 20 def method_missing(method, *args, &block) if @metadata.respond_to?(method) @metadata.send(method, *args, &block) else raise NoMethodError end end
serialize()
click to toggle source
# File lib/monkey_music/units/track.rb, line 28 def serialize @metadata.uri end
to_json(options = {})
click to toggle source
# File lib/monkey_music/units/track.rb, line 32 def to_json(options = {}) { :id => @id, :x => @x, :y => @y, :type => self.class.name.split('::').last, :name => @metadata.name, :tier => @metadata.tier, :value => @metadata.value, }.to_json end