208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
# File 'lib/php_session/decoder.rb', line 208
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(/^"/,'').gsub(/":$/,'')
decoder.buffer = decoder.buffer[length_include_quotes..-1]
raise Errors::ParseError, "invalid class format" unless decoder.buffer =~ /^(\d+):(.*)/
decoder.buffer = $2
decoder.start_array($1.to_i, klass)
decoder.state = ArrayStart
end
|