References
Global Functions
role( modname )
Create a Coat role as a standard Lua module.
Functions in the built Role
excludes( role [, ...] )
A role could exclude a list of other roles.
has.name = { options }
Adds a attribute name
in the current role,
like in a class.
method.name = func
Registers a method, like in a class.
requires( method [, ...] )
A role could require a list of method in the class which consumes it.
Examples
Like an Interface
require 'Coat.Role' role 'Breakable' requires '_break'
require 'Coat' class 'Car' with 'Breakable' function method:_break () return "I broke" end