class GameServer::RequestParser

Public Instance Methods

parse() click to toggle source

Return

<GameServer::Request>

объект команды, которая передана

юзером.

Raises

<GameServer::RequestParser::ParserError>

в случае если синтакси

не верной, это не JSON или это не JSON массив, или первый член json массива не строка

# File lib/request_parser.rb, line 13
def parse
  request_array = JSON.parse(data.gsub("\000", ""))
  parser_error('Not Array') unless request_array.is_a?(Array)
  parser_error('No request given') unless request_array[0].is_a?(String)
  GameServer::Request.new(request_array[0], request_array[1, request_array.size])
rescue JSON::ParserError => e
  parser_error("Bad JSON")
end

Private Instance Methods

parser_error(name) click to toggle source

Description

райзит ошибку прасинга с заданным name

# File lib/request_parser.rb, line 28
def parser_error(name)
  #puts "PARSER ERROR #{name}"
  raise ParserError.new(name, data)
end