Module: ModelCached::InstanceMethods
- Defined in:
- lib/model_cached.rb
Instance Method Summary collapse
- #expire_mc_keys ⇒ Object
- #mc_columns ⇒ Object
- #mc_key(column, value = nil) ⇒ Object
- #mc_logical_delete ⇒ Object
- #mc_scope ⇒ Object
- #mc_scope_key ⇒ Object
- #refresh_mc_keys ⇒ Object
Instance Method Details
#expire_mc_keys ⇒ Object
61 62 63 64 65 |
# File 'lib/model_cached.rb', line 61 def expire_mc_keys mc_columns.each do |column| Rails.cache.delete(mc_key(column)) end end |
#mc_columns ⇒ Object
49 |
# File 'lib/model_cached.rb', line 49 def mc_columns; self.class.[:columns]; end |
#mc_key(column, value = nil) ⇒ Object
53 54 55 |
# File 'lib/model_cached.rb', line 53 def mc_key(column, value=nil) self.class.mc_key(column, value || self.send(column), mc_scope_key) end |
#mc_logical_delete ⇒ Object
51 |
# File 'lib/model_cached.rb', line 51 def mc_logical_delete; self.class.[:logical_delete]; end |
#mc_scope ⇒ Object
50 |
# File 'lib/model_cached.rb', line 50 def mc_scope; self.class.[:scope]; end |
#mc_scope_key ⇒ Object
57 58 59 |
# File 'lib/model_cached.rb', line 57 def mc_scope_key "#{mc_scope}:#{self.send(mc_scope)}" if mc_scope end |
#refresh_mc_keys ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/model_cached.rb', line 67 def refresh_mc_keys if mc_logical_delete and send(mc_logical_delete) expire_mc_keys else mc_columns.each do |column| Rails.cache.write(mc_key(column), self) unless send(column).blank? if send("#{column}_changed?") Rails.cache.delete(mc_key(column, send("#{column}_was"))) end end end end |