vuejs 1.0.29 → 1.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/vuejs/version.rb +1 -1
- data/vendor/assets/javascripts/vuex.js +528 -0
- metadata +7 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 32eb6ae3693eb02e0594fa498c79030bdacaa039
         | 
| 4 | 
            +
              data.tar.gz: 2ad73f16c5a3270f99c9e9b890f994c23ad9c0d9
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d114df6daac162a6378b828fe68508c9adf80bb33557eed5887041e0c4f816ca7e36b8aa125393f9eb26366e3f109c4a93d22f0a48654512ec0d65da78ae538b
         | 
| 7 | 
            +
              data.tar.gz: 81b31c559cbe5c16ce546abf69d5a258b129b5f23fd8d74cf897b2917462a29f0f4335470d7c46e1e789deffa52342738676038595bf0b52459dbd349446c65e
         | 
    
        data/README.md
    CHANGED
    
    | @@ -2,10 +2,9 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            > Reactive Components for Modern Web Interfaces
         | 
| 4 4 |  | 
| 5 | 
            +
            gem `vuejs` ships with the 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.
         | 
| 5 6 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
            The current 2.x version is `Vue.js` (v2.0.1) + `vue-router` (v2.0.0) + `vue-validator` (v2.1.3).
         | 
| 7 | 
            +
            The current 2.x version is `Vue.js` (v2.0.1) + `vue-router` (v2.0.0) + `vue-validator` (v2.1.3) + `vuex` (v2.0.0).
         | 
| 9 8 | 
             
            > Note that Vue 2.x is not compatible with 1.x. vue-router 2.0 only works with Vue 2.x`
         | 
| 10 9 |  | 
| 11 10 | 
             
            The current 1.x version is `Vue.js` (v1.0.28) + `vue-router` (v0.7.13) + `vue-resource` (v1.0.3)
         | 
| @@ -46,6 +45,7 @@ For 2.x Vue & vue-router or Vue-validator | |
| 46 45 | 
             
            //= require vue2
         | 
| 47 46 | 
             
            //= require vue-router2
         | 
| 48 47 | 
             
            //= require vue-validator
         | 
| 48 | 
            +
            //= require vuex
         | 
| 49 49 |  | 
| 50 50 | 
             
            ```
         | 
| 51 51 | 
             
            ## Development
         | 
    
        data/lib/vuejs/version.rb
    CHANGED
    
    
| @@ -0,0 +1,528 @@ | |
| 1 | 
            +
            /**
         | 
| 2 | 
            +
             * vuex v2.0.0
         | 
| 3 | 
            +
             * (c) 2016 Evan You
         | 
| 4 | 
            +
             * @license MIT
         | 
| 5 | 
            +
             */
         | 
