Module: Caddy
- Defined in:
- lib/caddy.rb,
lib/caddy/cache.rb,
lib/caddy/version.rb,
lib/caddy/task_observer.rb
Overview
Caddy gives you a auto-updating global cache to speed up requests
Defined Under Namespace
Classes: Cache
Constant Summary collapse
- VERSION =
Current version
"1.6.0".freeze
Class Attribute Summary collapse
-
.error_handler ⇒ Proc
Called when any cache refresher throws an exception (or times out).
- .logger ⇒ Object
Instance Attribute Summary collapse
-
#logger ⇒ Logger
Logger used for all non-fatals; defaults to the Rails logger if it exists.
Class Method Summary collapse
-
.[](k) ⇒ Caddy::Cache
Returns the cache object at a key.
-
.restart ⇒ Object
Start and then stop all refreshers.
-
.start ⇒ Object
Starts the Caddy refresh processes for all caches.
-
.stop ⇒ Object
Cleanly shut down all currently running refreshers.
Class Attribute Details
.error_handler ⇒ Proc
Returns called when any cache refresher throws an exception (or times out).
13 14 15 |
# File 'lib/caddy.rb', line 13 def error_handler @error_handler end |
.logger ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/caddy.rb', line 62 def self.logger @logger ||= begin if defined?(Rails.logger) Rails.logger else @logger ||= Logger.new(STDOUT).tap do |logger| logger.formatter = -> (_, datetime, _, msg) { "#{datetime}: #{msg}\n" } end end end end |
Instance Attribute Details
#logger ⇒ Logger
Returns logger used for all non-fatals; defaults to the Rails logger if it exists.
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/caddy.rb', line 62 def self.logger @logger ||= begin if defined?(Rails.logger) Rails.logger else @logger ||= Logger.new(STDOUT).tap do |logger| logger.formatter = -> (_, datetime, _, msg) { "#{datetime}: #{msg}\n" } end end end end |
Class Method Details
.[](k) ⇒ Caddy::Cache
Returns the cache object at a key.
If the cache at k does not exist yet, Caddy will initialize an empty one.
29 30 31 |
# File 'lib/caddy.rb', line 29 def self.[](k) @caches[k] end |
.restart ⇒ Object
Start and then stop all refreshers. Useful for triggering an immediate refresh of all caches.
55 56 57 58 |
# File 'lib/caddy.rb', line 55 def self.restart stop start end |
.start ⇒ Object
Starts the Caddy refresh processes for all caches.
If the refresh process was started pre-fork, Caddy will error out, as this means the refresh process would have been killed by the fork.
Caddy freezes the hash of caches at this point, so no more further caches can be added after start.
40 41 42 43 44 45 |
# File 'lib/caddy.rb', line 40 def self.start raise_if_forked if @needs_fork_check logger.info "Starting Caddy with refreshers: #{@caches.keys.join(', ')}" @caches.values.each(&:start).all? end |
.stop ⇒ Object
Cleanly shut down all currently running refreshers.
48 49 50 51 52 |
# File 'lib/caddy.rb', line 48 def self.stop logger.info "Stopping Caddy refreshers" @caches.values.each(&:stop).all? end |