summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2019-04-26 18:57:03 +0200
committerJean Boussier <jean.boussier@gmail.com>2019-04-26 18:57:03 +0200
commita28037330ff1507fe014b85a44b96034c24ba48d (patch)
treee1bde857418218e4b2e298d3aa20143c70a3dc20
parentd60a8074ce9b70543a5a8b79cfae87a9ed97b316 (diff)
downloadpsych-a28037330ff1507fe014b85a44b96034c24ba48d.tar.gz
Remove string_cache in ScalarScanner
-rw-r--r--lib/psych/scalar_scanner.rb11
1 files changed, 1 insertions, 10 deletions
diff --git a/lib/psych/scalar_scanner.rb b/lib/psych/scalar_scanner.rb
index f89aa68..e92fe27 100644
--- a/lib/psych/scalar_scanner.rb
+++ b/lib/psych/scalar_scanner.rb
@@ -23,7 +23,6 @@ module Psych
# Create a new scanner
def initialize class_loader
- @string_cache = {}
@symbol_cache = {}
@class_loader = class_loader
end
@@ -31,19 +30,14 @@ module Psych
# Tokenize +string+ returning the Ruby object
def tokenize string
return nil if string.empty?
- return string if @string_cache.key?(string)
return @symbol_cache[string] if @symbol_cache.key?(string)
# Check for a String type, being careful not to get caught by hash keys, hex values, and
# special floats (e.g., -.inf).
if string.match?(/^[^\d\.:-]?[A-Za-z_\s!@#\$%\^&\*\(\)\{\}\<\>\|\/\\~;=]+/) || string.match?(/\n/)
- if string.length > 5
- @string_cache[string] = true
- return string
- end
+ return string if string.length > 5
if string.match?(/^[^ytonf~]/i)
- @string_cache[string] = true
string
elsif string == '~' || string.match?(/^null$/i)
nil
@@ -52,7 +46,6 @@ module Psych
elsif string.match?(/^(no|false|off)$/i)
false
else
- @string_cache[string] = true
string
end
elsif string.match?(TIME)
@@ -94,7 +87,6 @@ module Psych
i
elsif string.match?(FLOAT)
if string.match?(/\A[-+]?\.\Z/)
- @string_cache[string] = true
string
else
Float(string.gsub(/[,_]|\.([Ee]|$)/, '\1'))
@@ -103,7 +95,6 @@ module Psych
int = parse_int string.gsub(/[,_]/, '')
return int if int
- @string_cache[string] = true
string
end
end