| 6 | 
            +
            (function (global, factory) {
         | 
| 7 | 
            +
              typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
         | 
| 8 | 
            +
              typeof define === 'function' && define.amd ? define(factory) :
         | 
| 9 | 
            +
              (global.Vuex = factory());
         | 
| 10 | 
            +
            }(this, (function () { 'use strict';
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            var devtoolHook =
         | 
| 13 | 
            +
              typeof window !== 'undefined' &&
         | 
| 14 | 
            +
              window.__VUE_DEVTOOLS_GLOBAL_HOOK__
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            function devtoolPlugin (store) {
         | 
| 17 | 
            +
              if (!devtoolHook) { return }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              store._devtoolHook = devtoolHook
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              devtoolHook.emit('vuex:init', store)
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              devtoolHook.on('vuex:travel-to-state', function (targetState) {
         | 
| 24 | 
            +
                store.replaceState(targetState)
         | 
| 25 | 
            +
              })
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              store.subscribe(function (mutation, state) {
         | 
| 28 | 
            +
                devtoolHook.emit('vuex:mutation', mutation, state)
         | 
| 29 | 
            +
              })
         | 
| 30 | 
            +
            }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            function applyMixin (Vue) {
         | 
| 33 | 
            +
              var version = Number(Vue.version.split('.')[0])
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              if (version >= 2) {
         | 
| 36 | 
            +
                var usesInit = Vue.config._lifecycleHooks.indexOf('init') > -1
         | 
| 37 | 
            +
                Vue.mixin(usesInit ? { init: vuexInit } : { beforeCreate: vuexInit })
         | 
| 38 | 
            +
              } else {
         | 
| 39 | 
            +
                // override init and inject vuex init procedure
         | 
| 40 | 
            +
                // for 1.x backwards compatibility.
         | 
| 41 | 
            +
                var _init = Vue.prototype._init
         | 
| 42 | 
            +
                Vue.prototype._init = function (options) {
         | 
| 43 | 
            +
                  if ( options === void 0 ) options = {};
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  options.init = options.init
         | 
| 46 | 
            +
                    ? [vuexInit].concat(options.init)
         | 
| 47 | 
            +
                    : vuexInit
         | 
| 48 | 
            +
                  _init.call(this, options)
         | 
| 49 | 
            +
                }
         | 
| 50 | 
            +
              }
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              /**
         | 
| 53 | 
            +
               * Vuex init hook, injected into each instances init hooks list.
         | 
| 54 | 
            +
               */
         | 
| 55 | 
            +
             | 
| 56 | 
            +
              function vuexInit () {
         | 
| 57 | 
            +
                var options = this.$options
         | 
| 58 | 
            +
                // store injection
         | 
| 59 | 
            +
                if (options.store) {
         | 
| 60 | 
            +
                  this.$store = options.store
         | 
| 61 | 
            +
                } else if (options.parent && options.parent.$store) {
         | 
| 62 | 
            +
                  this.$store = options.parent.$store
         | 
| 63 | 
            +
                }
         | 
| 64 | 
            +
              }
         | 
| 65 | 
            +
            }
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            function mapState (states) {
         | 
| 68 | 
            +
              var res = {}
         | 
| 69 | 
            +
              normalizeMap(states).forEach(function (ref) {
         | 
| 70 | 
            +
                var key = ref.key;
         | 
| 71 | 
            +
                var val = ref.val;
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                res[key] = function mappedState () {
         | 
| 74 | 
            +
                  return typeof val === 'function'
         | 
| 75 | 
            +
                    ? val.call(this, this.$store.state, this.$store.getters)
         | 
| 76 | 
            +
                    : this.$store.state[val]
         | 
| 77 | 
            +
                }
         | 
| 78 | 
            +
              })
         | 
| 79 | 
            +
              return res
         | 
| 80 | 
            +
            }
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            function mapMutations (mutations) {
         | 
| 83 | 
            +
              var res = {}
         | 
| 84 | 
            +
              normalizeMap(mutations).forEach(function (ref) {
         | 
| 85 | 
            +
                var key = ref.key;
         | 
| 86 | 
            +
                var val = ref.val;
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                res[key] = function mappedMutation () {
         | 
| 89 | 
            +
                  var args = [], len = arguments.length;
         | 
| 90 | 
            +
                  while ( len-- ) args[ len ] = arguments[ len ];
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  return this.$store.commit.apply(this.$store, [val].concat(args))
         | 
| 93 | 
            +
                }
         | 
| 94 | 
            +
              })
         | 
| 95 | 
            +
              return res
         | 
| 96 | 
            +
            }
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            function mapGetters (getters) {
         | 
| 99 | 
            +
              var res = {}
         | 
| 100 | 
            +
              normalizeMap(getters).forEach(function (ref) {
         | 
| 101 | 
            +
                var key = ref.key;
         | 
| 102 | 
            +
                var val = ref.val;
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                res[key] = function mappedGetter () {
         | 
| 105 | 
            +
                  if (!(val in this.$store.getters)) {
         | 
| 106 | 
            +
                    console.error(("[vuex] unknown getter: " + val))
         | 
| 107 | 
            +
                  }
         | 
| 108 | 
            +
                  return this.$store.getters[val]
         | 
| 109 | 
            +
                }
         | 
| 110 | 
            +
              })
         | 
| 111 | 
            +
              return res
         | 
| 112 | 
            +
            }
         | 
| 113 | 
            +
             | 
| 114 | 
            +
            function mapActions (actions) {
         | 
| 115 | 
            +
              var res = {}
         | 
| 116 | 
            +
              normalizeMap(actions).forEach(function (ref) {
         | 
| 117 | 
            +
                var key = ref.key;
         | 
| 118 | 
            +
                var val = ref.val;
         | 
| 119 | 
            +
             | 
| 120 | 
            +
                res[key] = function mappedAction () {
         | 
| 121 | 
            +
                  var args = [], len = arguments.length;
         | 
| 122 | 
            +
                  while ( len-- ) args[ len ] = arguments[ len ];
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                  return this.$store.dispatch.apply(this.$store, [val].concat(args))
         | 
| 125 | 
            +
                }
         | 
| 126 | 
            +
              })
         | 
| 127 | 
            +
              return res
         | 
| 128 | 
            +
            }
         | 
| 129 | 
            +
             | 
| 130 | 
            +
            function normalizeMap (map) {
         | 
| 131 | 
            +
              return Array.isArray(map)
         | 
| 132 | 
            +
                ? map.map(function (key) { return ({ key: key, val: key }); })
         | 
| 133 | 
            +
                : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
         | 
| 134 | 
            +
            }
         | 
| 135 | 
            +
             | 
| 136 | 
            +
            function isObject (obj) {
         | 
| 137 | 
            +
              return obj !== null && typeof obj === 'object'
         | 
| 138 | 
            +
            }
         | 
| 139 | 
            +
             | 
| 140 | 
            +
            function isPromise (val) {
         | 
| 141 | 
            +
              return val && typeof val.then === 'function'
         | 
| 142 | 
            +
            }
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            function assert (condition, msg) {
         | 
| 145 | 
            +
              if (!condition) { throw new Error(("[vuex] " + msg)) }
         | 
| 146 | 
            +
            }
         | 
| 147 | 
            +
             | 
| 148 | 
            +
            var Vue // bind on install
         | 
| 149 | 
            +
             | 
| 150 | 
            +
            var Store = function Store (options) {
         | 
| 151 | 
            +
              var this$1 = this;
         | 
| 152 | 
            +
              if ( options === void 0 ) options = {};
         | 
| 153 | 
            +
             | 
| 154 | 
            +
              assert(Vue, "must call Vue.use(Vuex) before creating a store instance.")
         | 
| 155 | 
            +
              assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.")
         | 
| 156 | 
            +
             | 
| 157 | 
            +
              var state = options.state; if ( state === void 0 ) state = {};
         | 
| 158 | 
            +
              var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
         | 
| 159 | 
            +
              var strict = options.strict; if ( strict === void 0 ) strict = false;
         | 
| 160 | 
            +
             | 
| 161 | 
            +
              // store internal state
         | 
| 162 | 
            +
              this._options = options
         | 
| 163 | 
            +
              this._committing = false
         | 
| 164 | 
            +
              this._actions = Object.create(null)
         | 
| 165 | 
            +
              this._mutations = Object.create(null)
         | 
| 166 | 
            +
              this._wrappedGetters = Object.create(null)
         | 
| 167 | 
            +
              this._runtimeModules = Object.create(null)
         | 
| 168 | 
            +
              this._subscribers = []
         | 
| 169 | 
            +
              this._watcherVM = new Vue()
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                // bind commit and dispatch to self
         | 
| 172 | 
            +
              var store = this
         | 
| 173 | 
            +
              var ref = this;
         | 
| 174 | 
            +
              var dispatch = ref.dispatch;
         | 
| 175 | 
            +
              var commit = ref.commit;
         | 
| 176 | 
            +
              this.dispatch = function boundDispatch (type, payload) {
         | 
| 177 | 
            +
                return dispatch.call(store, type, payload)
         | 
| 178 | 
            +
                }
         | 
| 179 | 
            +
                this.commit = function boundCommit (type, payload, options) {
         | 
| 180 | 
            +
                return commit.call(store, type, payload, options)
         | 
| 181 | 
            +
              }
         | 
| 182 | 
            +
             | 
| 183 | 
            +
              // strict mode
         | 
| 184 | 
            +
              this.strict = strict
         | 
| 185 | 
            +
             | 
| 186 | 
            +
              // init root module.
         | 
| 187 | 
            +
              // this also recursively registers all sub-modules
         | 
| 188 | 
            +
              // and collects all module getters inside this._wrappedGetters
         | 
| 189 | 
            +
              installModule(this, state, [], options)
         | 
| 190 | 
            +
             | 
| 191 | 
            +
              // initialize the store vm, which is responsible for the reactivity
         | 
| 192 | 
            +
              // (also registers _wrappedGetters as computed properties)
         | 
| 193 | 
            +
              resetStoreVM(this, state)
         | 
| 194 | 
            +
             | 
| 195 | 
            +
              // apply plugins
         | 
| 196 | 
            +
              plugins.concat(devtoolPlugin).forEach(function (plugin) { return plugin(this$1); })
         | 
| 197 | 
            +
            };
         | 
| 198 | 
            +
             | 
| 199 | 
            +
            var prototypeAccessors = { state: {} };
         | 
| 200 | 
            +
             | 
| 201 | 
            +
            prototypeAccessors.state.get = function () {
         | 
| 202 | 
            +
              return this._vm.state
         | 
| 203 | 
            +
            };
         | 
| 204 | 
            +
             | 
| 205 | 
            +
            prototypeAccessors.state.set = function (v) {
         | 
| 206 | 
            +
              assert(false, "Use store.replaceState() to explicit replace store state.")
         | 
| 207 | 
            +
            };
         | 
| 208 | 
            +
             | 
| 209 | 
            +
            Store.prototype.commit = function commit (type, payload, options) {
         | 
| 210 | 
            +
                var this$1 = this;
         | 
| 211 | 
            +
             | 
| 212 | 
            +
              // check object-style commit
         | 
| 213 | 
            +
              if (isObject(type) && type.type) {
         | 
| 214 | 
            +
                options = payload
         | 
| 215 | 
            +
                payload = type
         | 
| 216 | 
            +
                type = type.type
         | 
| 217 | 
            +
              }
         | 
| 218 | 
            +
              var mutation = { type: type, payload: payload }
         | 
| 219 | 
            +
              var entry = this._mutations[type]
         | 
| 220 | 
            +
              if (!entry) {
         | 
| 221 | 
            +
                console.error(("[vuex] unknown mutation type: " + type))
         | 
| 222 | 
            +
                return
         | 
| 223 | 
            +
              }
         | 
| 224 | 
            +
              this._withCommit(function () {
         | 
| 225 | 
            +
                entry.forEach(function commitIterator (handler) {
         | 
| 226 | 
            +
                  handler(payload)
         | 
| 227 | 
            +
                })
         | 
| 228 | 
            +
              })
         | 
| 229 | 
            +
              if (!options || !options.silent) {
         | 
| 230 | 
            +
                this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); })
         | 
| 231 | 
            +
              }
         | 
| 232 | 
            +
            };
         | 
| 233 | 
            +
             | 
| 234 | 
            +
            Store.prototype.dispatch = function dispatch (type, payload) {
         | 
| 235 | 
            +
              // check object-style dispatch
         | 
| 236 | 
            +
              if (isObject(type) && type.type) {
         | 
| 237 | 
            +
                payload = type
         | 
| 238 | 
            +
                type = type.type
         | 
| 239 | 
            +
              }
         | 
| 240 | 
            +
              var entry = this._actions[type]
         | 
| 241 | 
            +
              if (!entry) {
         | 
| 242 | 
            +
                console.error(("[vuex] unknown action type: " + type))
         | 
| 243 | 
            +
                return
         | 
| 244 | 
            +
              }
         | 
| 245 | 
            +
              return entry.length > 1
         | 
| 246 | 
            +
                ? Promise.all(entry.map(function (handler) { return handler(payload); }))
         | 
| 247 | 
            +
                : entry[0](payload)
         | 
| 248 | 
            +
            };
         | 
| 249 | 
            +
             | 
| 250 | 
            +
            Store.prototype.subscribe = function subscribe (fn) {
         | 
| 251 | 
            +
              var subs = this._subscribers
         | 
| 252 | 
            +
              if (subs.indexOf(fn) < 0) {
         | 
| 253 | 
            +
                subs.push(fn)
         | 
| 254 | 
            +
              }
         | 
| 255 | 
            +
              return function () {
         | 
| 256 | 
            +
                var i = subs.indexOf(fn)
         | 
| 257 | 
            +
                if (i > -1) {
         | 
| 258 | 
            +
                  subs.splice(i, 1)
         | 
| 259 | 
            +
                }
         | 
| 260 | 
            +
              }
         | 
| 261 | 
            +
            };
         | 
| 262 | 
            +
             | 
| 263 | 
            +
            Store.prototype.watch = function watch (getter, cb, options) {
         | 
| 264 | 
            +
                var this$1 = this;
         | 
| 265 | 
            +
             | 
| 266 | 
            +
              assert(typeof getter === 'function', "store.watch only accepts a function.")
         | 
| 267 | 
            +
              return this._watcherVM.$watch(function () { return getter(this$1.state); }, cb, options)
         | 
| 268 | 
            +
            };
         | 
| 269 | 
            +
             | 
| 270 | 
            +
            Store.prototype.replaceState = function replaceState (state) {
         | 
| 271 | 
            +
                var this$1 = this;
         | 
| 272 | 
            +
             | 
| 273 | 
            +
              this._withCommit(function () {
         | 
| 274 | 
            +
                this$1._vm.state = state
         | 
| 275 | 
            +
              })
         | 
| 276 | 
            +
            };
         | 
| 277 | 
            +
             | 
| 278 | 
            +
            Store.prototype.registerModule = function registerModule (path, module) {
         | 
| 279 | 
            +
              if (typeof path === 'string') { path = [path] }
         | 
| 280 | 
            +
              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)
         | 
| 283 | 
            +
              // reset store to update getters...
         | 
| 284 | 
            +
              resetStoreVM(this, this.state)
         | 
| 285 | 
            +
            };
         | 
