1 | module.exports = class Tuple
|
2 |
|
3 | @isHash: (data) ->
|
4 | if !data or data instanceof Array or typeof data isnt 'object'
|
5 | return false
|
6 | return true
|
7 |
|
8 | @DEFAULT = {expire: 300}
|
9 |
|
10 | constructor: (@data) ->
|
11 | @__defineSetter__ 'expire', (sec) ->
|
12 | @expire_at = Math.floor(Date.now()/1000)+sec
|
13 | @expire = 300
|
14 |
|
15 | match: (tuple) ->
|
16 | return false unless Tuple.isHash(tuple)
|
17 | data = if tuple instanceof Tuple then tuple.data else tuple
|
18 | for k,v of @data
|
19 | if typeof v is 'object'
|
20 | return false if typeof data[k] isnt 'object'
|
21 | return false if JSON.stringify(v) isnt JSON.stringify(data[k])
|
22 | else
|
23 | return false if v isnt data[k]
|
24 | return true
|