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
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