| 286 | 
            +
             | 
| 287 | 
            +
            Store.prototype.unregisterModule = function unregisterModule (path) {
         | 
| 288 | 
            +
                var this$1 = this;
         | 
| 289 | 
            +
             | 
| 290 | 
            +
              if (typeof path === 'string') { path = [path] }
         | 
| 291 | 
            +
              assert(Array.isArray(path), "module path must be a string or an Array.")
         | 
| 292 | 
            +
                delete this._runtimeModules[path.join('.')]
         | 
| 293 | 
            +
              this._withCommit(function () {
         | 
| 294 | 
            +
                var parentState = getNestedState(this$1.state, path.slice(0, -1))
         | 
| 295 | 
            +
                Vue.delete(parentState, path[path.length - 1])
         | 
| 296 | 
            +
              })
         | 
| 297 | 
            +
              resetStore(this)
         | 
| 298 | 
            +
            };
         | 
| 299 | 
            +
             | 
| 300 | 
            +
            Store.prototype.hotUpdate = function hotUpdate (newOptions) {
         | 
| 301 | 
            +
              updateModule(this._options, newOptions)
         | 
| 302 | 
            +
              resetStore(this)
         | 
| 303 | 
            +
            };
         | 
| 304 | 
            +
             | 
| 305 | 
            +
            Store.prototype._withCommit = function _withCommit (fn) {
         | 
| 306 | 
            +
              var committing = this._committing
         | 
| 307 | 
            +
              this._committing = true
         | 
| 308 | 
            +
              fn()
         | 
| 309 | 
            +
              this._committing = committing
         | 
| 310 | 
            +
            };
         | 
