module Crufty::Methods

Public Instance Methods

crufty(warn_after = nil, error_after = nil, best_by: nil, expires: nil) { || ... } click to toggle source
# File lib/crufty.rb, line 44
def crufty(warn_after = nil, error_after = nil, best_by: nil, expires: nil)
  raise ArgumentError if (warn_after && best_by) || (error_after && expires)

  best_by = warn_after || best_by
  expires = error_after || expires

  ctx = ::Crufty::Context.new(best_by, expires, caller)

  if ctx.state == :expired
    Crufty.expired_handler.call(ctx)
  elsif ctx.state == :stale
    Crufty.stale_handler.call(ctx)
    yield
  else
    yield
  end
end