One last try at getting the link right
I forgot how to markdown
Fix middleclass link, I think
This is a lua port of CustomEventSupport.js by @azendal. It's a simple implementation of the observer pattern.
Step 1. Require it somewhere
CustomEvent = require('custom_event')
CustomEventSupport = require('custom_event_support')
Step 2. Include it in a class
local MyClass = class('MyClass')
MyClass:include(CustomEventSupport)
Step 3a. Bind events
-- Bind them to the class
MyClass:bind('click', function (self, ev)
print("Hey, I caught the event")
end)
-- or bind them to an instance
local my_instance = MyClass:new()
my_instance:bind('click', function (self, ev)
print("Hey, I caught another event: "..tostring(ev.message))
end)
Step 3b. Dispatch events
-- Dispatch them from the class. You can optionally pass data as a
table.
MyClass:dispatch('click')
-- or dispatch them from an instance
my_instance:dispatch('click', {message = "Instance event!"})
That's it. Enjoy :)