| 311 | 
            +
             | 
| 312 | 
            +
            Object.defineProperties( Store.prototype, prototypeAccessors );
         | 
| 313 | 
            +
             | 
| 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 | 
            +
            function resetStore (store) {
         | 
| 339 | 
            +
              store._actions = Object.create(null)
         | 
| 340 | 
            +
              store._mutations = Object.create(null)
         | 
| 341 | 
            +
              store._wrappedGetters = Object.create(null)
         | 
| 342 | 
            +
              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 | 
            +
              })
         | 
| 349 | 
            +
              // reset vm
         | 
| 350 | 
            +
              resetStoreVM(store, state)
         | 
| 351 | 
            +
            }
         | 
| 352 | 
            +
             | 
| 353 | 
            +
            function resetStoreVM (store, state) {
         | 
| 354 | 
            +
              var oldVm = store._vm
         | 
| 355 | 
            +
             | 
| 356 | 
            +
              // bind store public getters
         | 
| 357 | 
            +
              store.getters = {}
         | 
| 358 | 
            +
              var wrappedGetters = store._wrappedGetters
         | 
| 359 | 
            +
              var computed = {}
         | 
| 360 | 
            +
              Object.keys(wrappedGetters).forEach(function (key) {
         | 
| 361 | 
            +
                var fn = wrappedGetters[key]
         | 
| 362 | 
            +
                // use computed to leverage its lazy-caching mechanism
         | 
| 363 | 
            +
                computed[key] = function () { return fn(store); }
         | 
| 364 | 
            +
                Object.defineProperty(store.getters, key, {
         | 
| 365 | 
            +
                  get: function () { return store._vm[key]; }
         | 
| 366 | 
            +
                })
         | 
| 367 | 
            +
              })
         | 
| 368 | 
            +
             | 
| 369 | 
            +
              // use a Vue instance to store the state tree
         | 
| 370 | 
            +
              // suppress warnings just in case the user has added
         | 
| 371 | 
            +
              // some funky global mixins
         | 
| 372 | 
            +
              var silent = Vue.config.silent
         | 
| 373 | 
            +
              Vue.config.silent = true
         | 
| 374 | 
            +
              store._vm = new Vue({
         | 
| 375 | 
            +
                data: { state: state },
         | 
| 376 | 
            +
                computed: computed
         | 
| 377 | 
            +
              })
         | 
| 378 | 
            +
              Vue.config.silent = silent
         | 
| 379 | 
            +
             | 
| 380 | 
            +
              // enable strict mode for new vm
         | 
| 381 | 
            +
              if (store.strict) {
         | 
| 382 | 
            +
                enableStrictMode(store)
         | 
| 383 | 
            +
              }
         | 
| 384 | 
            +
             | 
| 385 | 
            +
              if (oldVm) {
         | 
| 386 | 
            +
                // dispatch changes in all subscribed watchers
         | 
| 387 | 
            +
                // to force getter re-evaluation.
         | 
| 388 | 
            +
                store._withCommit(function () {
         | 
| 389 | 
            +
                  oldVm.state = null
         | 
| 390 | 
            +
                })
         | 
| 391 | 
            +
                Vue.nextTick(function () { return oldVm.$destroy(); })
         | 
| 392 | 
            +
              }
         | 
| 393 | 
            +
            }
         | 
