Skip to content

Commit 04046ec

Browse files
committed
Improve KeyValues::Parser#proccess speed
1 parent 1be94f7 commit 04046ec

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

lib/steam_codec/key_values.rb

+3-5
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@ module SteamCodec
99
class KeyValues < InsensitiveHash
1010
class Parser
1111
def self.proccess(data, last = true)
12-
token = /"[^"]*"/
12+
token = '"[^"]*"'
1313
data = data.gsub(/(?<=^|[\s{}])(\s*)([^"{}\s\n\r]+)(\s*)(?=[\s{}]|\z)/, '\1"\2"\3')
1414
if last
15-
data.gsub!(/(#{token}:\s*#{token}|})(?=\s*")/, '\1,')
16-
data.gsub!(/(#{token})(?=\s*{|[ \t\f]+")/, '\1:')
15+
data = data.gsub(/(#{token}:\s*#{token}|})(?=\s*")/, '\1,').gsub(/(#{token})(?=\s*{|[ \t\f]+")/, '\1:')
1716
else
18-
data.gsub!(/(#{token}:\s*#{token}|})(?=\s*"|\s*\z)/, '\1,')
19-
data.gsub!(/(#{token})(?=\s*{|[ \t\f]+"|\s*\z)/, '\1:')
17+
data = data.gsub(/(#{token}:\s*#{token}|})(?=\s*"|\s*\z)/, '\1,').gsub(/(#{token})(?=\s*{|[ \t\f]+"|\s*\z)/, '\1:')
2018
end
2119
data
2220
end

0 commit comments

Comments
 (0)