Initial Readme
This commit is contained in:
parent
c9842a2b29
commit
c25676854a
48
README.md
Normal file
48
README.md
Normal file
|
@ -0,0 +1,48 @@
|
|||
|
||||
# Assert Gooder #
|
||||
|
||||
_Lua_ library implementing an alternative version of Lua's `assert` function,
|
||||
giving much better error messages, when asserts fails. It does this by analysing
|
||||
the body of the assert, and figuring out what the failing assert call is
|
||||
attempting to test against.
|
||||
|
||||
## Example
|
||||
|
||||
```lua
|
||||
function f (a)
|
||||
assert(type(a) == 'string')
|
||||
end
|
||||
|
||||
f(42)
|
||||
```
|
||||
|
||||
Without `assert-gooder`, the above code would fail with the error message
|
||||
`assertion failed!`. With `assert-gooder`, it will fail with this error message:
|
||||
`assertion failed! bad argument #1 'a' to 'f' (string expected, but got number: 42)`,
|
||||
|
||||
## Motivation
|
||||
|
||||
Assertions are useful to ensure internal consistency, when you're writing code
|
||||
in a hurry, but in Lua (and most other languages), these assert constructs never
|
||||
produce useful error messages, but rather unhelpful `assert failed!` errors and
|
||||
a stack trace.
|
||||
|
||||
By making it a runtime library, instead of a "compile-time" rewrite, we gain
|
||||
flexibility. It's much easier to import a library, than restructuring then
|
||||
compile pipeline. It also means that we have access to runtime values, allowing
|
||||
even more helpful messages.
|
||||
|
||||
## Setup
|
||||
|
||||
Download, and use `assert = require "assert-gooder"` to overwrite Lua's default
|
||||
assert with `assert-gooder`.
|
||||
|
||||
## License
|
||||
|
||||
```
|
||||
"THE BEER-WARE LICENSE" (Revision 42):
|
||||
<jonjmaa@gmail.com> wrote this library. As long as you retain this notice you
|
||||
can do whatever you want with this stuff. If we meet some day, and you think
|
||||
this stuff is worth it, you can buy me a beer in return.
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user