Sha256: 7fd4d2f802967cb53c191188c1d51683696407280a22a24e8bfe959d7e2087ed

Contents?: true

Size: 829 Bytes

Versions: 5

Compression:

Stored size: 829 Bytes

Contents

module Cachetastic
  module Helpers
    module ActiveRecord
      
      def cache_class
        n = self.class.name
        n = self.name if n == "Class"
        # puts "n: #{n}"
        c_name = "Cachetastic::Caches::ActiveRecord::#{n}Cache"
        unless Cachetastic::Caches::ActiveRecord.const_defined?("#{n}Cache")
          # puts "we need to create a cache for: #{c_name}"
          eval %{
            class #{c_name} < Cachetastic::Caches::Base
            end
          }
        end
        c_name.constantize
      end
      
      def cache(key, expiry = 0)
        cache_class.get(key) do
          if block_given?
            res = yield
            cache_class.set(key, res, expiry)
          end
        end
      end
      
      def expire_all
        cache_class.expire_all
      end
      
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cachetastic-1.0.6 lib/helpers/cachetastic_helpers_active_record.rb
cachetastic-1.0.5 lib/helpers/cachetastic_helpers_active_record.rb
cachetastic-1.0.7 lib/helpers/cachetastic_helpers_active_record.rb
cachetastic-1.0.8 lib/helpers/cachetastic_helpers_active_record.rb
cachetastic-1.1.3 lib/helpers/cachetastic_helpers_active_record.rb