Slide 22
Slide 22 text
Usecase in REAL WORLD
MAGICAL MACRO
# power_assert.cr/src/power_assert.cr
macro assert(expression, file = __FILE__, line = __LINE__)
%result = {{ expression }}
unless %result
%ast = get_ast({{ expression }})
%breakdowns = %ast.breakdowns
%message = String.build do |io|
io << " " * PowerAssert.config.global_indent
%ast.to_s(io)
io << "\n"
%breakdowns.to_s(io)
end
fail %message, {{ file }}, {{ line }}
end
%result
end