Class: MonkeyMusic::Generate::ScoreSystem
- Inherits:
-
Object
- Object
- MonkeyMusic::Generate::ScoreSystem
- Defined in:
- lib/monkey_music_generate/score_system.rb
Instance Method Summary collapse
Instance Method Details
#evaluate!(track) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/monkey_music_generate/score_system.rb', line 11 def evaluate!(track) tier = 0 if @user.toplists[:top_tracks].any? {|t| t.name == track.name } tier = -1 elsif @user.toplists[:disliked_artists].any? {|ar| ar.name == track.artist } tier = -2 else if @user.toplists[:top_albums].any? {|al| al.name == track.album } tier += 1 end if @user.toplists[:top_artists].any? {|ar| ar.name == track.artist } tier += 1 end if @top_decade == decade_of(track.year) tier += 1 end end track.set_value(tier, 4**tier.abs * sign(tier)) end |
#evaluate_user_recommendations!(user) ⇒ Object
4 5 6 7 8 9 |
# File 'lib/monkey_music_generate/score_system.rb', line 4 def evaluate_user_recommendations!(user) @user = user @top_decade = calc_top_decade(user) @user.recommendations.each {|track| evaluate!(track) } puts "The user's top decade is: #{@top_decade}." end |