Module: Crufty::Methods

Defined in:
lib/crufty.rb

Instance Method Summary collapse

Instance Method Details

#crufty(warn_after = nil, error_after = nil, best_by: nil, expires: nil) ⇒ Object

Raises:

  • (ArgumentError)


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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