Sha256: 1c589bf79ea9a8770c1ab2d352e2c6ce65ada61e88e681cbc8a699513221c4f6
Contents?: true
Size: 806 Bytes
Versions: 1
Compression:
Stored size: 806 Bytes
Contents
class Radiodan class Panic include Logging def initialize(config) @panic = false @timeout = config.delete(:duration).to_i @playlist = config[:playlist] end def call(player) @player = player @player.register_event :panic do panic! end end def panic? @panic == true end def panic! return true if panic? @panic = true original_state = @player.playlist EM.defer \ proc { logger.debug "panic for #{@timeout} seconds" @player.playlist = @playlist sleep(@timeout) }, proc { return_to_state original_state } @panic end def return_to_state(playlist) logger.debug "calming" @panic = false @player.playlist = playlist end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
radiodan-0.0.4 | lib/radiodan/middleware/panic.rb |