Skip to content
A set of middleclass add-ons that make it easier to use in some cases
Lua
Find file
Failed to load latest commit information.
Apply.lua Edited Apply.lua via GitHub
BSD-LICENSE.txt added LICENSE and updated README with useful info
Beholder.lua updated to middleclass 1.3 (removed super) and tagged 0.8
Branchy.lua final Branchy refactoring
Callbacks.lua Callbacks Refactoring
GetterSetter.lua updated comments
Indexable.lua refactorized Indexable
Invoker.lua
README.textile added deprecation warning on README
Stateful.lua added some comments to new internal Stateful methods
init.lua updated to middleclass 1.3 (removed super) and tagged 0.8

README.textile

middleclass-extras

This is a set of additions to middleclass.

Warning:

middleclass-extras was made for middleclass 1.x and it’s not under development any more.

middleclass 2.x has some features that make it incompatible with middleclass-extras.

middleclass-extras is being (slowly) re-done as a series of smaller libs. Right now, the only one completely finished is Stateful:

Other libraries might follow, but it might just take time. Sorry about that.

Module brief description

What follows is a brief description of each of the middleclass-extras modules. Each nodule is commented out with usage examples. You can find more examples on the /spec/ folder.

  • Apply allows invoking a method in all the instances of a class (and its subclasses). It also allows sorting before executing.
  • Beholder is a small signaling/event controller mixin. Your classes can ‘observe’ and ‘stop observing’ events. Note that Invoker must be required before Beholder, or the later will not work.
  • Branchy defines some useful methods for classes that behave like trees (addChild, getAncestors, etc)
  • Callbacks is a powerful mixin that allows you to add ‘hooks’ to any existing method. For example, you can specify on runtime that you want to call a method after initializing one object.
  • GetterSetter just adds a couple convenience getXXX, setXXX methods to your class.
  • Indexable allows classes to have a ‘fallback’ method, similar to lua’s __index metamethod. Since __index is reserved, the method used for lookup will be index, whithout underscores.
  • Invoker is a very small mixin that can be used to ‘send’ methods to instances. It’s main advantage is that it accepts both method names and lua functions on its parameters.
  • Stateful defines stateful objects. Classes receive a new method called addState, and instances receive a new method called gotoState. The behaviour of each of the instance methods can be redefined per-state.

Downloading

The recommended way is using git.

In order to use middleclass-extras, you also need middleclass. You can download them both by doing:

cd your/project/path
git clone git://github.com/kikito/middleclass.git
git clone git://github.com/kikito/middleclass-extras.git

Alternatively, you can manually download them:

Usage

middleclass-extras is prepared to be required right after middleclass:

  require('middleclass.init')
  require('middleclass-extras.init')

Notes:

  • You can remove the .init part from middleclass if you are using middleclass as a file (middleclass.lua) instead of as a dir (middleclass/)
  • You can remove the .init part on both requires if your package.path setting already includes ?/init.lua

Specs

You may find the specs for this library in middleclass-specs

Something went wrong with that request. Please try again.