Git Product home page Git Product logo

30log's Introduction

30log logo

Join the chat at https://gitter.im/Yonaba/30log Build Status Lua License Coverage Status

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.

Download

Archive

Current release is 1.3.0. See other releases.

Bash

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.

30log-singleton.lua

The file 30log-singleton.lua is a singleton pattern implementation for use with 30log.

Contributors

License

This work is MIT-Licensed.

30log's People

Contributors

yonaba avatar dynodzzo avatar frqnck avatar rm-code avatar gitter-badger avatar tst2005 avatar originalfoo avatar

Watchers

James Cloos avatar James Folk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.