1
0

Compare commits

...

5 Commits

Author SHA1 Message Date
137da7bee1 🤖 Bumped version to 0.5.3
Some checks failed
LÖVE/Lua Library / Lua-Testing (push) Failing after 9s
LÖVE/Lua Library / Static-Analysis (push) Failing after 3s
This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
2025-04-17 16:38:22 +02:00
a8315c39d5 🤖 Repository layout updated to latest version
This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
2025-04-17 16:38:00 +02:00
7d7bf5c197 improved documentation v2 2025-04-17 16:37:54 +02:00
cdbb85c692 🤖 Repository layout updated to latest version
This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
2025-04-17 16:36:19 +02:00
a63566cdad Moved version and improved documentation 2025-04-17 16:36:14 +02:00
7 changed files with 186 additions and 40 deletions

View File

@ -1,8 +1,29 @@
# WARNING!
# THIS IS AN AUTOGENERATED FILE!
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
name: LÖVE/Lua Library
on: [push]
on:
push:
paths-ignore: ['README.md', '.gitignore', 'LICENSE', 'CONVENTIONS.md']
jobs:
Test:
uses: jmaa/workflows/.gitea/workflows/lua-testing.yaml@v6.21
Lua-Testing:
runs-on: ubuntu-latest
steps:
- name: Install Lua
run: |
apt-get update
apt-get install -y luajit
- name: Check out repository code
uses: actions/checkout@v3
- name: Run testing library
run: luajit test/init.lua
Static-Analysis:
uses: jmaa/workflows/.gitea/workflows/lua-static-analysis.yaml@v6.21
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Luacheck linter
uses: https://github.com/lunarmodules/luacheck@v1.1.1

21
.gitignore vendored
View File

@ -1,2 +1,19 @@
# Ignore editor files
.*.swp
# WARNING!
# THIS IS AN AUTOGENERATED FILE!
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
# Löve: Exclude build items
/bin/
/lib/
.love-cache/
# Compiled Lua sources
luac.out
# Misc (Image, MacOS, Backups) files
*.psd
*~
.DS_Store
# Tools
*.tiled-session

View File

@ -1,3 +1,7 @@
-- WARNING!
-- THIS IS AN AUTOGENERATED FILE!
-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
std = "love+max"
cache = true
include_files = {"**.lua", "*.luacheckrc"}

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-2025 Jon Michael Aanes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,46 +1,85 @@
<!-- WARNING! -->
<!-- THIS IS AN AUTOGENERATED FILE! -->
<!-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN! -->
# 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.
Supercharged assert replacement.
## Example
Lua Library that replaces the default [assert](https://www.lua.org/manual/5.4/manual.html#pdf-assert) function with one that can
emit improved error messages. The improved assert function parses the
assert condition, inspects the state of the program and emits an improved
error message.
```lua
function f (a)
assert(type(a) == 'string')
end
## Example
f(42)
```lua
function f (a)
```
assert(type(a) == 'string')
```
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)`,
end
## Motivation
f(42)
```
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.
Without [assert-gooder](index.html#), the above code would fail with the error message
`assertion failed!`. With [assert-gooder](index.html#), it will fail with this error message:
`assertion failed! bad argument #1 'a' to 'f' (string expected, but got number: 42)`,
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.
## Motivation
## Setup
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.
Download, and use `assert = require "assert-gooder"` to overwrite Lua's default
assert with `assert-gooder`.
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](index.html#).
- Author: Jon Michael Aanes (jonjmaa@gmail.com)
## Dependencies
This project requires [PUC Lua 5.1](https://www.tecgraf.puc-rio.br/lua/mirror/versions.html#5.1) or [LuaJIT](https://luajit.org/luajit.html). Newer versions of PUC Lua are not supported.
This project does not have any library requirements 😎
## Contributing
Feel free to submit pull requests. Please follow the [Code Conventions](CONVENTIONS.md) when doing so.
## 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.
MIT License
Copyright (c) 2017-2025 Jon Michael Aanes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

View File

@ -1,3 +1,47 @@
--- # Assert Gooder
--
-- Supercharged assert replacement.
--
-- Lua Library that replaces the default `assert` function with one that can
-- emit improved error messages. The improved assert function parses the
-- assert condition, inspects the state of the program and emits an improved
-- error message.
--
--
-- ## 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`.
--
-- @author Jon Michael Aanes (jonjmaa@gmail.com)
local _VERSION = '0.5.3'
local lexer = assert(require((... and select('1', ...):match('.+%.') or '')..'lua_lang'), '[assert-gooder]: Could not load vital library: lua_lang')
local shunting_yard = assert(require((... and select('1', ...):match('.+%.') or '')..'Parser'), '[assert-gooder]: Could not load vital library: Parser')
@ -764,4 +808,3 @@ return function (condition, format, ...)
-- Throw error message
error(table.concat(l, ''), 2)
end

View File

@ -1,5 +1,6 @@
local _VERSION = '0.5.2'
-- WARNING!
-- THIS IS AN AUTOGENERATED FILE!
-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
local assert_gooder = assert(require((... and select('1', ...):match('.+')..'.' or '')..'assert-gooder'), '[assert-gooder]: Could not load vital library: assert-gooder')
assert_gooder._VERSION = _VERSION
return assert_gooder
-- This file automatically redirects to "assert-gooder.lua"
return require (((...) ~= 'init' and (...) .. '.' or '') .. 'assert-gooder')