{
die: ->(message, due_at, condition) {
error_message = [
"TODO: \"#{message}\"",
(" came due on #{due_at.strftime("%Y-%m-%d")}" if due_at),
(" and" if due_at && condition),
(" has met the conditions to be acted upon" if condition),
". Do it!"
].compact.join("")
if defined?(Rails) && Rails.env.production?
Rails.logger.warn(error_message)
else
raise TodoOrDie::OverdueTodo, error_message, TodoOrDie.__clean_backtrace(caller)
end
},
warn: lambda { |message, due_at, warn_at, condition|
error_message = [
"TODO: \"#{message}\"",
(" is due on #{due_at.strftime("%Y-%m-%d")}" if due_at),
(" and" if warn_at && condition),
(" has met the conditions to be acted upon" if condition),
". Don't forget!"
].compact.join("")
puts error_message
Rails.logger.warn(error_message) if defined?(Rails)
}
}.freeze