class StudioGame::Philosopher
Attributes
health[RW]
name[RW]
Public Class Methods
from_csv(string)
click to toggle source
# File lib/studio_game/Philosopher.rb, line 17 def self.from_csv(string) name, health = string.split(',') Philosopher.new(name, Integer(health)) end
new(name, health=100)
click to toggle source
# File lib/studio_game/Philosopher.rb, line 11 def initialize(name, health=100) @name = name.capitalize @health = health @discovered_epiphanies = Hash.new(0) end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/studio_game/Philosopher.rb, line 50 def <=>(other) other.score <=> score end
discovered_epiphanies(epiphany)
click to toggle source
# File lib/studio_game/Philosopher.rb, line 30 def discovered_epiphanies(epiphany) @discovered_epiphanies[epiphany.name] += epiphany.points puts "#{@name} discovered #{epiphany.name} for #{epiphany.points} points." puts "#{@name}'s discoveries: #{@discovered_epiphanies}" end
each_discovered_epiphany() { |epiphany| ... }
click to toggle source
# File lib/studio_game/Philosopher.rb, line 36 def each_discovered_epiphany @discovered_epiphanies.each do |name, points| yield Epiphany.new(name, points) end end
name=(new_name)
click to toggle source
# File lib/studio_game/Philosopher.rb, line 22 def name=(new_name) @name = new_name.capitalize end
points()
click to toggle source
# File lib/studio_game/Philosopher.rb, line 42 def points @discovered_epiphanies.values.reduce(0, :+) end
score()
click to toggle source
# File lib/studio_game/Philosopher.rb, line 46 def score points + @health end
to_s()
click to toggle source
# File lib/studio_game/Philosopher.rb, line 26 def to_s "\nI'm #{@name} with health = #{@health}, points = #{points}, and score = #{score}." end