X-Git-Url: https://git.r.bdr.sh/rbdr/custom_event_support.lua/blobdiff_plain/b4238901d280e4db010d8426d05459b19e714722..HEAD:/README.md diff --git a/README.md b/README.md index e69de29..2864482 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,53 @@ +# custom_event_support.lua # + +This is a lua port of CustomEventSupport.js by @azendal. It's a +simple implementation of the observer pattern. + +## Dependencies ## + +* [Middleclass](http://github.com/kikito/middleclass) + +## Usage ## + +Step 1. Require it somewhere + +```lua +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 + +```lua +-- 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 + +```lua +-- 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 :)