Class: PHPSession::Decoder::State::ClassName

Inherits:
Object
  • Object
show all
Defined in:
lib/php_session/decoder.rb

Class Method Summary collapse

Class Method Details

.parse(decoder) ⇒ Object

Raises:



212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'lib/php_session/decoder.rb', line 212

def self.parse(decoder)
  length = decoder.stack.pop;
  length_include_quotes = length + 3

  value_include_quotes = decoder.buffer[0, length_include_quotes]
  klass = value_include_quotes.gsub(/\A"/,'').gsub(/":\Z/,'')

  decoder.buffer = decoder.buffer[length_include_quotes..-1]

  raise Errors::ParseError, "invalid class format" unless decoder.buffer =~ /\A(\d+):(.*)/m
  decoder.buffer = $2
  decoder.start_array($1.to_i, klass)
  decoder.state = ArrayStart
end