class Overlook::Csgo::Demo::Parser
Constants
- Exception
- InvalidDemo
Attributes
descriptors[RW]
parser_config[R]
reader[R]
Public Class Methods
new(io, parser_config)
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 16 def initialize(io, parser_config) @parser_config = parser_config @reader = ByteReader.new(io) @header = nil @descriptors = {} end
Public Instance Methods
emit(event, data = {})
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 29 def emit(event, data = {}) broadcast(event.to_sym, data) end
parse()
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 23 def parse header packets done end
Private Instance Methods
done()
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 40 def done emit(:done) true end
header()
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 35 def header emit(:header, Header.from_io(reader).to_hash) end
packets()
click to toggle source
# File lib/overlook/csgo/demo/parser.rb, line 45 def packets packet_handler = PacketHandler.new(self, @parser_config) loop do command = Command.from_io(reader) next if command.sync? break if command.stop? raise "Unknown Command: #{command.type}" if command.unknown? if command.packet? packet = PacketFactory.from_io(reader) packet_handler.handle(packet) elsif command.skipable? reader.read(reader.signed_int32) else raise "Unknown Command #{command.type}" end end end