class Game
Attributes
listener[RW]
sets[RW]
Public Class Methods
new(sets, defaults, neverball_scores)
click to toggle source
# File lib/scores.rb, line 176 def initialize(sets, defaults, neverball_scores) @defaults = defaults @neverball_scores = neverball_scores @sets = {} sets.each { |s| @sets[s] = LevelSet.new(s, defaults, neverball_scores) } @listener = Listen.to(@neverball_scores) do |modified, added, removed| [modified,added,removed].each { |f| f.each { |g| puts g+"..." n = File.basename(g).split(".")[0] if @sets.include?(n) puts "\tupdate #{n}" @sets[n].update end } } update print_me end update print_me @listener.start end
Public Instance Methods
print_me()
click to toggle source
# File lib/scores.rb, line 224 def print_me clear puts to_pretty_string end
to_pretty_string()
click to toggle source
# File lib/scores.rb, line 212 def to_pretty_string s = StringIO.new @sets.each { |set| s.puts set[1].to_pretty_string + "\n" } scm = "#{@stats[:completed]}/#{@stats[:maxcompleted]}" spr = "#{Integer((100.0/@stats[:maxcompleted])*@stats[:completed])}" tcm = "#{@stats[:total]}/#{@stats[:maxtotal]}" tpr = "#{Integer((100.0/@stats[:maxtotal])*@stats[:total])}" s.write " ## total >> completed: #{scm} (#{spr}%), total: #{tcm} (#{tpr}%)\n" s.string end
update()
click to toggle source
# File lib/scores.rb, line 201 def update stats = { completed: 0, maxcompleted: 0, total: 0, maxtotal: 0 } @sets.each { |set| st = set[1].stats stats[:completed] += st[:completed] stats[:maxcompleted] += st[:maxcompleted] stats[:total] += st[:total] stats[:maxtotal] += st[:maxtotal] } @stats = stats end