Module: Mongoid::Cacheable::ClassMethods
- Defined in:
- lib/mongoid_cacheable.rb
Instance Method Summary collapse
Instance Method Details
#cache(name, *options) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/mongoid_cacheable.rb', line 10 def cache( name, * ) field_name = "_#{name}" uncached_name = "uncached_#{name}" cached_name = "cached_#{name}" field field_name, * alias_method uncached_name, name alias_method cached_name, field_name define_method(name) do unless attributes[field_name] # cache quitely with atomic set set field_name, send(uncached_name) end attributes[field_name] end end |