module MultiJson::OptionsCache

Constants

MAX_CACHE_SIZE

Normally MultiJson is used with a few option sets for both dump/load methods. When options are generated dynamically though, every call would cause a cache miss and the cache would grow indefinitely. To prevent this, we just reset the cache every time the number of keys outgrows 1000.

Public Instance Methods

# File lib/multi_json/options_cache.rb, line 10
def fetch(type, key, &block)
  cache = instance_variable_get("@#{type}_cache")
  cache.key?(key) ? cache[key] : write(cache, key, &block)
end
# File lib/multi_json/options_cache.rb, line 5
def reset
  @dump_cache = {}
  @load_cache = {}
end