High-level, "Model/View" (or "Presentation Model") style object oriented library made to aide you in your quest for Javascript awesomeness by assisting with such things as implementing inheritance patterns, handling data-mutation observation, establishing hierarchies of objects which have intrinsic knowledge of their responsibilies, and the making of sandwiches.
- Specific
module
documentation and examples moved to the wiki. - See the Docco annotated source code located in the docs directory.
- addDelegate(object)
- getDelegate(role)
- removeDelegate(role)
- delegate(role, method)
- construct([el][, data])
- base(methodName[, args...])
####Model
- set(key, value)
- setPath(path, value)
- sets(object)
- get(key)
- getPath(path)
- gets(array)
- unset(key)
- unsetPath(path)
- unsets(array)
- addChild(child, name)
- getChild(argument)
- removeChild(argument)
- bubble()
- removeFromParent()
- send(arguments)
- becomePremier
- init
- resignPremier
- setEl(argument)
- $(selector)
- observe(fn)
- observes(array)
- unobserve(fn)
- unobserves(ary)
- deliverChangeReords
####Change Delegate
- filter
####Data Delegate
- filter
- bindEvents
- unbindEvents
- create([options])
- read([options])
- update([options])
- destroy([options])
- save([options])
- addedToParent(parent)
- render([change])
- template(string, data, scope)
- instantiateChildren()
- setBinding()
- setBindings()
The specRunner.html
file in root
runs each individual module's specs. Load it as a file in your browser of
choice or, if you have Node.js installed you can npm install http-server
then execute http-server
from the project root which will
serve the spec runner at localhost:8080/specRunner.html
. This is useful, for me at least, for x-platform
testing as I can just point virtual machines at the host. Note that individual spec files can be run from here as well, just
adjust the path accordingly. The sudo.Base
module for example could be run at localhost:8080/base/specRunner.html
A simplified version of sudo.js
is available for Node:
npm install sudoclass
It provides sudo.js
style inheritance, key-value coding (the sudo.js Base Object
), delegation, and data-mutation-observation via
the Observable
extension. The sudo.js
build tool is built with this.
The latest concatonated (but unminified) version of sudo.js
is always
located in build/debug
. If you are making changes, adding new modules, or creating a custom build and need the debug/
files to be rebuilt cd
into the build/lib
directory and run:
node build sudo.html [sudo-basic.html] [foo.html] ...
Note that the foo.html
above would represent an HTML configuration file you created for a custom build of sudo.js.
You will need Node.js
installed as well as the sudoclass
module mentioned above along with the jsdom
and walk
modules (both available via npm). The arguments that follow the invocation of
build
are the html files that the build tool uses to load the 'modules'. If you are adding new 'modules'
be sure to add them to sudo.html (and/or other foo.html) config file(s) or they will not be added to the concatonated debug/
file(s).
The debug version, build/debug/sudo.js
, contains the basic 'modules' as well as the others located in the extras
directory that have been
tested and documented. A basic build is also available (sudo-basic
), this serves as an example of how to configure a custom build of
sudo.js
if desired.