| 394 | 
            +
             | 
| 395 | 
            +
            function installModule (store, rootState, path, module, hot) {
         | 
| 396 | 
            +
              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;
         | 
| 402 | 
            +
             | 
| 403 | 
            +
              // set state
         | 
| 404 | 
            +
              if (!isRoot && !hot) {
         | 
| 405 | 
            +
                var parentState = getNestedState(rootState, path.slice(0, -1))
         | 
| 406 | 
            +
                var moduleName = path[path.length - 1]
         | 
| 407 | 
            +
                store._withCommit(function () {
         | 
| 408 | 
            +
                  Vue.set(parentState, moduleName, state || {})
         | 
| 409 | 
            +
                })
         | 
| 410 | 
            +
              }
         | 
| 411 | 
            +
             | 
| 412 | 
            +
              if (mutations) {
         | 
| 413 | 
            +
                Object.keys(mutations).forEach(function (key) {
         | 
| 414 | 
            +
                  registerMutation(store, key, mutations[key], path)
         | 
| 415 | 
            +
                })
         | 
| 416 | 
            +
              }
         | 
| 417 | 
            +
             | 
| 418 | 
            +
              if (actions) {
         | 
| 419 | 
            +
                Object.keys(actions).forEach(function (key) {
         | 
| 420 | 
            +
                  registerAction(store, key, actions[key], path)
         | 
| 421 | 
            +
                })
         | 
| 422 | 
            +
              }
         | 
| 423 | 
            +
             | 
| 424 | 
            +
              if (getters) {
         | 
| 425 | 
            +
                wrapGetters(store, getters, path)
         | 
| 426 | 
            +
              }
         | 
| 427 | 
            +
             | 
| 428 | 
            +
              if (modules) {
         | 
| 429 | 
            +
                Object.keys(modules).forEach(function (key) {
         | 
| 430 | 
            +
                  installModule(store, rootState, path.concat(key), modules[key], hot)
         | 
| 431 | 
            +
                })
         | 
| 432 | 
            +
              }
         | 
| 433 | 
            +
            }
         | 
