Observable icon indicating copy to clipboard operation
Observable copied to clipboard

Observable object

Open zdenko opened this issue 7 years ago • 1 comments

While working on a project of mine I added a few methods for the observable object, which I find useful.

Proxy object properties:

obj = Observable 
  a: 1

assert.equal obj.a, obj().a

obj.a = 2
assert.equal obj.a, obj().a

Observable properties:

obj = Observable 
  a: Observable 1

assert.equal obj.a, obj().a()

obj.a 2
assert.equal obj.a, 2
assert.equal obj().a(), 2

obj.a = 3
assert.equal obj.a, 3
assert.equal obj().a(), 3

Extend method:

obj = Observable 
  a: 1

obj.extend b: 2   # alias: obj.assign b: 2
assert.equal obj.b, 2
assert.equal obj.b, obj().b

Remove method:

obj = Observable 
  a: 1
  b: 2

obj.remove "b"
assert.equal obj.b, undefined

Proxy object methods:

obj = Observable 
  a: 1
  b: 2

assert.deepEqual obj.keys, ["a", "b"]
assert.deepEqual obj.values, [1, 2]
assert.deepEqual obj.entries, [["a", 1], ["b", 2]]

zdenko avatar Feb 24 '18 22:02 zdenko

Thanks for this contribution! It does seem useful, I'll have to think on it a while and work through the implications.

STRd6 avatar Feb 24 '18 23:02 STRd6