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 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