ende 0.5.7 → 0.5.8

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