You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
30log, in extenso 30 Lines Of Goodness is a minified framework for object-orientation in Lua.
It provides named and unnamed classes, single inheritance, metamethods and a basic support for mixins. In 30 lines.
Well, somehow.
This will clone the repository, as-is, and deliver the cutting edge release. Might be unstable.
git clone git://github.com/Yonaba/30log.git
LuaRocks
This will download and install the latest stable release from Luarocks servers.
luarocks install 30log
Wiki
A full documentation is available on the wiki. Find the project page at yonaba.github.io/30log.
Class-Commons support
Class-Commons is an interface which provides a common API for a wide range of Object Orientation libraries in Lua. There is a small plugin, originally written by TsT
which provides compatibility between 30log and Class-commons.
See the module 30log-commons.lua.
Specs
You can run the included specs with Telescope using the following command from Lua from the root foolder:
lua tsc -f specs/*
About the source
30log-clean.lua
30log was initially designed for minimalistic purposes. But then commit after commit, I came up with a source code that was obviously surpassing 30 lines. As I wanted to stick to the "30-lines" rule that defines the name of this library, I had to use an ugly syntax which not much elegant, yet 100 % functional.
For those who might be interested though, the file 30log-clean.lua contains the full source code, properly formatted and well indented for your perusal.
30log-global.lua
The file 30log-global.lua features the exact same source as the original 30log.lua,
excepts that it sets a global named class. This is convenient for Lua-based frameworks such as Codea.