A Rails plugin to cache expensive model attributes
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
tasks
test
MIT-LICENSE
README.markdown
Rakefile
cached_attribute.gemspec

README.markdown

CachedAttribute

CachedAttribute is a plugin that allows expensive model attributes to be cached on a per-instance basis. It supports memoization, multiple cache stores, invalidation, and ttl.

It can also be used to cached arbitrary methods based on their

Example

class ComplicatedModel < ActiveRecord::Base
  
  def expensive_operation
    ... something expensive ...
  end
  
  # caches the calls to expensive_operation
  cached_attribute :expensive_operation

  class << self
    def expensive_class_method(param1)
      ... something expensive ...
    end
    cached_attribute :expensive_class_method
  end

end

c = ComplicatedModel.new
c.expensive_operation # => slow
c.expensive_operation # => fast!

c.invalidate_expensive_operation
c.expensive_operation # => slow

ComplicatedModel.expensive_class_method('some string or something') # => slow
ComplicatedModel.expensive_class_method('some other string or something') # => slow
ComplicatedModel.expensive_class_method('some string or something') # => fast

Copyright (c) 2009 Avvo, Inc., released under the MIT license