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'
method._break = function (self)
return "I broke"
end