206:d0bde0e3cc62
Anton Shestakov <av6@dwimlabs.net>, Wed, 01 Jun 2016 21:26:22 +0800
index: expand, but also deduplicate existence checks for previous and contact

next change 232:0fe8137e0f76
previous change 54:bb83c44ae4ac

coffee/rivets.coffee

Permissions: -rw-r--r--

Other formats: Feeds:
rivets.adapters[':'] =
observe: (obj, keypath, callback) ->
obj.on('change:' + keypath, callback)
unobserve: (obj, keypath, callback) ->
obj.off('change:' + keypath, callback)
get: (obj, keypath) ->
obj.get(keypath)
set: (obj, keypath, value) ->
obj.set(keypath, value)
rivets.formatters['first-letter'] = (value) ->
value?.charAt?(0) ? ' '
rivets.formatters['dumb-hash'] = (value) ->
result = 0
if value?.length
for i in [0...value.length]
result += value.charCodeAt(i)
return result
rivets.formatters['fn'] = (value, fn) ->
return fn(value)
rivets.formatters['only'] = (value, allowed...) ->
if value in allowed then value else ''
rivets.formatters['eq'] = (a, b) ->
a is b
rivets.formatters['has'] = (a, b) ->
a? and b in a
rivets.formatters['format-date'] = (value, format) ->
if value? then value.format(format) else ''
rivets.formatters['iso-date'] = (value) ->
if value? then value.toISOString() else ''
rivets.formatters['from-now'] = (value) ->
if value? then value.fromNow() else ''