Skip to content

kikito/middleclass-extras

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

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

About

A set of middleclass add-ons that make it easier to use in some cases

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages