Skip to content
Jason Mulligan edited this page May 6, 2012 · 28 revisions

abaaso

abaaso is an enterprise class, light weight, RESTful JavaScript framework that provides a set of classes and object prototyping to ease the creation and maintenance of pure JavaScript applications. abaaso is a Level Three framework, on the Richardson Maturity Model. Don't know REST? No problem! It's not going to get in your way.

abaaso extends the prototypes of Array, Element, Function, Number, and String with methods (functions) to make magic possible. Semantic classes & methods (Object Oriented Programming) strive to make anything as easy as saying it! Wait, isn't extending prototypes dangerous? No, it's the nature of the language.

abaaso is event oriented, with a global observer. The methods on(), fire() and un() is how you register, trigger & unregister listeners. You can see what listeners are registered on something with listeners(), which accepts an optional event parameter.

API

$  array  client  cookie  data  element  events  json  label  loading  message  mouse  number  observer  string  timer  validate  xml

Prototypes

Array  Element  Function  Number  String

Applied Systems Thinking

Wait, isn't "Systems Thinking" about nature? The short answer: no. abaaso was created around the paradigm of "Systems Thinking", and that's why its drastically different than most libraries & frameworks. abaaso doesn't try to make animating something on screen easier, it's job is to provide a light weight application framework, which in turn makes API consumption & data display as easy as possible. It's part of the "feedback loop" or "negative loop", relying on the Server for reconcilliation of an action or event.

Representational State Transfer

Hypermedia As The Engine Of Application State (HATEOAS) can be enabled by setting abaaso.state.header to a custom HTTP header, which triggers stateful binding. Listeners for all states must be set before the initial URI is retrieved (on "init" is ideal). URIs are treated as Objects via String representations, so the HTTP verbs are available as methods, including jsonp()!

Application states can be triggered by setting abaaso.state.current.

Automatic "no conflict" mode

abaaso will not conflict with jQuery, or any other libraries or frameworks which make use of "$", by falling back to "a$" for syntactic sugar. The namespace alias is set on abaaso.aliased, enabling it's use within anonymous functions.