IO - Zirak/SO-ChatBot GitHub Wiki
The IO object is two things at once: A pub-sub system, and a container for two queues: in
and out
(both functionally the same.)
#IO
##register ( name, fun, [thisArg [, arg0, arg1, ...]] )
Register an event handler (fun
) for the name
event. When fired, it will be called with thisArg
as the this
value, and any arguments passed after thisArg
will also be passed into the handler.
If a handler returns false
, then IO.preventDefault
is set to true
.
##unregister ( name, fun )
Remove fun
from the event handler queue for the event name
.
##fire( name [, arg0, arg1, ...] )
Fire the event name
. Optionally pass any other arguments to the event handler(s).
##jsonp ( opts ) Launch a jsonp request. There are currently differences between the client-side version of the bot and the server side, so until the unification this should be left partially undocumented. The source is plain and simple, so sniff around.
##loadScript ( url )
(Client-Side Only) Load a js script with a url of url
. Basically just sticks a script
tag on the head
.
##events An object containing the events and their handlers. Used internally, should be used externally.
##preventDefault A boolean value indicating whether an event handler returned false.
#IO.in, IO.out Two objects, wrapping around a buffer, used for general IO. They are built the same way, function the same, but their buffers are not shared.
##receive ( obj )
Appends obj
to the buffer.
Before the appending occurs, a receiveinput
or receiveoutput
event is fired with obj
passed as an argument. If IO.preventDefault
was switched on after the event call, the appending will not occur.
##tick ()
Fires an input
or output
event, passing the first item in the buffer as an argument. The first item in the buffer will be removed.
##flush ()
Unloads the entire buffer, doing the same thing as tick
for each item.
Before the unloading occurs, a beforeoutput
or beforeinput
event is fired. After it is finished, afteroutput
and beforeoutput
are fired.