| 434 | 
            +
             | 
| 435 | 
            +
            function registerMutation (store, type, handler, path) {
         | 
| 436 | 
            +
              if ( path === void 0 ) path = [];
         | 
| 437 | 
            +
             | 
| 438 | 
            +
              var entry = store._mutations[type] || (store._mutations[type] = [])
         | 
| 439 | 
            +
              entry.push(function wrappedMutationHandler (payload) {
         | 
| 440 | 
            +
                handler(getNestedState(store.state, path), payload)
         | 
| 441 | 
            +
              })
         | 
| 442 | 
            +
            }
         | 
| 443 | 
            +
             | 
| 444 | 
            +
            function registerAction (store, type, handler, path) {
         | 
| 445 | 
            +
              if ( path === void 0 ) path = [];
         | 
| 446 | 
            +
             | 
| 447 | 
            +
              var entry = store._actions[type] || (store._actions[type] = [])
         | 
| 448 | 
            +
              var dispatch = store.dispatch;
         | 
| 449 | 
            +
              var commit = store.commit;
         | 
| 450 | 
            +
              entry.push(function wrappedActionHandler (payload, cb) {
         | 
| 451 | 
            +
                var res = handler({
         | 
| 452 | 
            +
                  dispatch: dispatch,
         | 
| 453 | 
            +
                  commit: commit,
         | 
| 454 | 
            +
                  getters: store.getters,
         | 
| 455 | 
            +
                  state: getNestedState(store.state, path),
         | 
| 456 | 
            +
                  rootState: store.state
         | 
| 457 | 
            +
                }, payload, cb)
         | 
| 458 | 
            +
                if (!isPromise(res)) {
         | 
| 459 | 
            +
                  res = Promise.resolve(res)
         | 
| 460 | 
            +
                }
         | 
| 461 | 
            +
                if (store._devtoolHook) {
         | 
| 462 | 
            +
                  return res.catch(function (err) {
         | 
| 463 | 
            +
                    store._devtoolHook.emit('vuex:error', err)
         | 
| 464 | 
            +
                    throw err
         | 
| 465 | 
            +
                  })
         | 
| 466 | 
            +
                } else {
         | 
| 467 | 
            +
                  return res
         | 
| 468 | 
            +
                }
         | 
| 469 | 
            +
              })
         | 
| 470 | 
            +
            }
         | 
