ende 0.5.7 → 0.5.8

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: 3775c9bfa9e0f5171ce86255676ff97e17794cf5
4
- data.tar.gz: 8cdc2f71f693fc90621da80fbe1ff439128e9bf3
3
+ metadata.gz: 1756e495999a7eef621365425f37381888a370fb
4
+ data.tar.gz: 1ed83728f33ee1e86813ba0ca2b9640adf3381eb
5
5
  SHA512:
6
- metadata.gz: 73b4a7f7aa671c6225fc1ea5a65816d6be82dbc1d9dc4e52dc272acfd5ffc1057fdc69b3775517c0bf42c645e3a8d1198e7d521c1271ab29118bd206de3fb6b6
7
- data.tar.gz: 75d3d3398b2af8bdf7ddca92adbe4b22035373c2ebf69f863a588b5163388896b6fc670004432d392307ff161b4d5fe464d28be8db7a7a1300d3f336863177d9
6
+ metadata.gz: 369b28e5bd8f7e448260328aeb66b24a219d439b84d0bd1a21f5c65e2773242713981bc26b7cb4be6f5dd215d8610972332e79025dec77e5f2d839afe972ed45
7
+ data.tar.gz: 4cb6d96391c99c100afddc52e844f5c3e6f72def8bc5fad7367576ed756b3313f17d9dbc7acb994b5ed5b249e4c0c46b438e70ebed83131319f28767946c0457
@@ -2,7 +2,7 @@
2
2
  "name": "indemma",
3
3
  "repository": "indefinido/indemma",
4
4
  "description": "Indemma (mind picture = memory), client side ES5 observable REST model",
5
- "version": "0.2.3",
5
+ "version": "0.2.4",
6
6
  "keywords": [],
