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
60 61 62 63 64 |
# File 'lib/model_cached.rb', line 60 def expire_mc_keys mc_columns.each do |column| Rails.cache.delete(mc_key(column)) end end |
#mc_columns ⇒ Object
48 |
# File 'lib/model_cached.rb', line 48 def mc_columns; self.class.[:columns]; end |
#mc_key(column, value = nil) ⇒ Object
52 53 54 |
# File 'lib/model_cached.rb', line 52 def mc_key(column, value=nil) self.class.mc_key(column, value || self.send(column), mc_scope_key) end |
#mc_logical_delete ⇒ Object
50 |
# File 'lib/model_cached.rb', line 50 def mc_logical_delete; self.class.[:logical_delete]; end |
#mc_scope ⇒ Object
49 |
# File 'lib/model_cached.rb', line 49 def mc_scope; self.class.[:scope]; end |
#mc_scope_key ⇒ Object
56 57 58 |
# File 'lib/model_cached.rb', line 56 def mc_scope_key "#{mc_scope}:#{self.send(mc_scope)}" if mc_scope end |
#refresh_mc_keys ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/model_cached.rb', line 66 def refresh_mc_keys if mc_logical_delete && send(mc_logical_delete) expire_mc_keys else mc_columns.each do |column| Rails.cache.write(mc_key(column), self) if send("#{column}_changed?") Rails.cache.delete(mc_key(column, send("#{column}_was"))) end end end end |