Module: Redrecord::Model::ClassMethods
- Defined in:
- lib/redrecord.rb
Instance Method Summary collapse
- #invalidate_cache_on(fieldname) ⇒ Object
- #redis_cache(*fields, &bl) ⇒ Object
- #redrecord_cached_fields ⇒ Object
- #redrecord_invalidation_fields ⇒ Object
Instance Method Details
#invalidate_cache_on(fieldname) ⇒ Object
73 74 75 |
# File 'lib/redrecord.rb', line 73 def invalidate_cache_on(fieldname) redrecord_invalidation_fields << fieldname.to_sym end |
#redis_cache(*fields, &bl) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/redrecord.rb', line 56 def redis_cache(*fields, &bl) if block_given? old_methods = instance_methods class_eval(&bl) fields.push(*(instance_methods - old_methods)) end fields = fields.select {|f| instance_method(f).arity < 1 } redrecord_cached_fields.push(*fields) fields.each do |f| aliased_target, punctuation = f.to_s.sub(/([?!=])$/, ''), $1 define_method("#{aliased_target}_with_cache#{punctuation}") do cached_method(f) end alias_method_chain f, :cache end end |
#redrecord_cached_fields ⇒ Object
48 49 50 |
# File 'lib/redrecord.rb', line 48 def redrecord_cached_fields @redrecord_cached_fields ||= [] + (superclass.respond_to?(:redrecord_cached_fields) ? [*superclass.redrecord_cached_fields] : []) end |
#redrecord_invalidation_fields ⇒ Object
52 53 54 |
# File 'lib/redrecord.rb', line 52 def redrecord_invalidation_fields @redrecord_invalidation_fields ||= [] + (superclass.respond_to?(:redrecord_invalidation_fields) ? [*superclass.redrecord_invalidation_fields] : []) end |