Class: AbAdmin::Concerns::Reloadable::Reloader
- Defined in:
- lib/ab_admin/concerns/reloadable.rb
Instance Method Summary collapse
- #check ⇒ Object
- #expire ⇒ Object
- #fetch_stamp ⇒ Object
-
#initialize(key = nil, logger = nil, &block) ⇒ Reloader
constructor
A new instance of Reloader.
- #log(msg) ⇒ Object
Constructor Details
#initialize(key = nil, logger = nil, &block) ⇒ Reloader
Returns a new instance of Reloader.
24 25 26 27 28 29 30 |
# File 'lib/ab_admin/concerns/reloadable.rb', line 24 def initialize(key=nil, logger=nil, &block) @key = key || "#{model_name.singular}_check_reload_key" @block = block @logger = logger || Rails.logger @stamp = fetch_stamp log "init #@key with value #@stamp" end |
Instance Method Details
#check ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/ab_admin/concerns/reloadable.rb', line 36 def check stamp = fetch_stamp if @stamp != stamp @stamp = stamp @block.call() log "#@key reloaded to #@stamp" end end |
#expire ⇒ Object
45 46 47 48 |
# File 'lib/ab_admin/concerns/reloadable.rb', line 45 def expire log "#@key expire" Rails.cache.delete(@key) end |
#fetch_stamp ⇒ Object
32 33 34 |
# File 'lib/ab_admin/concerns/reloadable.rb', line 32 def fetch_stamp Rails.cache.fetch(@key) { Time.now.to_i } end |
#log(msg) ⇒ Object
50 51 52 |
# File 'lib/ab_admin/concerns/reloadable.rb', line 50 def log(msg) @logger.info "[RELOADER] (#{Process.pid}) #{msg}" end |