Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
42 lines (31 sloc) 998 Bytes

Build Status

dirtyable.js

dirtyable.js helps you keep track of changes to properties on objects.

It aims to be a javascript equivalent to ActiveModel::Dirty

Get it.

npm install dirtyable

Track your objects.

dirtyable.extend(object, ['foo', 'bar'])

How to use it

var dirtyable = require('dirtyable');

var obj = {
    foo: 'fizzle',
    bar: 42,
    baz: 'black sheep'
};
dirtyable.extend(obj, ['foo', 'bar']);

obj.foo // => 'fizzle'
obj.foo_isChanged // => false
obj.foo = 'fo shizzle'
obj.foo_isChanged // => true

What it does

On the object, it defines the following getters

  • .isChanged
  • .changes
  • .changed

And for each property it extends, it overrides the property with a getter/setter, then adds the following

  • .<property>_isChanged
  • .<property>_change
  • .<property>_was
Something went wrong with that request. Please try again.