7
7
  "dependencies": {
8
8
  "pluma/assimilate": "0.4.0",
@@ -1,41 +1,44 @@
1
1
  'use strict';
2
- var dirt, dirtyable, model, record;
2
+ var dirtyable, model, record;
3
3
 
4
4
  dirtyable = {
5
5
  ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
6
6
  reserved_filter: function(name) {
7
- return dirtyable.ignores.indexOf(name) === -1;
8
- },
9
- descriptor: {
10
- get: function() {
11
- return this.observed.dirty;
12
- },
13
- set: function(value) {
14
- return this.observed.dirty = value;
15
- }
7
+ return this.ignores.indexOf(name) === -1;
16
8
  },
17
9
  record: {
18
- after_initialize: function() {
19
- Object.defineProperty(this, 'dirty', dirtyable.descriptor);
20
- this.observed.dirty = !!this._id;
21
- return this.subscribe(function(added, removed, changed, past) {
22
- this.dirty || (this.dirty = !!Object.keys(changed).filter(dirtyable.reserved_filter).length);
23
- this.dirty || (this.dirty = !!Object.keys(added).filter(dirtyable.reserved_filter).length);
24
- return this.dirty || (this.dirty = !!Object.keys(removed).filter(dirtyable.reserved_filter).length);
25
- });
26
- }
10
+ after_initialize: [
11
+ function() {
12
+ return this.subscribe(function(added, removed, changed, past) {
13
+ return this.dirty || (this.dirty = !!Object.keys($.extend({}, added, removed, changed)).filter(dirtyable.reserved_filter, dirtyable).length);
14
+ });
15
+ }
16
+ ]
27
17
  }
28
18
  };
29
19
 
30
20
  if (!Object.observe) {
31
- dirt = dirtyable.descriptor.set;
32
- dirtyable.descriptor.set = function(value) {
33
- value = dirt.apply(this, arguments);
34
- this.observation.scheduler.schedule();
35
- return value;
36
- };
21
+ $.extend(dirtyable, {
22
+ descriptor: {
23
+ get: function() {
24
+ return this.observed.dirty;
25
+ },
26
+ set: function(value) {
27
+ this.observed.dirty = value;
28
+ this.observation.scheduler.schedule();
29
+ return value;
30
+ }
31
+ }
32
+ });
33
+ dirtyable.record.after_initialize.push(function() {
34
+ return Object.defineProperty(this, 'dirty', dirtyable.descriptor);
35
+ });
37
36
  }
38
37
 
38
+ dirtyable.record.after_initialize.push(function() {
39
+ return this.dirty = !!this._id;
40
+ });
41
+
39
42
  model = window.model;
40
43
 
41
44
  record = window.record;
@@ -43,7 +46,7 @@ record = window.record;
43
46
  model.dirtyable = true;
44
47
 
45
48
  record.mix(function(recordable) {
46
- return recordable.after_initialize.push(dirtyable.record.after_initialize);
49
+ return recordable.after_initialize = recordable.after_initialize.concat(dirtyable.record.after_initialize);
47
50
  });
48
51
 
49
52
  model.mix(function(modelable) {});
@@ -10,7 +10,7 @@ queryable = {
10
10
  storage: storable(),
11
11
  find: function(key) {
12
12
  if (!key) {
13
- throw new TypeError("InvalidFind: resource.find was called with a falsey value");
13
+ throw new TypeError("InvalidFind: " + (this.resource.toString()) + ".find was called with a falsey value");
14
14
  }
15
15
  return this.storage.store(key);
16
16
  },
@@ -82,6 +82,10 @@ errorsable = stampit({
82
82
  });
83
83
 
84
84
  initializers = {
85
+ ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
86
+ reserved_filter: function(name) {
87
+ return this.ignores.indexOf(name) === -1;
88
+ },
85
89
  define_triggers: function() {
86
90
  this.errors = errorsable({
87
91
  model: model[this.resource]
@@ -93,8 +97,11 @@ initializers = {
93
97
  });
94
98
  this.validated = false;
95
99
  this.validation = null;
96
- this.subscribe('dirty', function(value) {
97
- return value && (this.validated = false);
100
+ this.subscribe(function(added, removed, changed) {
101
+ var modified;
102
+
103
+ modified = !!Object.keys($.extend(added, removed, changed)).filter(initializers.reserved_filter, initializers).length;
104
+ return modified && (this.validated = false);
98
105
  });
99
106
  return Object.defineProperty(this, 'valid', {
100
107
  get: function() {
@@ -188,13 +195,7 @@ extensions = {
188
195
  this.validation.done(doned);
189
196
  this.validation.fail(failed);
190
197
  return this.validation.done(function(record) {
191
- var old_dirty;
192
-
193
- old_dirty = record.dirty;
194
- record.dirty = null;
195
- record.validated || (record.validated = true);
196
- record.observed.dirty = old_dirty;
197
- return record;
198
+ return record.validated || (record.validated = true);
198
199
  });
199
200
  }
200
201
  }
data/lib/ende/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ende
2
- VERSION = "0.5.7"
2
+ VERSION = "0.5.8"
3
3
  end
@@ -13925,104 +13925,6 @@ require.register("paulmillr~es6-shim@0.14.0", function (exports, module) {
13925
13925
  })();
13926
13926
 
13927
13927
 
13928
- });
13929
-
13930
- require.register("component~trim@0.0.1", function (exports, module) {
13931
-
13932
- exports = module.exports = trim;
13933
-
13934
- function trim(str){
13935
- if (str.trim) return str.trim();
13936
- return str.replace(/^\s*|\s*$/g, '');
13937
- }
13938
-
13939
- exports.left = function(str){
13940
- if (str.trimLeft) return str.trimLeft();
13941
- return str.replace(/^\s*/, '');
13942
- };
13943
-
13944
- exports.right = function(str){
13945
- if (str.trimRight) return str.trimRight();
13946
- return str.replace(/\s*$/, '');
13947
- };
13948
-
13949
- });
13950
-
13951
- require.register("component~querystring@1.3.0", function (exports, module) {
13952
-
13953
- /**
13954
- * Module dependencies.
13955
- */
13956
-
13957
- var encode = encodeURIComponent;
13958
- var decode = decodeURIComponent;
13959
- var trim = require("component~trim@0.0.1");
13960
- var type = require("component~type@1.0.0");
13961
-
13962
- /**
13963
- * Parse the given query `str`.
13964
- *
13965
- * @param {String} str
13966
- * @return {Object}
13967
- * @api public
13968
- */
13969
-
13970
- exports.parse = function(str){
13971
- if ('string' != typeof str) return {};
13972
-
13973
- str = trim(str);
13974
- if ('' == str) return {};
13975
- if ('?' == str.charAt(0)) str = str.slice(1);
13976
-
13977
- var obj = {};
13978
- var pairs = str.split('&');
13979
- for (var i = 0; i < pairs.length; i++) {
13980
- var parts = pairs[i].split('=');
13981
- var key = decode(parts[0]);
13982
- var m;
13983
-
13984
- if (m = /(\w+)\[(\d+)\]/.exec(key)) {
13985
- obj[m[1]] = obj[m[1]] || [];
13986
- obj[m[1]][m[2]] = decode(parts[1]);
13987
- continue;
13988
- }
13989
-
13990
- obj[parts[0]] = null == parts[1]
13991
- ? ''
13992
- : decode(parts[1]);
13993
- }
13994
-
13995
- return obj;
13996
- };
13997
-
13998
- /**
13999
- * Stringify the given `obj`.
14000
- *
14001
- * @param {Object} obj
14002
- * @return {String}
14003
- * @api public
14004
- */
14005
-
14006
- exports.stringify = function(obj){
14007
- if (!obj) return '';
14008
- var pairs = [];
14009
-
14010
- for (var key in obj) {
14011
- var value = obj[key];
14012
-
14013
- if ('array' == type(value)) {
14014
- for (var i = 0; i < value.length; ++i) {
14015
- pairs.push(encode(key + '[' + i + ']') + '=' + encode(value[i]));
14016
- }
14017
- continue;
14018
- }
14019
-
14020
- pairs.push(encode(key) + '=' + encode(obj[key]));
14021
- }
14022
-
14023
- return pairs.join('&');
14024
- };
14025
-
14026
13928
  });
14027
13929
 
14028
13930
  require.register("mikeric~rivets@v0.5.12", function (exports, module) {
@@ -15047,6 +14949,104 @@ require.register("mikeric~rivets@v0.5.12", function (exports, module) {
15047
14949
 
15048
14950
  });
15049
14951
 
14952
+ require.register("component~trim@0.0.1", function (exports, module) {
14953
+
14954
+ exports = module.exports = trim;
14955
+
14956
+ function trim(str){
14957
+ if (str.trim) return str.trim();
14958
+ return str.replace(/^\s*|\s*$/g, '');
14959
+ }
14960
+
14961
+ exports.left = function(str){
14962
+ if (str.trimLeft) return str.trimLeft();
14963
+ return str.replace(/^\s*/, '');
14964
+ };
14965
+
14966
+ exports.right = function(str){
14967
+ if (str.trimRight) return str.trimRight();
14968
+ return str.replace(/\s*$/, '');
14969
+ };
14970
+
14971
+ });
14972
+
14973
+ require.register("component~querystring@1.3.0", function (exports, module) {
14974
+
14975
+ /**
14976
+ * Module dependencies.
14977
+ */
14978
+
14979
+ var encode = encodeURIComponent;
14980
+ var decode = decodeURIComponent;
14981
+ var trim = require("component~trim@0.0.1");
14982
+ var type = require("component~type@1.0.0");
14983
+
14984
+ /**
14985
+ * Parse the given query `str`.
14986
+ *
14987
+ * @param {String} str
14988
+ * @return {Object}
14989
+ * @api public
14990
+ */
14991
+
14992
+ exports.parse = function(str){
14993
+ if ('string' != typeof str) return {};
14994
+
14995
+ str = trim(str);
14996
+ if ('' == str) return {};
14997
+ if ('?' == str.charAt(0)) str = str.slice(1);
14998
+
14999
+ var obj = {};
15000
+ var pairs = str.split('&');
15001
+ for (var i = 0; i < pairs.length; i++) {
15002
+ var parts = pairs[i].split('=');
15003
+ var key = decode(parts[0]);
15004
+ var m;
15005
+
15006
+ if (m = /(\w+)\[(\d+)\]/.exec(key)) {
15007
+ obj[m[1]] = obj[m[1]] || [];
15008
+ obj[m[1]][m[2]] = decode(parts[1]);
15009
+ continue;
15010
+ }
15011
+
15012
+ obj[parts[0]] = null == parts[1]
15013
+ ? ''
15014
+ : decode(parts[1]);
15015
+ }
15016
+
15017
+ return obj;
15018
+ };
15019
+
15020
+ /**
15021
+ * Stringify the given `obj`.
15022
+ *
15023
+ * @param {Object} obj
15024
+ * @return {String}
15025
+ * @api public
15026
+ */
15027
+
15028
+ exports.stringify = function(obj){
15029
+ if (!obj) return '';
15030
+ var pairs = [];
15031
+
15032
+ for (var key in obj) {
15033
+ var value = obj[key];
15034
+
15035
+ if ('array' == type(value)) {
15036
+ for (var i = 0; i < value.length; ++i) {
15037
+ pairs.push(encode(key + '[' + i + ']') + '=' + encode(value[i]));
15038
+ }
15039
+ continue;
15040
+ }
15041
+
15042
+ pairs.push(encode(key) + '=' + encode(obj[key]));
15043
+ }
15044
+
15045
+ return pairs.join('&');
15046
+ };
15047
+
15048
+ });
15049
+
15050
15050
  require.register("indefinido~observable@es6-modules", function (exports, module) {
15051
15051
  module.exports = require("indefinido~observable@es6-modules/lib/observable.js");
15052
15052
 
@@ -18396,43 +18396,46 @@ model.associable = {
18396
18396
 
18397
18397
  require.register("indefinido~indemma@master/lib/record/dirtyable.js", function (exports, module) {
18398
18398
  'use strict';
18399
- var dirt, dirtyable, model, record;
18399
+ var dirtyable, model, record;
18400
18400
 
18401
18401
  dirtyable = {
18402
18402
  ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
18403
18403
  reserved_filter: function(name) {
18404
- return dirtyable.ignores.indexOf(name) === -1;
18405
- },
18406
- descriptor: {
18407
- get: function() {
18408
- return this.observed.dirty;
18409
- },
18410
- set: function(value) {
18411
- return this.observed.dirty = value;
18412
- }
18404
+ return this.ignores.indexOf(name) === -1;
18413
18405
  },
18414
18406
  record: {
18415
- after_initialize: function() {
18416
- Object.defineProperty(this, 'dirty', dirtyable.descriptor);
18417
- this.observed.dirty = !!this._id;
18418
- return this.subscribe(function(added, removed, changed, past) {
18419
- this.dirty || (this.dirty = !!Object.keys(changed).filter(dirtyable.reserved_filter).length);
18420
- this.dirty || (this.dirty = !!Object.keys(added).filter(dirtyable.reserved_filter).length);
18421
- return this.dirty || (this.dirty = !!Object.keys(removed).filter(dirtyable.reserved_filter).length);
18422
- });
18423
- }
18407
+ after_initialize: [
18408
+ function() {
18409
+ return this.subscribe(function(added, removed, changed, past) {
18410
+ return this.dirty || (this.dirty = !!Object.keys($.extend({}, added, removed, changed)).filter(dirtyable.reserved_filter, dirtyable).length);
18411
+ });
18412
+ }
18413
+ ]
18424
18414
  }
18425
18415
  };
18426
18416
 
18427
18417
  if (!Object.observe) {
18428
- dirt = dirtyable.descriptor.set;
18429
- dirtyable.descriptor.set = function(value) {
18430
- value = dirt.apply(this, arguments);
18431
- this.observation.scheduler.schedule();
18432
- return value;
18433
- };
18418
+ $.extend(dirtyable, {
18419
+ descriptor: {
18420
+ get: function() {
18421
+ return this.observed.dirty;
18422
+ },
18423
+ set: function(value) {
18424
+ this.observed.dirty = value;
18425
+ this.observation.scheduler.schedule();
18426
+ return value;
18427
+ }
18428
+ }
18429
+ });
18430
+ dirtyable.record.after_initialize.push(function() {
18431
+ return Object.defineProperty(this, 'dirty', dirtyable.descriptor);
18432
+ });
18434
18433
  }
18435
18434
 
18435
+ dirtyable.record.after_initialize.push(function() {
18436
+ return this.dirty = !!this._id;
18437
+ });
18438
+
18436
18439
  model = window.model;
18437
18440
 
18438
18441
  record = window.record;
@@ -18440,7 +18443,7 @@ record = window.record;
18440
18443
  model.dirtyable = true;
18441
18444
 
18442
18445
  record.mix(function(recordable) {
18443
- return recordable.after_initialize.push(dirtyable.record.after_initialize);
18446
+ return recordable.after_initialize = recordable.after_initialize.concat(dirtyable.record.after_initialize);
18444
18447
  });
18445
18448
 
18446
18449
  model.mix(function(modelable) {});
@@ -18538,7 +18541,7 @@ queryable = {
18538
18541
  storage: storable(),
18539
18542
  find: function(key) {
18540
18543
  if (!key) {
18541
- throw new TypeError("InvalidFind: resource.find was called with a falsey value");
18544
+ throw new TypeError("InvalidFind: " + (this.resource.toString()) + ".find was called with a falsey value");
18542
18545
  }
18543
18546
  return this.storage.store(key);
18544
18547
  },
@@ -19675,6 +19678,10 @@ errorsable = stampit({
19675
19678
  });
19676
19679
 
19677
19680
  initializers = {
19681
+ ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
19682
+ reserved_filter: function(name) {
19683
+ return this.ignores.indexOf(name) === -1;
19684
+ },
19678
19685
  define_triggers: function() {
19679
19686
  this.errors = errorsable({
19680
19687
  model: model[this.resource]
@@ -19686,8 +19693,11 @@ initializers = {
19686
19693
  });
19687
19694
  this.validated = false;
19688
19695
  this.validation = null;
19689
- this.subscribe('dirty', function(value) {
19690
- return value && (this.validated = false);
19696
+ this.subscribe(function(added, removed, changed) {
19697
+ var modified;
19698
+
19699
+ modified = !!Object.keys($.extend(added, removed, changed)).filter(initializers.reserved_filter, initializers).length;
19700
+ return modified && (this.validated = false);
19691
19701
  });
19692
19702
  return Object.defineProperty(this, 'valid', {
19693
19703
  get: function() {
@@ -19781,13 +19791,7 @@ extensions = {
19781
19791
  this.validation.done(doned);
19782
19792
  this.validation.fail(failed);
19783
19793
  return this.validation.done(function(record) {
19784
- var old_dirty;
19785
-
19786
- old_dirty = record.dirty;
19787
- record.dirty = null;
19788
- record.validated || (record.validated = true);
19789
- record.observed.dirty = old_dirty;
19790
- return record;
19794
+ return record.validated || (record.validated = true);
19791
19795
  });
19792
19796
  }
19793
19797
  }
@@ -21296,31 +21300,6 @@ ClassList.prototype.contains = function(name){
21296
21300
 
21297
21301
  });
21298
21302
 
21299
- require.register("component~query@0.0.1", function (exports, module) {
21300
-
21301
- function one(selector, el) {
21302
- return el.querySelector(selector);
21303
- }
21304
-
21305
- exports = module.exports = function(selector, el){
21306
- el = el || document;
21307
- return one(selector, el);
21308
- };
21309
-
21310
- exports.all = function(selector, el){
21311
- el = el || document;
21312
- return el.querySelectorAll(selector);
21313
- };
21314
-
21315
- exports.engine = function(obj){
21316
- if (!obj.one) throw new Error('.one callback required');
21317
- if (!obj.all) throw new Error('.all callback required');
21318
- one = obj.one;
21319
- exports.all = obj.all;
21320
- };
21321
-
21322
- });
21323
-
21324
21303
  require.register("component~emitter@1.0.0", function (exports, module) {
21325
21304
 
21326
21305
  /**
@@ -21481,6 +21460,31 @@ Emitter.prototype.hasListeners = function(event){
21481
21460
 
21482
21461
  });
21483
21462
 
21463
+ require.register("component~query@0.0.1", function (exports, module) {
21464
+
21465
+ function one(selector, el) {
21466
+ return el.querySelector(selector);
21467
+ }
21468
+
21469
+ exports = module.exports = function(selector, el){
21470
+ el = el || document;
21471
+ return one(selector, el);
21472
+ };
21473
+
21474
+ exports.all = function(selector, el){
21475
+ el = el || document;
21476
+ return el.querySelectorAll(selector);
21477
+ };
21478
+
21479
+ exports.engine = function(obj){
21480
+ if (!obj.one) throw new Error('.one callback required');
21481
+ if (!obj.all) throw new Error('.all callback required');
21482
+ one = obj.one;
21483
+ exports.all = obj.all;
21484
+ };
21485
+
21486
+ });
21487
+
21484
21488
  require.register("component~matches-selector@0.1.4", function (exports, module) {
21485
21489
  /**
21486
21490
  * Module dependencies.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ende
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heitor Salazar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-23 00:00:00.000000000 Z
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler