Skip to content

Commit 78182e0

Browse files
author
Mathieu Ghaleb
committed
- build 0.3.4
1 parent 5357a93 commit 78182e0

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

build/basil.js

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
};
66

77
// Version
8-
Basil.version = '0.3.3';
8+
Basil.version = '0.3.4';
99

1010
// Utils
1111
Basil.utils = {
@@ -18,6 +18,9 @@
1818
}
1919
return destination;
2020
},
21+
isArray: function (obj) {
22+
return Object.prototype.toString.call(obj) === '[object Array]';
23+
},
2124
registerPlugin: function (methods) {
2225
Basil.plugins = this.extend(methods, Basil.plugins);
2326
}
@@ -42,13 +45,13 @@
4245
_toStoragesArray = function (storages) {
4346
if (!storages)
4447
return null;
45-
return Object.prototype.toString.call(storages) === '[object Array]' ? storages : [storages];
48+
return Basil.utils.isArray(storages) ? storages : [storages];
4649
},
4750
_toStoredKey = function (namespace, name) {
4851
var key = '';
4952
if (typeof name === 'string')
5053
key = namespace + ':' + name;
51-
else if (name instanceof Array) {
54+
else if (Basil.utils.isArray(name)) {
5255
key = namespace;
5356
for (var i = 0; i < name.length; i++)
5457
if (name[i])
@@ -57,7 +60,9 @@
5760
return key;
5861
},
5962
_toKeyName = function (namespace, name) {
60-
return name.replace(namespace + ':', '');
63+
if (!namespace)
64+
return name;
65+
return name.replace(new RegExp('^' + namespace + ':'), '');
6166
},
6267
_toStoredValue = function (value) {
6368
return JSON.stringify(value);
@@ -67,7 +72,7 @@
6772
};
6873

6974
// local storage
70-
_storages['local'] = {
75+
_storages.local = {
7176
engine: window.localStorage,
7277
check: function () {
7378
try {
@@ -92,7 +97,7 @@
9297
reset: function (namespace) {
9398
for (var i = 0, key; i < this.engine.length; i++) {
9499
key = this.engine.key(i);
95-
if (key.indexOf(namespace) === 0) {
100+
if (!namespace || key.indexOf(namespace) === 0) {
96101
this.remove(key);
97102
i--;
98103
}
@@ -102,20 +107,20 @@
102107
var keys = [];
103108
for (var i = 0, key; i < this.engine.length; i++) {
104109
key = this.engine.key(i);
105-
if (key.indexOf(namespace) === 0)
110+
if (!namespace || key.indexOf(namespace) === 0)
106111
keys.push(_toKeyName(namespace, key));
107112
}
108113
return keys;
109114
}
110115
};
111116

112117
// session storage
113-
_storages['session'] = Basil.utils.extend({}, _storages['local'], {
118+
_storages.session = Basil.utils.extend({}, _storages.local, {
114119
engine: window.sessionStorage
115120
});
116121

117122
// memory storage
118-
_storages['memory'] = {
123+
_storages.memory = {
119124
_hash: {},
120125
check: function () {
121126
return true;
@@ -133,21 +138,21 @@
133138
},
134139
reset: function (namespace) {
135140
for (var key in this._hash) {
136-
if (key.indexOf(namespace) === 0)
141+
if (!namespace || key.indexOf(namespace) === 0)
137142
this.remove(key);
138143
}
139144
},
140145
keys: function (namespace) {
141146
var keys = [];
142147
for (var key in this._hash)
143-
if (key.indexOf(namespace) === 0)
148+
if (!namespace || key.indexOf(namespace) === 0)
144149
keys.push(_toKeyName(namespace, key));
145150
return keys;
146151
}
147152
};
148153

149154
// cookie storage
150-
_storages['cookie'] = {
155+
_storages.cookie = {
151156
check: function () {
152157
return navigator.cookieEnabled;
153158
},
@@ -167,8 +172,8 @@
167172
},
168173
get: function (name) {
169174
var cookies = document.cookie.split(';');
170-
for (var i = 0; i < cookies.length; i++) {
171-
var cookie = cookies[i].replace(/^\s*/, '');
175+
for (var i = 0, cookie; i < cookies.length; i++) {
176+
cookie = cookies[i].replace(/^\s*/, '');
172177
if (cookie.indexOf(name + '=') === 0)
173178
return cookie.substring(name.length + 1, cookie.length);
174179
}
@@ -187,20 +192,20 @@
187192
},
188193
reset: function (namespace) {
189194
var cookies = document.cookie.split(';');
190-
for (var i = 0; i < cookies.length; i++) {
191-
var cookie = cookies[i].replace(/^\s*/, ''),
192-
key = cookie.substr(0, cookie.indexOf('='));
193-
if (key.indexOf(namespace) === 0)
195+
for (var i = 0, cookie, key; i < cookies.length; i++) {
196+
cookie = cookies[i].replace(/^\s*/, '');
197+
key = cookie.substr(0, cookie.indexOf('='));
198+
if (!namespace || key.indexOf(namespace) === 0)
194199
this.remove(key);
195200
}
196201
},
197202
keys: function (namespace) {
198203
var keys = [],
199204
cookies = document.cookie.split(';');
200-
for (var i = 0; i < cookies.length; i++) {
201-
var cookie = cookies[i].replace(/^\s*/, ''),
202-
key = cookie.substr(0, cookie.indexOf('='));
203-
if (key.indexOf(namespace) === 0)
205+
for (var i = 0, cookie, key; i < cookies.length; i++) {
206+
cookie = cookies[i].replace(/^\s*/, '');
207+
key = cookie.substr(0, cookie.indexOf('='));
208+
if (!namespace || key.indexOf(namespace) === 0)
204209
keys.push(_toKeyName(namespace, key));
205210
}
206211
return keys;
@@ -303,13 +308,14 @@
303308
storageKeys = _storages[storage].keys(namespace);
304309
for (var j = 0, key; j < storageKeys.length; j++) {
305310
key = storageKeys[j];
306-
map[key] = map[key] || [];
311+
map[key] = map[key] instanceof Array ? map[key] : [];
307312
map[key].push(storage);
308313
}
309314
}
310315
return map;
311316
},
312317
// Access to native storages, without namespace or basil value decoration
318+
memory: _storages.memory,
313319
cookie: _storages.cookie,
314320
localStorage: _storages.local,
315321
sessionStorage: _storages.session

build/basil.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)