mirror of
https://github.com/danbee/scoreboard
synced 2025-03-04 08:59:11 +00:00
49 lines
872 B
Ruby
Executable File
49 lines
872 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require 'dotenv'
|
|
Dotenv.load
|
|
|
|
require 'json'
|
|
|
|
require 'sinatra'
|
|
require 'pusher'
|
|
|
|
require './lib/match'
|
|
require './lib/player'
|
|
|
|
Pusher.url = "http://#{ENV['PUSHER_KEY']}:#{ENV['PUSHER_SECRET']}@api.pusherapp.com/apps/#{ENV['PUSHER_APP']}"
|
|
|
|
class ScoreBoard < Sinatra::Base
|
|
|
|
@@match = Match.new(Player.new, Player.new)
|
|
|
|
get '/' do
|
|
erb :index, locals: { one: @@match.players[:one],
|
|
two: @@match.players[:two] }
|
|
end
|
|
|
|
put '/reset_scores' do
|
|
@@match = Match.new(Player.new, Player.new)
|
|
push_scores
|
|
end
|
|
|
|
put '/player1_scores' do
|
|
@@match.add_point(:one)
|
|
push_scores
|
|
end
|
|
|
|
put '/player2_scores' do
|
|
@@match.add_point(:two)
|
|
push_scores
|
|
end
|
|
|
|
get '/scores' do
|
|
JSON @@match.scores
|
|
end
|
|
|
|
def push_scores
|
|
Pusher['scores'].trigger('update_scores', @@match.scores.to_json)
|
|
end
|
|
|
|
end
|