module Cachengue::Namespace
Public Instance Methods
cachengue(options = {})
click to toggle source
# File lib/cachengue/namespace.rb, line 5 def cachengue(options = {}) if block_given? # Proc.new is the block passed as argument. Caching.fetch(self, nil, [], options, &Proc.new) else Proxy.new(self, options) end end
cachengue_clear()
click to toggle source
# File lib/cachengue/namespace.rb, line 40 def cachengue_clear __cachengue_namespaces__.inject({}) do |results, (namespace, strategy)| results.merge!( namespace => Caching.clear(namespace, strategy) ) end end
cachengue_clear_by(options)
click to toggle source
# File lib/cachengue/namespace.rb, line 34 def cachengue_clear_by(options) Caching.clear_by( options.reverse_merge(namespace: self) ) end
cachengue_namespace(namespace, strategy: :all)
click to toggle source
# File lib/cachengue/namespace.rb, line 30 def cachengue_namespace(namespace, strategy: :all) __cachengue_namespaces__[namespace.to_sym] = strategy end
module_cachengue(method_name, options = {}, &block)
click to toggle source
# File lib/cachengue/namespace.rb, line 14 def module_cachengue(method_name, options = {}, &block) singleton_class.instance_eval do define_method(method_name) do |*args| Caching.fetch_one(self, method_name, args, options, &block) end end return unless options[:multi] singleton_class.instance_eval do define_method("#{method_name}_multi") do |*args| Caching.fetch_multi(self, method_name, args, options, &block) end end end
Private Instance Methods
__cachengue_namespaces__()
click to toggle source
# File lib/cachengue/namespace.rb, line 50 def __cachengue_namespaces__ if class_variable_defined?(:@@cachengue_namespaces) class_variable_set( :@@cachengue_namespaces, class_variable_get(:@@cachengue_namespaces) ) else class_variable_set( :@@cachengue_namespaces, to_s.to_sym => :all ) end end