lib/method_cache.rb in method_cache-0.6.4 vs lib/method_cache.rb in method_cache-1.0.0

- old
+ new

@@ -1,8 +1,7 @@ -require 'memcache' - $:.unshift(File.dirname(__FILE__)) +require 'method_cache/local_cache' require 'method_cache/proxy' module MethodCache def cache_method(method_name, opts = {}) method_name = method_name.to_sym @@ -10,11 +9,11 @@ if self.class == Class return if instance_methods.include?(proxy.method_name_without_caching) if cached_instance_methods.empty? - include(InvalidationMethods) + include(HelperMethods) extend(MethodAdded) end cached_instance_methods[method_name] = nil if method_defined?(method_name) or private_method_defined?(method_name) @@ -41,11 +40,11 @@ proxy = opts.kind_of?(Proxy) ? opts : Proxy.new(method_name, opts) return if methods.include?(proxy.method_name_without_caching) if cached_class_methods.empty? - extend(InvalidationMethods) + extend(HelperMethods) extend(SingletonMethodAdded) end method_name = method_name.to_sym cached_class_methods[method_name] = nil @@ -70,11 +69,11 @@ rescue NameError false end def self.default_cache - @default_cache ||= {} + @default_cache ||= LocalCache.new end def cached_instance_methods(method_name = nil) if method_name method_name = method_name.to_sym @@ -109,31 +108,39 @@ else @cached_module_methods ||= {} end end - def self.disable(&block) + def self.disable(value = true, &block) @disabled, old = true, @disabled yield ensure @disabled = old end def self.disabled? @disabled end - module InvalidationMethods + module HelperMethods def invalidate_cached_method(method_name, *args, &block) cached_method(method_name, args).invalidate(&block) end def method_value_cached?(method_name, *args) cached_method(method_name, args).cached? end def update_cached_method(method_name, *args, &block) cached_method(method_name, args).update(&block) + end + + def method_cached_at(method_name, *args) + cached_method(method_name, args).cached_at + end + + def method_expires_at(method_name, *args) + cached_method(method_name, args).expires_at end def without_method_cache(&block) MethodCache.disable(&block) end