Class: Omega::Scoreboard
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(client, data) ⇒ Scoreboard
constructor
A new instance of Scoreboard.
- #merge(board) ⇒ Object
- #score_for(user) ⇒ Object
- #simple_display ⇒ Object
- #users ⇒ Object
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_display ⇒ Object
62 63 64 |
# File 'lib/omega/scoreboard.rb', line 62 def simple_display users.map(&:simple_display) end |
#users ⇒ Object
70 71 72 |
# File 'lib/omega/scoreboard.rb', line 70 def users @data[:ranking].values.sort end |