1.1.2 • Published 8 years ago

ooze v1.1.2

Weekly downloads
2
License
BSD
Repository
github
Last release
8 years ago

Ooze

A model event wrapper. The spiritual successor to gedi

Ooze lets you wrap an object in an evented getter/setter API.

Usage

Instantiation

var someModel = {
    // properties.
};

var Ooze = require('ooze'),
    model = new Ooze(someModel);

Instantiating Ooze returns a scope object, that can be used to access the object.

Get

// Simple
model.get('property');

// Deeper into the object
model.get('property.childProp');

Set

// Simple
model.set('property', 'value');

// Deeper into the object
model.set('property.childProp', 'value');

Listen to events

// Simple
model.on('property', function(property){...});

// Multiple paths (Space seperated)
model.on('property anotherProperty someOtherOne.childProp.grandchildProp', function(property, another, grandchild){...});

handlers will be called with 'this' as the event:

model.on('property', function(property){
    var event = this;
});

handlers will be called if any of the bound paths changes.

Model events will ONLY be raised if a change is made via Ooze. Changing values directly will not trigger handlers!

Create a new scope

var propertyModel = model.scopeTo('property');

// Calls to propertyModel will all be scoped to the 'property' path.

propertyModel.set('childProp', 3);

// The above is equivilent to:
model.set('property.childProp', 3);

Create a getter/setter

var getterSetter = model.bind('property');

// Get (no arguments)
getterSetter();

// The above is equivilent to:
model.get('property');

// Set (pass an argument)
getterSetter(3);

// The above is equivilent to:
model.set('property', 3);

Run some code against parts of the model

model.run(['some.path', 'another.path:path2'], function(scope){
    scope.path = 5;
    scope.path2 = 10;
});

Note that you can alias keys to any identifyer using :, otherwise the last key in the path will be used.

1.1.2

8 years ago

1.1.1

9 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.0.24

10 years ago

0.0.23

10 years ago

0.0.22

10 years ago

0.0.21

10 years ago

0.0.20

10 years ago

0.0.19

10 years ago

0.0.18

10 years ago

0.0.17

10 years ago

0.0.16

10 years ago

0.0.15

10 years ago

0.0.14

10 years ago

0.0.13

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago