X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcache%2Fmemory_store.rb;fp=vendor%2Frails%2Factivesupport%2Flib%2Factive_support%2Fcache%2Fmemory_store.rb;h=1b30d49155e4601eb6366848ca4c7c50e5fed675;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb b/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb new file mode 100644 index 0000000..1b30d49 --- /dev/null +++ b/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb @@ -0,0 +1,52 @@ +module ActiveSupport + module Cache + # A cache store implementation which stores everything into memory in the + # same process. If you're running multiple Ruby on Rails server processes + # (which is the case if you're using mongrel_cluster or Phusion Passenger), + # then this means that your Rails server process instances won't be able + # to share cache data with each other. If your application never performs + # manual cache item expiry (e.g. when you're using generational cache keys), + # then using MemoryStore is ok. Otherwise, consider carefully whether you + # should be using this cache store. + # + # MemoryStore is not only able to store strings, but also arbitrary Ruby + # objects. + # + # MemoryStore is not thread-safe. Use SynchronizedMemoryStore instead + # if you need thread-safety. + class MemoryStore < Store + def initialize + @data = {} + end + + def read(name, options = nil) + super + @data[name] + end + + def write(name, value, options = nil) + super + @data[name] = value.freeze + end + + def delete(name, options = nil) + super + @data.delete(name) + end + + def delete_matched(matcher, options = nil) + super + @data.delete_if { |k,v| k =~ matcher } + end + + def exist?(name,options = nil) + super + @data.has_key?(name) + end + + def clear + @data.clear + end + end + end +end