Skip to content

Commit f08debd

Browse files
committed
Minor refactors
- update Firebase example lib version - depsParser now depends on Observer instead of the other way around - transition classes should not be cached
1 parent 6c4818b commit f08debd

File tree

7 files changed

+26
-25
lines changed

7 files changed

+26
-25
lines changed

examples/firebase/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<title></title>
55
<meta charset="utf-8">
66
<link rel="stylesheet" type="text/css" href="style.css">
7-
<script src='https://cdn.firebase.com/v0/firebase.js'></script>
7+
<script src='https://cdn.firebase.com/js/client/1.0.2/firebase.js'></script>
88
<script src="../../dist/vue.js"></script>
99
</head>
1010
<body>

src/compiler.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ var Emitter = require('./emitter'),
77
TextParser = require('./text-parser'),
88
DepsParser = require('./deps-parser'),
99
ExpParser = require('./exp-parser'),
10-
// cache deps ob
11-
depsOb = DepsParser.observer,
10+
1211
// cache methods
1312
slice = Array.prototype.slice,
1413
log = utils.log,
@@ -183,7 +182,7 @@ CompilerProto.setupObserver = function () {
183182
observer
184183
.on('get', function (key) {
185184
check(key)
186-
depsOb.emit('get', bindings[key])
185+
DepsParser.catcher.emit('get', bindings[key])
187186
})
188187
.on('set', function (key, val) {
189188
observer.emit('change:' + key, val)

src/deps-parser.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var Emitter = require('./emitter'),
22
utils = require('./utils'),
3-
observer = new Emitter()
3+
Observer = require('./observer'),
4+
catcher = new Emitter()
45

56
/**
67
* Auto-extract the dependencies of a computed property
@@ -10,7 +11,7 @@ function catchDeps (binding) {
1011
if (binding.isFn) return
1112
utils.log('\n- ' + binding.key)
1213
var got = utils.hash()
13-
observer.on('get', function (dep) {
14+
catcher.on('get', function (dep) {
1415
var has = got[dep.key]
1516
if (has && has.compiler === dep.compiler) return
1617
got[dep.key] = dep
@@ -19,24 +20,24 @@ function catchDeps (binding) {
1920
dep.subs.push(binding)
2021
})
2122
binding.value.$get()
22-
observer.off('get')
23+
catcher.off('get')
2324
}
2425

2526
module.exports = {
2627

2728
/**
2829
* the observer that catches events triggered by getters
2930
*/
30-
observer: observer,
31+
catcher: catcher,
3132

3233
/**
3334
* parse a list of computed property bindings
3435
*/
3536
parse: function (bindings) {
3637
utils.log('\nparsing dependencies...')
37-
observer.active = true
38+
Observer.shouldGet = true
3839
bindings.forEach(catchDeps)
39-
observer.active = false
40+
Observer.shouldGet = false
4041
utils.log('\ndone.')
4142
}
4243

src/observer.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
var Emitter = require('./emitter'),
44
utils = require('./utils'),
5-
depsOb = require('./deps-parser').observer,
65

76
// cache methods
87
typeOf = utils.typeOf,
@@ -143,7 +142,7 @@ function convert (obj, key) {
143142
get: function () {
144143
var value = values[key]
145144
// only emit get on tip values
146-
if (depsOb.active && typeOf(value) !== OBJECT) {
145+
if (pub.shouldGet && typeOf(value) !== OBJECT) {
147146
observer.emit('get', key)
148147
}
149148
return value
@@ -304,7 +303,12 @@ function unobserve (obj, path, observer) {
304303
observer.proxies[path] = null
305304
}
306305

307-
module.exports = {
306+
var pub = module.exports = {
307+
308+
// whether to emit get events
309+
// only enabled during dependency parsing
310+
shouldGet : false,
311+
308312
observe : observe,
309313
unobserve : unobserve,
310314
ensurePath : ensurePath,

src/transition.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
var endEvent = sniffTransitionEndEvent(),
22
config = require('./config'),
3-
enterClass = config.enterClass,
4-
leaveClass = config.leaveClass,
53
// exit codes for testing
64
codes = {
75
CSS_E : 1,
@@ -80,27 +78,27 @@ function applyTransitionClass (el, stage, changeState) {
8078
}
8179

8280
// set to hidden state before appending
83-
classList.add(enterClass)
81+
classList.add(config.enterClass)
8482
// append
8583
changeState()
8684
// force a layout so transition can be triggered
8785
/* jshint unused: false */
8886
var forceLayout = el.clientHeight
8987
// trigger transition
90-
classList.remove(enterClass)
88+
classList.remove(config.enterClass)
9189
return codes.CSS_E
9290

9391
} else { // leave
9492

9593
// trigger hide transition
96-
classList.add(leaveClass)
94+
classList.add(config.leaveClass)
9795
var onEnd = function (e) {
9896
if (e.target === el) {
9997
el.removeEventListener(endEvent, onEnd)
10098
el.vue_trans_cb = null
10199
// actually remove node here
102100
changeState()
103-
classList.remove(leaveClass)
101+
classList.remove(config.leaveClass)
104102
}
105103
}
106104
// attach transition end listener

test/unit/specs/deps-parser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ describe('UNIT: Dependency Parser', function () {
66

77
// mock the bidnings...
88
var bindings = [],
9-
ob = DepsParser.observer
9+
catcher = DepsParser.catcher
1010
for (var i = 0; i < 10; i++) {
1111
mockBinding(i)
1212
}
@@ -20,7 +20,7 @@ describe('UNIT: Dependency Parser', function () {
2020
value: {
2121
$get: function () {
2222
if (i > 0) {
23-
ob.emit('get', bindings[b.depId])
23+
catcher.emit('get', bindings[b.depId])
2424
}
2525
}
2626
}

test/unit/specs/observer.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
describe('UNIT: Observer', function () {
22

33
var Observer = require('vue/src/observer'),
4-
Emitter = require('emitter'),
5-
DepsOb = require('vue/src/deps-parser').observer
4+
Emitter = require('emitter')
65

76
describe('Observing Object', function () {
87

@@ -38,7 +37,7 @@ describe('UNIT: Observer', function () {
3837
}))
3938

4039
it('should emit get events on tip values', function () {
41-
DepsOb.active = true
40+
Observer.shouldGet = true
4241
getTestFactory({
4342
obj: { a: 1, b: { c: 2 } },
4443
expects: [
@@ -47,7 +46,7 @@ describe('UNIT: Observer', function () {
4746
],
4847
path: 'test'
4948
})()
50-
DepsOb.active = false
49+
Observer.shouldGet = false
5150
})
5251

5352
it('should emit set when first observing', function () {

0 commit comments

Comments
 (0)