Class: Omega::Scoreboard

Inherits:
Base
  • Object
show all
Defined in:
lib/omega/scoreboard.rb

Instance Attribute Summary

Attributes inherited from Base

#data

Instance Method Summary collapse

Constructor Details

#initialize(client, data) ⇒ Scoreboard

Returns a new instance of Scoreboard.



44
45
46
47
48
49
50
51
# File 'lib/omega/scoreboard.rb', line 44

def initialize(client, data)
  @client = client
  @data = data.dup
  @data[:ranking] = {}
  data[:ranking].each do |entry|
    @data[:ranking][entry[:username]] = ScoreboardEntry.new(client, entry)
  end
end

Instance Method Details

#merge(board) ⇒ Object



53
54
55
56
57
58
59
60
# File 'lib/omega/scoreboard.rb', line 53

def merge(board)
  result = clone
  board.data[:ranking].each do |user, score|
    result.data[:ranking][user] =
      result.data[:ranking][user].nil? ? score : result.data[:ranking][user].merge(score)
  end
  result
end

#score_for(user) ⇒ Object



66
67
68
# File 'lib/omega/scoreboard.rb', line 66

def score_for(user)
  @data[:ranking][user]
end

#simple_displayObject



62
63
64
# File 'lib/omega/scoreboard.rb', line 62

def simple_display
  users.map(&:simple_display)
end

#usersObject



70
71
72
# File 'lib/omega/scoreboard.rb', line 70

def users
  @data[:ranking].values.sort
end