vuejs 1.0.33 → 1.0.34

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe041e1a6b68a6696d909a9fca031365eb253e3e
4
- data.tar.gz: 6931c0cc73878f29662cbc1c0d4cafe5352740b2
3
+ metadata.gz: d5c6c9edac113ae4bd1656d8a2cd6b20838f3437
4
+ data.tar.gz: 7601868502a4a78527d23db450b374cd4ab88703
5
5
  SHA512:
6
- metadata.gz: 6a561d056defcc05587efcbd7584745ad2e30be5b18faf38ac2b9ccc1ae765457f14f22b6affc8a78c8cd8b7b15a68f890517287dcbfa7376d7b3b84c202ed32
7
- data.tar.gz: 5433cbe1231f2add28c136fa2bb3a3f449250c3004b1b42cc8e47f199c22e53a6eddad0e1029771b90e08a9f4d3a28433b3c56018e3a8be3c2dc29529c2aa01d
6
+ metadata.gz: b81e2e921996d5d43a344c34972b196aeaef9300936c493128f7a918588665321b1483541c3212c5f9ed30c9273bec073afcf80d6a6973a3d2b526d362d13694
7
+ data.tar.gz: 51a470745423d960a40460b1d9c77c0cf1c36a7caa45374829dc95d6b55ea5b19869012efd3544fa70ade66999ceb0b76c10ce007fc7cf59543c46e0ca7fc614
data/README.md CHANGED
@@ -1,12 +1,13 @@
1
- # Vuejs
1
+ # Vuejs Gem
2
2
 
3
3
  > Reactive Components for Modern Web Interfaces
4
4
 
