diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2019-04-26 18:57:03 +0200 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2019-04-26 18:57:03 +0200 |
commit | a28037330ff1507fe014b85a44b96034c24ba48d (patch) | |
tree | e1bde857418218e4b2e298d3aa20143c70a3dc20 | |
parent | d60a8074ce9b70543a5a8b79cfae87a9ed97b316 (diff) | |
download | psych-a28037330ff1507fe014b85a44b96034c24ba48d.tar.gz |
Remove string_cache in ScalarScanner
-rw-r--r-- | lib/psych/scalar_scanner.rb | 11 |
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 |