| 471 | 
            +
             | 
| 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 | 
            +
              })
         | 
| 487 | 
            +
            }
         | 
| 488 | 
            +
             | 
| 489 | 
            +
            function enableStrictMode (store) {
         | 
| 490 | 
            +
              store._vm.$watch('state', function () {
         | 
| 491 | 
            +
                assert(store._committing, "Do not mutate vuex store state outside mutation handlers.")
         | 
| 492 | 
            +
              }, { deep: true, sync: true })
         | 
| 493 | 
            +
            }
         | 
| 494 | 
            +
             | 
| 495 | 
            +
            function getNestedState (state, path) {
         | 
| 496 | 
            +
              return path.length
         | 
| 497 | 
            +
                ? path.reduce(function (state, key) { return state[key]; }, state)
         | 
| 498 | 
            +
                : state
         | 
| 499 | 
            +
            }
         | 
| 500 | 
            +
             | 
| 501 | 
            +
            function install (_Vue) {
         | 
| 502 | 
            +
              if (Vue) {
         | 
| 503 | 
            +
                console.error(
         | 
| 504 | 
            +
                  '[vuex] already installed. Vue.use(Vuex) should be called only once.'
         | 
| 505 | 
            +
                )
         | 
| 506 | 
            +
                return
         | 
| 507 | 
            +
              }
         | 
| 508 | 
            +
              Vue = _Vue
         | 
| 509 | 
            +
              applyMixin(Vue)
         | 
| 510 | 
            +
            }
         | 
