kea-rails 2.0.0.pre.alpha2 → 2.0.0.pre.alpha3

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: 5b12b0bc6e3f3b5f8b20b62b358b442d693509fe
4
- data.tar.gz: e9173287dc4924671a300b414d93d1fe496e1cd4
3
+ metadata.gz: 58d1d7d43f9ccaef7c694160064429eec584d493
4
+ data.tar.gz: cabd830b52c06b0edfc7bd48095200be0b0b6bd5
5
5
  SHA512:
6
- metadata.gz: 3ad4d41e85feb75d4d6b7b1450491260e659a29fd35b81fdc73d6c2f1de157b59c4747b70e45a35b94e0277e95da5a93c3be53a5098b8f156c414d080027ea8d
7
- data.tar.gz: d3da1ac2dc35410a95b31ff8680dfd85834b549407443e1644660e86867a0879d3cd950cc415318560e1316b66e48bcb1a91968b146bc6a2518259841691232a
6
+ metadata.gz: 5ca24b021f70ece37e38e008bb42b188decd8ae5cf0573e4f6e3f8b7b731499a1b21c1918e84a6689dd93de5d290a27892a46410bb6ebf5afa1277a6a1324d50
7
+ data.tar.gz: 7494ee6d540efddf85bba7ec1fa9efa0585662a98f597c22dd52c4c477fa5e8097a8a4bbdc6ba3da5830a2e5fc8286b17de8f97940b98b59ec974a44e6aa8192
@@ -1,4 +1,5 @@
1
1
  //= require knockout-3.3.0-debug
2
+ //= require knockout-mapping-2.4.1
2
3
 
3
4
  //= require_directory ../../../../vendor/assets/javascripts/.
4
5
 
@@ -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
- this[name]( data[name] );
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
- result[name] = value;
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) {
@@ -1,3 +1,3 @@
1
1
  module Kea
2
- VERSION = "2.0.0-alpha2"
2
+ VERSION = "2.0.0-alpha3"
3
3
  end
@@ -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.alpha2
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-12 00:00:00.000000000 Z
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.5
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