Class: MonkeyMusic::User

Inherits:
Base
  • Object
show all
Defined in:
lib/monkey_music/units/user.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#character, #id, #level, #x, #y

Instance Method Summary collapse

Methods inherited from Base

#assign_id, #at?, #direction_of, #distance_to, #move!, #place!, #pos, #serialize, #to_json, #to_s

Constructor Details

#initializeUser

Returns a new instance of User.



7
8
9
10
# File 'lib/monkey_music/units/user.rb', line 7

def initialize
  @toplists = {}
  @recommendations = @remaining_recommendations = []
end

Instance Attribute Details

#recommendationsObject

Returns the value of attribute recommendations.



5
6
7
# File 'lib/monkey_music/units/user.rb', line 5

def recommendations
  @recommendations
end

#toplistsObject

Returns the value of attribute toplists.



5
6
7
# File 'lib/monkey_music/units/user.rb', line 5

def toplists
  @toplists
end

Instance Method Details

#dumpObject



23
24
25
26
# File 'lib/monkey_music/units/user.rb', line 23

def dump
  YAML::dump :toplists => @toplists,
             :recommendations => @recommendations
end

#load_from_file(file) ⇒ Object



28
29
30
31
32
33
# File 'lib/monkey_music/units/user.rb', line 28

def load_from_file(file)
  data = YAML::load(IO.read file)
  @toplists = data[:toplists]
  @recommendations = data[:recommendations]
  @remaining_recommendations = @recommendations
end

#recommend!(tier) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/monkey_music/units/user.rb', line 12

def recommend!(tier)
  index = @remaining_recommendations.index do |r|
    r.tier == tier
  end
  if index
    @remaining_recommendations.delete_at(index)
  else
    @recommendations.find { |r| r.tier == tier }
  end
end