| 511 | 
            +
             | 
| 512 | 
            +
            // auto install in dist mode
         | 
| 513 | 
            +
            if (typeof window !== 'undefined' && window.Vue) {
         | 
| 514 | 
            +
              install(window.Vue)
         | 
| 515 | 
            +
            }
         | 
| 516 | 
            +
             | 
| 517 | 
            +
            var index = {
         | 
| 518 | 
            +
              Store: Store,
         | 
| 519 | 
            +
              install: install,
         | 
| 520 | 
            +
              mapState: mapState,
         | 
| 521 | 
            +
              mapMutations: mapMutations,
         | 
| 522 | 
            +
              mapGetters: mapGetters,
         | 
| 523 | 
            +
              mapActions: mapActions
         | 
| 524 | 
            +
            }
         | 
| 525 | 
            +
             | 
| 526 | 
            +
            return index;
         | 
| 527 | 
            +
             | 
| 528 | 
            +
            })));
         | 
    
        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. | 
| 4 | 
            +
              version: 1.0.30
         | 
| 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-10- | 
| 11 | 
            +
            date: 2016-10-11 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -38,8 +38,8 @@ dependencies: | |
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '10.0'
         | 
| 41 | 
            -
            description: Latest Vue.js + vue-router + vue-resource + vue-validator  | 
| 42 | 
            -
              ship with Vue 2.x
         | 
| 41 | 
            +
            description: Latest Vue.js + vue-router + vue-resource + vue-validator + vuex for
         | 
| 42 | 
            +
              Rails - ship with Vue 2.x
         | 
| 43 43 | 
             
            email:
         | 
| 44 44 | 
             
            - ytbryan@gmail.com
         | 
| 45 45 | 
             
            executables: []
         | 
| @@ -57,6 +57,7 @@ files: | |
| 57 57 | 
             
            - vendor/assets/javascripts/vue-validator.js
         | 
| 58 58 | 
             
            - vendor/assets/javascripts/vue.js
         | 
| 59 59 | 
             
            - vendor/assets/javascripts/vue2.js
         | 
| 60 | 
            +
            - vendor/assets/javascripts/vuex.js
         | 
| 60 61 | 
             
            homepage: http://github.com/ytbryan/vuejs
         | 
| 61 62 | 
             
            licenses:
         | 
| 62 63 | 
             
            - MIT
         | 
| @@ -83,6 +84,6 @@ rubyforge_project: | |
| 83 84 | 
             
            rubygems_version: 2.5.1
         | 
| 84 85 | 
             
            signing_key: 
         | 
| 85 86 | 
             
            specification_version: 4
         | 
| 86 | 
            -
            summary: Latest Vue.js + vue-router + vue-resource + vue-validator for Rails | 
| 87 | 
            -
              with Vue 2.x
         | 
| 87 | 
            +
            summary: Latest Vue.js + vue-router + vue-resource + vue-validator + vuex for Rails
         | 
| 88 | 
            +
              - ship with Vue 2.x
         | 
| 88 89 | 
             
            test_files: []
         |