Method: SteamCodec::KeyValues::Parser.proccess

Defined in:
lib/steam_codec/key_values.rb

.proccess(data, last = true) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/steam_codec/key_values.rb', line 11

def self.proccess(data, last = true)
    token = /"[^"]*"/
    data = data.gsub(/(?<=^|[\s{}])(\s*)([^"{}\s\n\r]+)(\s*)(?=[\s{}]|\z)/, '\1"\2"\3')
    if last
        data.gsub!(/(#{token}:\s*#{token}|})(?=\s*")/, '\1,')
        data.gsub!(/(#{token})(?=\s*{|[ \t\f]+")/, '\1:')
    else
        data.gsub!(/(#{token}:\s*#{token}|})(?=\s*"|\s*\z)/, '\1,')
        data.gsub!(/(#{token})(?=\s*{|[ \t\f]+"|\s*\z)/, '\1:')
    end
    data
end