kea-rails 2.0.0.pre.alpha2 → 2.0.0.pre.alpha3
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/app/assets/javascripts/kea/kea_dependencies.js +1 -0
- data/app/assets/javascripts/kea/kea_init.js +36 -0
- data/app/assets/javascripts/kea/models/base.js +23 -2
- data/app/assets/javascripts/kea/services/base.js +4 -2
- data/lib/kea-rails/version.rb +1 -1
- data/vendor/assets/javascripts/knockout-mapping-2.4.1.js +22 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58d1d7d43f9ccaef7c694160064429eec584d493
|
4
|
+
data.tar.gz: cabd830b52c06b0edfc7bd48095200be0b0b6bd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ca24b021f70ece37e38e008bb42b188decd8ae5cf0573e4f6e3f8b7b731499a1b21c1918e84a6689dd93de5d290a27892a46410bb6ebf5afa1277a6a1324d50
|
7
|
+
data.tar.gz: 7494ee6d540efddf85bba7ec1fa9efa0585662a98f597c22dd52c4c477fa5e8097a8a4bbdc6ba3da5830a2e5fc8286b17de8f97940b98b59ec974a44e6aa8192
|
@@ -20,5 +20,41 @@ window.kea.u = {
|
|
20
20
|
configurable: true
|
21
21
|
}
|
22
22
|
});
|
23
|
+
},
|
24
|
+
|
25
|
+
camelizeString: function camelizeString(string) {
|
26
|
+
"use strict";
|
27
|
+
|
28
|
+
var string_parts = string.toLowerCase().split('_');
|
29
|
+
|
30
|
+
for (var x = 0; x < string_parts.length; x++) {
|
31
|
+
string_parts[x] = string_parts[x].charAt(0).toUpperCase() + string_parts[x].substring(1);
|
32
|
+
}
|
33
|
+
|
34
|
+
return string_parts.join('');
|
35
|
+
},
|
36
|
+
|
37
|
+
underscoreString: function underscoreString(string) {
|
38
|
+
"use strict";
|
39
|
+
|
40
|
+
var _regex_uppercase = new RegExp('([A-Z])', 'g'),
|
41
|
+
_regex_underbar_prefix = new RegExp('^_');
|
42
|
+
|
43
|
+
string = string.replace(_regex_uppercase, '_$1');
|
44
|
+
string = string.replace(_regex_underbar_prefix, '');
|
45
|
+
|
46
|
+
return string.toLowerCase();
|
47
|
+
},
|
48
|
+
|
49
|
+
dashString: function dashString(string) {
|
50
|
+
"use strict";
|
51
|
+
|
52
|
+
var _regex_uppercase = new RegExp('([A-Z])', 'g'),
|
53
|
+
_regex_dash_prefix = new RegExp('^-');
|
54
|
+
|
55
|
+
string = string.replace(_regex_uppercase, '-$1');
|
56
|
+
string = string.replace(_regex_dash_prefix, '');
|
57
|
+
|
58
|
+
return string.toLowerCase();
|
23
59
|
}
|
24
60
|
};
|
@@ -171,7 +171,22 @@
|
|
171
171
|
this.resource_path = data.resource_path;
|
172
172
|
|
173
173
|
this._deserializableAttributes.forEach(function(name) {
|
174
|
-
|
174
|
+
var newValue = data[name];
|
175
|
+
|
176
|
+
if (this.deserializationOptions.attributes[name] &&
|
177
|
+
this.deserializationOptions.attributes[name].map === true) {
|
178
|
+
|
179
|
+
var currentValue = this[name]();
|
180
|
+
|
181
|
+
if (typeof currentValue === 'object') {
|
182
|
+
ko.mapping.fromJS(newValue, {}, currentValue);
|
183
|
+
} else {
|
184
|
+
this[name]( ko.mapping.fromJS(newValue) );
|
185
|
+
}
|
186
|
+
|
187
|
+
} else {
|
188
|
+
this[name](newValue);
|
189
|
+
}
|
175
190
|
}, this);
|
176
191
|
|
177
192
|
this.forEachAssocation('deserializable', function(attributeName, modelName) {
|
@@ -243,7 +258,13 @@
|
|
243
258
|
var value = this[name]();
|
244
259
|
|
245
260
|
if (shouldIncludeAttribute(name, value)) {
|
246
|
-
|
261
|
+
|
262
|
+
if (attributeOptions(name).map === true) {
|
263
|
+
result[name] = ko.mapping.toJS(value);
|
264
|
+
} else {
|
265
|
+
result[name] = value;
|
266
|
+
}
|
267
|
+
|
247
268
|
}
|
248
269
|
}, this);
|
249
270
|
|
@@ -161,7 +161,8 @@
|
|
161
161
|
return $.ajax({
|
162
162
|
type: 'POST',
|
163
163
|
url: path,
|
164
|
-
data: params,
|
164
|
+
data: JSON.stringify(params),
|
165
|
+
contentType: "application/json",
|
165
166
|
dataType: 'JSON'
|
166
167
|
|
167
168
|
}).then(function(data) {
|
@@ -187,7 +188,8 @@
|
|
187
188
|
return $.ajax({
|
188
189
|
type: 'PUT',
|
189
190
|
url: path,
|
190
|
-
data: params,
|
191
|
+
data: JSON.stringify(params),
|
192
|
+
contentType: "application/json",
|
191
193
|
dataType: 'JSON'
|
192
194
|
|
193
195
|
}).then(function(data) {
|
data/lib/kea-rails/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
/// Knockout Mapping plugin v2.4.1
|
2
|
+
/// (c) 2013 Steven Sanderson, Roy Jacobs - http://knockoutjs.com/
|
3
|
+
/// License: MIT (http://www.opensource.org/licenses/mit-license.php)
|
4
|
+
(function(e){"function"===typeof require&&"object"===typeof exports&&"object"===typeof module?e(require("knockout"),exports):"function"===typeof define&&define.amd?define(["knockout","exports"],e):e(ko,ko.mapping={})})(function(e,f){function y(b,c){var a,d;for(d in c)if(c.hasOwnProperty(d)&&c[d])if(a=f.getType(b[d]),d&&b[d]&&"array"!==a&&"string"!==a)y(b[d],c[d]);else if("array"===f.getType(b[d])&&"array"===f.getType(c[d])){a=b;for(var e=d,l=b[d],n=c[d],t={},g=l.length-1;0<=g;--g)t[l[g]]=l[g];for(g=
|
5
|
+
n.length-1;0<=g;--g)t[n[g]]=n[g];l=[];n=void 0;for(n in t)l.push(t[n]);a[e]=l}else b[d]=c[d]}function E(b,c){var a={};y(a,b);y(a,c);return a}function z(b,c){for(var a=E({},b),e=L.length-1;0<=e;e--){var f=L[e];a[f]&&(a[""]instanceof Object||(a[""]={}),a[""][f]=a[f],delete a[f])}c&&(a.ignore=h(c.ignore,a.ignore),a.include=h(c.include,a.include),a.copy=h(c.copy,a.copy),a.observe=h(c.observe,a.observe));a.ignore=h(a.ignore,j.ignore);a.include=h(a.include,j.include);a.copy=h(a.copy,j.copy);a.observe=h(a.observe,
|
6
|
+
j.observe);a.mappedProperties=a.mappedProperties||{};a.copiedProperties=a.copiedProperties||{};return a}function h(b,c){"array"!==f.getType(b)&&(b="undefined"===f.getType(b)?[]:[b]);"array"!==f.getType(c)&&(c="undefined"===f.getType(c)?[]:[c]);return e.utils.arrayGetDistinctValues(b.concat(c))}function F(b,c,a,d,k,l,n){var t="array"===f.getType(e.utils.unwrapObservable(c));l=l||"";if(f.isMapped(b)){var g=e.utils.unwrapObservable(b)[p];a=E(g,a)}var j=n||k,h=function(){return a[d]&&a[d].create instanceof
|
7
|
+
Function},x=function(b){var f=G,g=e.dependentObservable;e.dependentObservable=function(a,b,c){c=c||{};a&&"object"==typeof a&&(c=a);var d=c.deferEvaluation,M=!1;c.deferEvaluation=!0;a=new H(a,b,c);if(!d){var g=a,d=e.dependentObservable;e.dependentObservable=H;a=e.isWriteableObservable(g);e.dependentObservable=d;d=H({read:function(){M||(e.utils.arrayRemoveItem(f,g),M=!0);return g.apply(g,arguments)},write:a&&function(a){return g(a)},deferEvaluation:!0});d.__DO=g;a=d;f.push(a)}return a};e.dependentObservable.fn=
|
8
|
+
H.fn;e.computed=e.dependentObservable;b=e.utils.unwrapObservable(k)instanceof Array?a[d].create({data:b||c,parent:j,skip:N}):a[d].create({data:b||c,parent:j});e.dependentObservable=g;e.computed=e.dependentObservable;return b},u=function(){return a[d]&&a[d].update instanceof Function},v=function(b,f){var g={data:f||c,parent:j,target:e.utils.unwrapObservable(b)};e.isWriteableObservable(b)&&(g.observable=b);return a[d].update(g)};if(n=I.get(c))return n;d=d||"";if(t){var t=[],s=!1,m=function(a){return a};
|
9
|
+
a[d]&&a[d].key&&(m=a[d].key,s=!0);e.isObservable(b)||(b=e.observableArray([]),b.mappedRemove=function(a){var c="function"==typeof a?a:function(b){return b===m(a)};return b.remove(function(a){return c(m(a))})},b.mappedRemoveAll=function(a){var c=C(a,m);return b.remove(function(a){return-1!=e.utils.arrayIndexOf(c,m(a))})},b.mappedDestroy=function(a){var c="function"==typeof a?a:function(b){return b===m(a)};return b.destroy(function(a){return c(m(a))})},b.mappedDestroyAll=function(a){var c=C(a,m);return b.destroy(function(a){return-1!=
|
10
|
+
e.utils.arrayIndexOf(c,m(a))})},b.mappedIndexOf=function(a){var c=C(b(),m);a=m(a);return e.utils.arrayIndexOf(c,a)},b.mappedGet=function(a){return b()[b.mappedIndexOf(a)]},b.mappedCreate=function(a){if(-1!==b.mappedIndexOf(a))throw Error("There already is an object with the key that you specified.");var c=h()?x(a):a;u()&&(a=v(c,a),e.isWriteableObservable(c)?c(a):c=a);b.push(c);return c});n=C(e.utils.unwrapObservable(b),m).sort();g=C(c,m);s&&g.sort();s=e.utils.compareArrays(n,g);n={};var J,A=e.utils.unwrapObservable(c),
|
11
|
+
y={},z=!0,g=0;for(J=A.length;g<J;g++){var r=m(A[g]);if(void 0===r||r instanceof Object){z=!1;break}y[r]=A[g]}var A=[],B=0,g=0;for(J=s.length;g<J;g++){var r=s[g],q,w=l+"["+g+"]";switch(r.status){case "added":var D=z?y[r.value]:K(e.utils.unwrapObservable(c),r.value,m);q=F(void 0,D,a,d,b,w,k);h()||(q=e.utils.unwrapObservable(q));w=O(e.utils.unwrapObservable(c),D,n);q===N?B++:A[w-B]=q;n[w]=!0;break;case "retained":D=z?y[r.value]:K(e.utils.unwrapObservable(c),r.value,m);q=K(b,r.value,m);F(q,D,a,d,b,w,
|
12
|
+
k);w=O(e.utils.unwrapObservable(c),D,n);A[w]=q;n[w]=!0;break;case "deleted":q=K(b,r.value,m)}t.push({event:r.status,item:q})}b(A);a[d]&&a[d].arrayChanged&&e.utils.arrayForEach(t,function(b){a[d].arrayChanged(b.event,b.item)})}else if(P(c)){b=e.utils.unwrapObservable(b);if(!b){if(h())return s=x(),u()&&(s=v(s)),s;if(u())return v(s);b={}}u()&&(b=v(b));I.save(c,b);if(u())return b;Q(c,function(d){var f=l.length?l+"."+d:d;if(-1==e.utils.arrayIndexOf(a.ignore,f))if(-1!=e.utils.arrayIndexOf(a.copy,f))b[d]=
|
13
|
+
c[d];else if("object"!=typeof c[d]&&"array"!=typeof c[d]&&0<a.observe.length&&-1==e.utils.arrayIndexOf(a.observe,f))b[d]=c[d],a.copiedProperties[f]=!0;else{var g=I.get(c[d]),k=F(b[d],c[d],a,d,b,f,b),g=g||k;if(0<a.observe.length&&-1==e.utils.arrayIndexOf(a.observe,f))b[d]=g(),a.copiedProperties[f]=!0;else{if(e.isWriteableObservable(b[d])){if(g=e.utils.unwrapObservable(g),b[d]()!==g)b[d](g)}else g=void 0===b[d]?g:e.utils.unwrapObservable(g),b[d]=g;a.mappedProperties[f]=!0}}})}else switch(f.getType(c)){case "function":u()?
|
14
|
+
e.isWriteableObservable(c)?(c(v(c)),b=c):b=v(c):b=c;break;default:if(e.isWriteableObservable(b))return q=u()?v(b):e.utils.unwrapObservable(c),b(q),q;h()||u();b=h()?x():e.observable(e.utils.unwrapObservable(c));u()&&b(v(b))}return b}function O(b,c,a){for(var d=0,e=b.length;d<e;d++)if(!0!==a[d]&&b[d]===c)return d;return null}function R(b,c){var a;c&&(a=c(b));"undefined"===f.getType(a)&&(a=b);return e.utils.unwrapObservable(a)}function K(b,c,a){b=e.utils.unwrapObservable(b);for(var d=0,f=b.length;d<
|
15
|
+
f;d++){var l=b[d];if(R(l,a)===c)return l}throw Error("When calling ko.update*, the key '"+c+"' was not found!");}function C(b,c){return e.utils.arrayMap(e.utils.unwrapObservable(b),function(a){return c?R(a,c):a})}function Q(b,c){if("array"===f.getType(b))for(var a=0;a<b.length;a++)c(a);else for(a in b)c(a)}function P(b){var c=f.getType(b);return("object"===c||"array"===c)&&null!==b}function T(){var b=[],c=[];this.save=function(a,d){var f=e.utils.arrayIndexOf(b,a);0<=f?c[f]=d:(b.push(a),c.push(d))};
|
16
|
+
this.get=function(a){a=e.utils.arrayIndexOf(b,a);return 0<=a?c[a]:void 0}}function S(){var b={},c=function(a){var c;try{c=a}catch(e){c="$$$"}a=b[c];void 0===a&&(a=new T,b[c]=a);return a};this.save=function(a,b){c(a).save(a,b)};this.get=function(a){return c(a).get(a)}}var p="__ko_mapping__",H=e.dependentObservable,B=0,G,I,L=["create","update","key","arrayChanged"],N={},x={include:["_destroy"],ignore:[],copy:[],observe:[]},j=x;f.isMapped=function(b){return(b=e.utils.unwrapObservable(b))&&b[p]};f.fromJS=
|
17
|
+
function(b){if(0==arguments.length)throw Error("When calling ko.fromJS, pass the object you want to convert.");try{B++||(G=[],I=new S);var c,a;2==arguments.length&&(arguments[1][p]?a=arguments[1]:c=arguments[1]);3==arguments.length&&(c=arguments[1],a=arguments[2]);a&&(c=E(c,a[p]));c=z(c);var d=F(a,b,c);a&&(d=a);if(!--B)for(;G.length;){var e=G.pop();e&&(e(),e.__DO.throttleEvaluation=e.throttleEvaluation)}d[p]=E(d[p],c);return d}catch(f){throw B=0,f;}};f.fromJSON=function(b){var c=e.utils.parseJson(b);
|
18
|
+
arguments[0]=c;return f.fromJS.apply(this,arguments)};f.updateFromJS=function(){throw Error("ko.mapping.updateFromJS, use ko.mapping.fromJS instead. Please note that the order of parameters is different!");};f.updateFromJSON=function(){throw Error("ko.mapping.updateFromJSON, use ko.mapping.fromJSON instead. Please note that the order of parameters is different!");};f.toJS=function(b,c){j||f.resetDefaultOptions();if(0==arguments.length)throw Error("When calling ko.mapping.toJS, pass the object you want to convert.");
|
19
|
+
if("array"!==f.getType(j.ignore))throw Error("ko.mapping.defaultOptions().ignore should be an array.");if("array"!==f.getType(j.include))throw Error("ko.mapping.defaultOptions().include should be an array.");if("array"!==f.getType(j.copy))throw Error("ko.mapping.defaultOptions().copy should be an array.");c=z(c,b[p]);return f.visitModel(b,function(a){return e.utils.unwrapObservable(a)},c)};f.toJSON=function(b,c){var a=f.toJS(b,c);return e.utils.stringifyJson(a)};f.defaultOptions=function(){if(0<arguments.length)j=
|
20
|
+
arguments[0];else return j};f.resetDefaultOptions=function(){j={include:x.include.slice(0),ignore:x.ignore.slice(0),copy:x.copy.slice(0)}};f.getType=function(b){if(b&&"object"===typeof b){if(b.constructor===Date)return"date";if(b.constructor===Array)return"array"}return typeof b};f.visitModel=function(b,c,a){a=a||{};a.visitedObjects=a.visitedObjects||new S;var d,k=e.utils.unwrapObservable(b);if(P(k))a=z(a,k[p]),c(b,a.parentName),d="array"===f.getType(k)?[]:{};else return c(b,a.parentName);a.visitedObjects.save(b,
|
21
|
+
d);var l=a.parentName;Q(k,function(b){if(!(a.ignore&&-1!=e.utils.arrayIndexOf(a.ignore,b))){var j=k[b],g=a,h=l||"";"array"===f.getType(k)?l&&(h+="["+b+"]"):(l&&(h+="."),h+=b);g.parentName=h;if(!(-1===e.utils.arrayIndexOf(a.copy,b)&&-1===e.utils.arrayIndexOf(a.include,b)&&k[p]&&k[p].mappedProperties&&!k[p].mappedProperties[b]&&k[p].copiedProperties&&!k[p].copiedProperties[b]&&"array"!==f.getType(k)))switch(f.getType(e.utils.unwrapObservable(j))){case "object":case "array":case "undefined":g=a.visitedObjects.get(j);
|
22
|
+
d[b]="undefined"!==f.getType(g)?g:f.visitModel(j,c,a);break;default:d[b]=c(j,a.parentName)}}});return d}});
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kea-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.pre.
|
4
|
+
version: 2.0.0.pre.alpha3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan-Christian Foeh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -208,6 +208,7 @@ files:
|
|
208
208
|
- vendor/assets/javascripts/fuse.js
|
209
209
|
- vendor/assets/javascripts/jquery-ui.js
|
210
210
|
- vendor/assets/javascripts/knockout-3.3.0-debug.js
|
211
|
+
- vendor/assets/javascripts/knockout-mapping-2.4.1.js
|
211
212
|
- vendor/assets/javascripts/moment.js
|
212
213
|
- vendor/assets/javascripts/pikaday.js
|
213
214
|
- vendor/assets/stylesheets/pikaday.css
|
@@ -232,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
232
233
|
version: 1.3.1
|
233
234
|
requirements: []
|
234
235
|
rubyforge_project:
|
235
|
-
rubygems_version: 2.4.
|
236
|
+
rubygems_version: 2.4.6
|
236
237
|
signing_key:
|
237
238
|
specification_version: 4
|
238
239
|
summary: A collection of helpers for structuring Knockout.js applications
|