5
5
  gem `vuejs` ships with the 1.x & 2.x latest [Vue.js + vue-router + vue-resource + vue-validator + vuex](http://vuejs.org/) and integrate with Rails' asset pipeline. Vue.js is created by Evan You and the vuejs team.
6
6
 
7
- The current 2.x version is `Vue.js` (v2.1.4) + `vue-router` (v2.1.1) + `vue-validator` (v2.1.3) + `vuex` (v2.0.0).
7
+ The current 2.x version is `Vue.js` (v2.1.6) + `vue-router` (v2.1.1) + `vue-validator` (v2.1.3) + `vuex` (v2.1.1).
8
8
  > Note that Vue 2.x is not compatible with 1.x. vue-router 2.0 only works with Vue 2.x`
9
9
 
10
+ ##### Legacy
10
11
  The current 1.x version is `Vue.js` (v1.0.28) + `vue-router` (v0.7.13) + `vue-resource` (v1.0.3)
11
12
 
12
13
  # Requirement
@@ -66,3 +67,8 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/ytbrya
66
67
  ## License
67
68
 
68
69
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
70
+
71
+
72
+ ## Contact
73
+
74
+ 📮 Bryan Lim ytbryan@gmail.com
data/lib/vuejs.rb CHANGED
@@ -2,9 +2,9 @@ require "vuejs/version"
2
2
  require "thor"
3
3
 
4
4
  module Vuejs
5
- class Engine < Rails::Engine
5
+ class Engine < ::Rails::Engine
6
6
  end
7
-
7
+
8
8
  class Base < Thor
9
9
  check_unknown_options!
10
10
  package_name 'vuejs'
data/lib/vuejs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vuejs
2
- VERSION = "1.0.33"
2
+ VERSION = "1.0.34"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vuex v2.0.0
2
+ * vuex v2.1.1
3
3
  * (c) 2016 Evan You
4
4
  * @license MIT
5
5
  */
@@ -64,27 +64,39 @@ function applyMixin (Vue) {
64
64
  }
65
65
  }
66
66
 
67
- function mapState (states) {
67
+ var mapState = normalizeNamespace(function (namespace, states) {
68
68
  var res = {}
69
69
  normalizeMap(states).forEach(function (ref) {
70
70
  var key = ref.key;
71
71
  var val = ref.val;
72
72
 
73
73
  res[key] = function mappedState () {
74
+ var state = this.$store.state
75
+ var getters = this.$store.getters
76
+ if (namespace) {
77
+ var module = this.$store._modulesNamespaceMap[namespace]
78
+ if (!module) {
79
+ warnNamespace('mapState', namespace)
80
+ return
81
+ }
82
+ state = module.state
83
+ getters = module.context.getters
84
+ }
74
85
  return typeof val === 'function'
75
- ? val.call(this, this.$store.state, this.$store.getters)
76
- : this.$store.state[val]
86
+ ? val.call(this, state, getters)
87
+ : state[val]
77
88
  }
78
89
  })
79
90
  return res
80
- }
91
+ })
81
92
 
82
- function mapMutations (mutations) {
93
+ var mapMutations = normalizeNamespace(function (namespace, mutations) {
83
94
  var res = {}
84
95
  normalizeMap(mutations).forEach(function (ref) {
85
96
  var key = ref.key;
86
97
  var val = ref.val;
87
98
 
99
+ val = namespace + val
88
100
  res[key] = function mappedMutation () {
89
101
  var args = [], len = arguments.length;
90
102
  while ( len-- ) args[ len ] = arguments[ len ];
@@ -93,14 +105,15 @@ function mapMutations (mutations) {
93
105
  }
94
106
  })
95
107
  return res
96
- }
108
+ })
97
109
 
98
- function mapGetters (getters) {
110
+ var mapGetters = normalizeNamespace(function (namespace, getters) {
99
111
  var res = {}
100
112
  normalizeMap(getters).forEach(function (ref) {
101
113
  var key = ref.key;
102
114
  var val = ref.val;
103
115
 
116
+ val = namespace + val
104
117
  res[key] = function mappedGetter () {
105
118
  if (!(val in this.$store.getters)) {
106
119
  console.error(("[vuex] unknown getter: " + val))
@@ -109,14 +122,15 @@ function mapGetters (getters) {
109
122
  }
110
123
  })
111
124
  return res
112
- }
125
+ })
113
126
 
114
- function mapActions (actions) {
127
+ var mapActions = normalizeNamespace(function (namespace, actions) {
115
128
  var res = {}
116
129
  normalizeMap(actions).forEach(function (ref) {
117
130
  var key = ref.key;
118
131
  var val = ref.val;
119
132
 
133
+ val = namespace + val
120
134
  res[key] = function mappedAction () {
121
135
  var args = [], len = arguments.length;
122
136
  while ( len-- ) args[ len ] = arguments[ len ];
@@ -125,7 +139,7 @@ function mapActions (actions) {
125
139
  }
126
140
  })
127
141
  return res
128
- }
142
+ })
129
143
 
130
144
  function normalizeMap (map) {
131
145
  return Array.isArray(map)
@@ -133,6 +147,29 @@ function normalizeMap (map) {
133
147
  : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
134
148
  }
135
149
 
150
+ function normalizeNamespace (fn) {
151
+ return function (namespace, map) {
152
+ if (typeof namespace !== 'string') {
153
+ map = namespace
154
+ namespace = ''
155
+ } else if (namespace.charAt(namespace.length - 1) !== '/') {
156
+ namespace += '/'
157
+ }
158
+ return fn(namespace, map)
159
+ }
160
+ }
161
+
162
+ function warnNamespace (helper, namespace) {
163
+ console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace))
164
+ }
165
+
166
+ /**
167
+ * forEach for object
168
+ */
169
+ function forEachValue (obj, fn) {
170
+ Object.keys(obj).forEach(function (key) { return fn(obj[key], key); })
171
+ }
172
+
136
173
  function isObject (obj) {
137
174
  return obj !== null && typeof obj === 'object'
138
175
  }
@@ -145,6 +182,146 @@ function assert (condition, msg) {
145
182
  if (!condition) { throw new Error(("[vuex] " + msg)) }
146
183
  }
147
184
 
185
+ var Module = function Module (rawModule, runtime) {
186
+ this.runtime = runtime
187
+ this._children = Object.create(null)
188
+ this._rawModule = rawModule
189
+ };
190
+
191
+ var prototypeAccessors$1 = { state: {},namespaced: {} };
192
+
193
+ prototypeAccessors$1.state.get = function () {
194
+ return this._rawModule.state || {}
195
+ };
196
+
197
+ prototypeAccessors$1.namespaced.get = function () {
198
+ return !!this._rawModule.namespaced
199
+ };
200
+
201
+ Module.prototype.addChild = function addChild (key, module) {
202
+ this._children[key] = module
203
+ };
204
+
205
+ Module.prototype.removeChild = function removeChild (key) {
206
+ delete this._children[key]
207
+ };
208
+
209
+ Module.prototype.getChild = function getChild (key) {
210
+ return this._children[key]
211
+ };
212
+
213
+ Module.prototype.update = function update (rawModule) {
214
+ this._rawModule.namespaced = rawModule.namespaced
215
+ if (rawModule.actions) {
216
+ this._rawModule.actions = rawModule.actions
217
+ }
218
+ if (rawModule.mutations) {
219
+ this._rawModule.mutations = rawModule.mutations
220
+ }
221
+ if (rawModule.getters) {
222
+ this._rawModule.getters = rawModule.getters
223
+ }
224
+ };
225
+
226
+ Module.prototype.forEachChild = function forEachChild (fn) {
227
+ forEachValue(this._children, fn)
228
+ };
229
+
230
+ Module.prototype.forEachGetter = function forEachGetter (fn) {
231
+ if (this._rawModule.getters) {
232
+ forEachValue(this._rawModule.getters, fn)
233
+ }
234
+ };
235
+
236
+ Module.prototype.forEachAction = function forEachAction (fn) {
237
+ if (this._rawModule.actions) {
238
+ forEachValue(this._rawModule.actions, fn)
239
+ }
240
+ };
241
+
242
+ Module.prototype.forEachMutation = function forEachMutation (fn) {
243
+ if (this._rawModule.mutations) {
244
+ forEachValue(this._rawModule.mutations, fn)
245
+ }
246
+ };
247
+
248
+ Object.defineProperties( Module.prototype, prototypeAccessors$1 );
249
+
250
+ var ModuleCollection = function ModuleCollection (rawRootModule) {
251
+ var this$1 = this;
252
+
253
+ // register root module (Vuex.Store options)
254
+ this.root = new Module(rawRootModule, false)
255
+
256
+ // register all nested modules
257
+ if (rawRootModule.modules) {
258
+ forEachValue(rawRootModule.modules, function (rawModule, key) {
259
+ this$1.register([key], rawModule, false)
260
+ })
261
+ }
262
+ };
263
+
264
+ ModuleCollection.prototype.get = function get (path) {
265
+ return path.reduce(function (module, key) {
266
+ return module.getChild(key)
267
+ }, this.root)
268
+ };
269
+
270
+ ModuleCollection.prototype.getNamespace = function getNamespace (path) {
271
+ var module = this.root
272
+ return path.reduce(function (namespace, key) {
273
+ module = module.getChild(key)
274
+ return namespace + (module.namespaced ? key + '/' : '')
275
+ }, '')
276
+ };
277
+
278
+ ModuleCollection.prototype.update = function update$1 (rawRootModule) {
279
+ update(this.root, rawRootModule)
280
+ };
281
+
282
+ ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
283
+ var this$1 = this;
284
+ if ( runtime === void 0 ) runtime = true;
285
+
286
+ var parent = this.get(path.slice(0, -1))
287
+ var newModule = new Module(rawModule, runtime)
288
+ parent.addChild(path[path.length - 1], newModule)
289
+
290
+ // register nested modules
291
+ if (rawModule.modules) {
292
+ forEachValue(rawModule.modules, function (rawChildModule, key) {
293
+ this$1.register(path.concat(key), rawChildModule, runtime)
294
+ })
295
+ }
296
+ };
297
+
298
+ ModuleCollection.prototype.unregister = function unregister (path) {
299
+ var parent = this.get(path.slice(0, -1))
300
+ var key = path[path.length - 1]
301
+ if (!parent.getChild(key).runtime) { return }
302
+
303
+ parent.removeChild(key)
304
+ };
305
+
306
+ function update (targetModule, newModule) {
307
+ // update target module
308
+ targetModule.update(newModule)
309
+
310
+ // update nested modules
311
+ if (newModule.modules) {
312
+ for (var key in newModule.modules) {
313
+ if (!targetModule.getChild(key)) {
314
+ console.warn(
315
+ "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
316
+ 'manual reload is needed'
317
+ )
318
+ return
319
+ }
320
+ update(targetModule.getChild(key), newModule.modules[key])
321
+ }
322
+ }
323
+ }
324
+
148
325
  var Vue // bind on install
149
326
 
150
327
  var Store = function Store (options) {
@@ -159,34 +336,34 @@ var Store = function Store (options) {
159
336
  var strict = options.strict; if ( strict === void 0 ) strict = false;
160
337
 
161
338
  // store internal state
162
- this._options = options
163
339
  this._committing = false
164
340
  this._actions = Object.create(null)
165
341
  this._mutations = Object.create(null)
166
342
  this._wrappedGetters = Object.create(null)
167
- this._runtimeModules = Object.create(null)
343
+ this._modules = new ModuleCollection(options)
344
+ this._modulesNamespaceMap = Object.create(null)
168
345
  this._subscribers = []
169
346
  this._watcherVM = new Vue()
170
347
 
171
- // bind commit and dispatch to self
348
+ // bind commit and dispatch to self
172
349
  var store = this
173
350
  var ref = this;
174
351
  var dispatch = ref.dispatch;
175
352
  var commit = ref.commit;
176
- this.dispatch = function boundDispatch (type, payload) {
353
+ this.dispatch = function boundDispatch (type, payload) {
177
354
  return dispatch.call(store, type, payload)
178
- }
179
- this.commit = function boundCommit (type, payload, options) {
180
- return commit.call(store, type, payload, options)
181
355
  }
356
+ this.commit = function boundCommit (type, payload, options) {
357
+ return commit.call(store, type, payload, options)
358
+ }
182
359
 
183
- // strict mode
360
+ // strict mode
184
361
  this.strict = strict
185
362
 
186
363
  // init root module.
187
364
  // this also recursively registers all sub-modules
188
365
  // and collects all module getters inside this._wrappedGetters
189
- installModule(this, state, [], options)
366
+ installModule(this, state, [], this._modules.root)
190
367
 
191
368
  // initialize the store vm, which is responsible for the reactivity
192
369
  // (also registers _wrappedGetters as computed properties)
@@ -199,22 +376,22 @@ var Store = function Store (options) {
199
376
  var prototypeAccessors = { state: {} };
200
377
 
201
378
  prototypeAccessors.state.get = function () {
202
- return this._vm.state
379
+ return this._vm.$data.state
203
380
  };
204
381
 
205
382
  prototypeAccessors.state.set = function (v) {
206
383
  assert(false, "Use store.replaceState() to explicit replace store state.")
207
384
  };
208
385
 
209
- Store.prototype.commit = function commit (type, payload, options) {
386
+ Store.prototype.commit = function commit (_type, _payload, _options) {
210
387
  var this$1 = this;
211
388
 
212
389
  // check object-style commit
213
- if (isObject(type) && type.type) {
214
- options = payload
215
- payload = type
216
- type = type.type
217
- }
390
+ var ref = unifyObjectStyle(_type, _payload, _options);
391
+ var type = ref.type;
392
+ var payload = ref.payload;
393
+ var options = ref.options;
394
+
218
395
  var mutation = { type: type, payload: payload }
219
396
  var entry = this._mutations[type]
220
397
  if (!entry) {
@@ -226,17 +403,22 @@ Store.prototype.commit = function commit (type, payload, options) {
226
403
  handler(payload)
227
404
  })
228
405
  })
229
- if (!options || !options.silent) {
230
- this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); })
406
+ this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); })
407
+
408
+ if (options && options.silent) {
409
+ console.warn(
410
+ "[vuex] mutation type: " + type + ". Silent option has been removed. " +
411
+ 'Use the filter functionality in the vue-devtools'
412
+ )
231
413
  }
232
414
  };
233
415
 
234
- Store.prototype.dispatch = function dispatch (type, payload) {
416
+ Store.prototype.dispatch = function dispatch (_type, _payload) {
235
417
  // check object-style dispatch
236
- if (isObject(type) && type.type) {
237
- payload = type
238
- type = type.type
239
- }
418
+ var ref = unifyObjectStyle(_type, _payload);
419
+ var type = ref.type;
420
+ var payload = ref.payload;
421
+
240
422
  var entry = this._actions[type]
241
423
  if (!entry) {
242
424
  console.error(("[vuex] unknown action type: " + type))
@@ -264,7 +446,7 @@ Store.prototype.watch = function watch (getter, cb, options) {
264
446
  var this$1 = this;
265
447
 
266
448
  assert(typeof getter === 'function', "store.watch only accepts a function.")
267
- return this._watcherVM.$watch(function () { return getter(this$1.state); }, cb, options)
449
+ return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)
268
450
  };
269
451
 
270
452
  Store.prototype.replaceState = function replaceState (state) {
@@ -275,11 +457,11 @@ Store.prototype.replaceState = function replaceState (state) {
275
457
  })
276
458
  };
277
459
 
278
- Store.prototype.registerModule = function registerModule (path, module) {
460
+ Store.prototype.registerModule = function registerModule (path, rawModule) {
279
461
  if (typeof path === 'string') { path = [path] }
280
462
  assert(Array.isArray(path), "module path must be a string or an Array.")
281
- this._runtimeModules[path.join('.')] = module
282
- installModule(this, this.state, path, module)
463
+ this._modules.register(path, rawModule)
464
+ installModule(this, this.state, path, this._modules.get(path))
283
465
  // reset store to update getters...
284
466
  resetStoreVM(this, this.state)
285
467
  };
@@ -289,7 +471,7 @@ Store.prototype.unregisterModule = function unregisterModule (path) {
289
471
 
290
472
  if (typeof path === 'string') { path = [path] }
291
473
  assert(Array.isArray(path), "module path must be a string or an Array.")
292
- delete this._runtimeModules[path.join('.')]
474
+ this._modules.unregister(path)
293
475
  this._withCommit(function () {
294
476
  var parentState = getNestedState(this$1.state, path.slice(0, -1))
295
477
  Vue.delete(parentState, path[path.length - 1])
@@ -298,7 +480,7 @@ Store.prototype.unregisterModule = function unregisterModule (path) {
298
480
  };
299
481
 
300
482
  Store.prototype.hotUpdate = function hotUpdate (newOptions) {
301
- updateModule(this._options, newOptions)
483
+ this._modules.update(newOptions)
302
484
  resetStore(this)
303
485
  };
304
486
 
@@ -311,41 +493,14 @@ Store.prototype._withCommit = function _withCommit (fn) {
311
493
 
312
494
  Object.defineProperties( Store.prototype, prototypeAccessors );
313
495
 
314
- function updateModule (targetModule, newModule) {
315
- if (newModule.actions) {
316
- targetModule.actions = newModule.actions
317
- }
318
- if (newModule.mutations) {
319
- targetModule.mutations = newModule.mutations
320
- }
321
- if (newModule.getters) {
322
- targetModule.getters = newModule.getters
323
- }
324
- if (newModule.modules) {
325
- for (var key in newModule.modules) {
326
- if (!(targetModule.modules && targetModule.modules[key])) {
327
- console.warn(
328
- "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
329
- 'manual reload is needed'
330
- )
331
- return
332
- }
333
- updateModule(targetModule.modules[key], newModule.modules[key])
334
- }
335
- }
336
- }
337
-
338
496
  function resetStore (store) {
339
497
  store._actions = Object.create(null)
340
498
  store._mutations = Object.create(null)
341
499
  store._wrappedGetters = Object.create(null)
500
+ store._modulesNamespaceMap = Object.create(null)
342
501
  var state = store.state
343
- // init root module
344
- installModule(store, state, [], store._options, true)
345
- // init all runtime modules
346
- Object.keys(store._runtimeModules).forEach(function (key) {
347
- installModule(store, state, key.split('.'), store._runtimeModules[key], true)
348
- })
502
+ // init all modules
503
+ installModule(store, state, [], store._modules.root, true)
349
504
  // reset vm
350
505
  resetStoreVM(store, state)
351
506
  }
@@ -357,12 +512,12 @@ function resetStoreVM (store, state) {
357
512
  store.getters = {}
358
513
  var wrappedGetters = store._wrappedGetters
359
514
  var computed = {}
360
- Object.keys(wrappedGetters).forEach(function (key) {
361
- var fn = wrappedGetters[key]
515
+ forEachValue(wrappedGetters, function (fn, key) {
362
516
  // use computed to leverage its lazy-caching mechanism
363
517
  computed[key] = function () { return fn(store); }
364
518
  Object.defineProperty(store.getters, key, {
365
- get: function () { return store._vm[key]; }
519
+ get: function () { return store._vm[key]; },
520
+ enumerable: true // for local getters
366
521
  })
367
522
  })
368
523
 
@@ -394,65 +549,135 @@ function resetStoreVM (store, state) {
394
549
 
395
550
  function installModule (store, rootState, path, module, hot) {
396
551
  var isRoot = !path.length
397
- var state = module.state;
398
- var actions = module.actions;
399
- var mutations = module.mutations;
400
- var getters = module.getters;
401
- var modules = module.modules;
552
+ var namespace = store._modules.getNamespace(path)
553
+
554
+ // register in namespace map
555
+ if (namespace) {
556
+ store._modulesNamespaceMap[namespace] = module
557
+ }
402
558
 
403
559
  // set state
404
560
  if (!isRoot && !hot) {
405
561
  var parentState = getNestedState(rootState, path.slice(0, -1))
406
562
  var moduleName = path[path.length - 1]
407
563
  store._withCommit(function () {
408
- Vue.set(parentState, moduleName, state || {})
564
+ Vue.set(parentState, moduleName, module.state)
409
565
  })
410
566
  }
411
567
 
412
- if (mutations) {
413
- Object.keys(mutations).forEach(function (key) {
414
- registerMutation(store, key, mutations[key], path)
415
- })
416
- }
568
+ var local = module.context = makeLocalContext(store, namespace)
417
569
 
418
- if (actions) {
419
- Object.keys(actions).forEach(function (key) {
420
- registerAction(store, key, actions[key], path)
421
- })
422
- }
570
+ module.forEachMutation(function (mutation, key) {
571
+ var namespacedType = namespace + key
572
+ registerMutation(store, namespacedType, mutation, path)
573
+ })
423
574
 
424
- if (getters) {
425
- wrapGetters(store, getters, path)
575
+ module.forEachAction(function (action, key) {
576
+ var namespacedType = namespace + key
577
+ registerAction(store, namespacedType, action, local, path)
578
+ })
579
+
580
+ module.forEachGetter(function (getter, key) {
581
+ var namespacedType = namespace + key
582
+ registerGetter(store, namespacedType, getter, local, path)
583
+ })
584
+
585
+ module.forEachChild(function (child, key) {
586
+ installModule(store, rootState, path.concat(key), child, hot)
587
+ })
588
+ }
589
+
590
+ /**
591
+ * make localized dispatch, commit and getters
592
+ * if there is no namespace, just use root ones
593
+ */
594
+ function makeLocalContext (store, namespace) {
595
+ var noNamespace = namespace === ''
596
+
597
+ var local = {
598
+ dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
599
+ var args = unifyObjectStyle(_type, _payload, _options)
600
+ var payload = args.payload;
601
+ var options = args.options;
602
+ var type = args.type;
603
+
604
+ if (!options || !options.root) {
605
+ type = namespace + type
606
+ if (!store._actions[type]) {
607
+ console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type))
608
+ return
609
+ }
610
+ }
611
+
612
+ return store.dispatch(type, payload)
613
+ },
614
+
615
+ commit: noNamespace ? store.commit : function (_type, _payload, _options) {
616
+ var args = unifyObjectStyle(_type, _payload, _options)
617
+ var payload = args.payload;
618
+ var options = args.options;
619
+ var type = args.type;
620
+
621
+ if (!options || !options.root) {
622
+ type = namespace + type
623
+ if (!store._mutations[type]) {
624
+ console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type))
625
+ return
626
+ }
627
+ }
628
+
629
+ store.commit(type, payload, options)
630
+ }
426
631
  }
427
632
 
428
- if (modules) {
429
- Object.keys(modules).forEach(function (key) {
430
- installModule(store, rootState, path.concat(key), modules[key], hot)
633
+ // getters object must be gotten lazily
634
+ // because store.getters will be changed by vm update
635
+ Object.defineProperty(local, 'getters', {
636
+ get: noNamespace ? function () { return store.getters; } : function () { return makeLocalGetters(store, namespace); }
637
+ })
638
+
639
+ return local
640
+ }
641
+
642
+ function makeLocalGetters (store, namespace) {
643
+ var gettersProxy = {}
644
+
645
+ var splitPos = namespace.length
646
+ Object.keys(store.getters).forEach(function (type) {
647
+ // skip if the target getter is not match this namespace
648
+ if (type.slice(0, splitPos) !== namespace) { return }
649
+
650
+ // extract local getter type
651
+ var localType = type.slice(splitPos)
652
+
653
+ // Add a port to the getters proxy.
654
+ // Define as getter property because
655
+ // we do not want to evaluate the getters in this time.
656
+ Object.defineProperty(gettersProxy, localType, {
657
+ get: function () { return store.getters[type]; },
658
+ enumerable: true
431
659
  })
432
- }
660
+ })
661
+
662
+ return gettersProxy
433
663
  }
434
664
 
435
665
  function registerMutation (store, type, handler, path) {
436
- if ( path === void 0 ) path = [];
437
-
438
666
  var entry = store._mutations[type] || (store._mutations[type] = [])
439
667
  entry.push(function wrappedMutationHandler (payload) {
440
668
  handler(getNestedState(store.state, path), payload)
441
669
  })
442
670
  }
443
671
 
444
- function registerAction (store, type, handler, path) {
445
- if ( path === void 0 ) path = [];
446
-
672
+ function registerAction (store, type, handler, local, path) {
447
673
  var entry = store._actions[type] || (store._actions[type] = [])
448
- var dispatch = store.dispatch;
449
- var commit = store.commit;
450
674
  entry.push(function wrappedActionHandler (payload, cb) {
451
675
  var res = handler({
452
- dispatch: dispatch,
453
- commit: commit,
454
- getters: store.getters,
676
+ dispatch: local.dispatch,
677
+ commit: local.commit,
678
+ getters: local.getters,
455
679
  state: getNestedState(store.state, path),
680
+ rootGetters: store.getters,
456
681
  rootState: store.state
457
682
  }, payload, cb)
458
683
  if (!isPromise(res)) {
@@ -469,21 +694,19 @@ function registerAction (store, type, handler, path) {
469
694
  })
470
695
  }
471
696
 
472
- function wrapGetters (store, moduleGetters, modulePath) {
473
- Object.keys(moduleGetters).forEach(function (getterKey) {
474
- var rawGetter = moduleGetters[getterKey]
475
- if (store._wrappedGetters[getterKey]) {
476
- console.error(("[vuex] duplicate getter key: " + getterKey))
477
- return
478
- }
479
- store._wrappedGetters[getterKey] = function wrappedGetter (store) {
480
- return rawGetter(
481
- getNestedState(store.state, modulePath), // local state
482
- store.getters, // getters
483
- store.state // root state
484
- )
485
- }
486
- })
697
+ function registerGetter (store, type, rawGetter, local, path) {
698
+ if (store._wrappedGetters[type]) {
699
+ console.error(("[vuex] duplicate getter key: " + type))
700
+ return
701
+ }
702
+ store._wrappedGetters[type] = function wrappedGetter (store) {
703
+ return rawGetter(
704
+ getNestedState(store.state, path), // local state
705
+ local.getters, // local getters
706
+ store.state, // root state
707
+ store.getters // root getters
708
+ )
709
+ }
487
710
  }
488
711
 
489
712
  function enableStrictMode (store) {
@@ -498,6 +721,15 @@ function getNestedState (state, path) {
498
721
  : state
499
722
  }
500
723
 
724
+ function unifyObjectStyle (type, payload, options) {
725
+ if (isObject(type) && type.type) {
726
+ options = payload
727
+ payload = type
728
+ type = type.type
729
+ }
730
+ return { type: type, payload: payload, options: options }
731
+ }
732
+
501
733
  function install (_Vue) {
502
734
  if (Vue) {
503
735
  console.error(
@@ -517,6 +749,7 @@ if (typeof window !== 'undefined' && window.Vue) {
517
749
  var index = {
518
750
  Store: Store,
519
751
  install: install,
752
+ version: '2.1.1',
520
753
  mapState: mapState,
521
754
  mapMutations: mapMutations,
522
755
  mapGetters: mapGetters,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vuejs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.33
4
+ version: 1.0.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Lim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-14 00:00:00.000000000 Z
11
+ date: 2016-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler