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