ende 0.4.4 → 0.4.5
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/component.json +2 -2
- data/lib/assets/javascripts/config/load_components.js.coffee +1 -0
- data/lib/assets/javascripts/ende.js.coffee +4 -3
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/ende_build.js +206 -235
- data/vendor/components/indefinido-indemma/build/development.js +73 -25956
- data/vendor/components/indefinido-indemma/build/release.js +11 -26
- data/vendor/components/indefinido-indemma/build/test.js +73 -25956
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +204 -192
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +3 -1
- metadata +3 -3
@@ -1,212 +1,224 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
attribute_name = this.human_attribute_name(attribute_name);
|
38
|
-
return "" + attribute_name + " " + options.server_message + ".";
|
39
|
-
}
|
40
|
-
},
|
41
|
-
type: function(attribute_name, options) {
|
1
|
+
var errorsable, extensions, initializers, manager, messages, observable, root, stampit, type;
|
2
|
+
|
3
|
+
require('./translationable');
|
4
|
+
|
5
|
+
root = typeof exports !== "undefined" && exports !== null ? exports : this;
|
6
|
+
|
7
|
+
stampit = require('../../vendor/stampit');
|
8
|
+
|
9
|
+
observable = require('observable').mixin;
|
10
|
+
|
11
|
+
type = require('type');
|
12
|
+
|
13
|
+
messages = {
|
14
|
+
blank: function(attribute_name) {
|
15
|
+
attribute_name = this.human_attribute_name(attribute_name);
|
16
|
+
return "O campo " + attribute_name + " não pode ficar em branco.";
|
17
|
+
},
|
18
|
+
cpf: function(attribute_name) {
|
19
|
+
attribute_name = this.human_attribute_name(attribute_name);
|
20
|
+
return "O campo " + attribute_name + " não está válido.";
|
21
|
+
},
|
22
|
+
confirmation: function(attribute_name) {
|
23
|
+
var confirmation_attribute_name;
|
24
|
+
|
25
|
+
confirmation_attribute_name = this.human_attribute_name(attribute_name);
|
26
|
+
attribute_name = this.human_attribute_name(attribute_name.replace('_confirmation', ''));
|
27
|
+
return "O campo " + attribute_name + " não está de acordo com o campo " + confirmation_attribute_name + ".";
|
28
|
+
},
|
29
|
+
associated: function(attribute_name) {
|
30
|
+
attribute_name = this.human_attribute_name(attribute_name);
|
31
|
+
return "O registro associado " + attribute_name + " não é válido.";
|
32
|
+
},
|
33
|
+
server: function(attribute_name, options) {
|
34
|
+
if (attribute_name === 'base') {
|
35
|
+
return options.server_message;
|
36
|
+
} else {
|
42
37
|
attribute_name = this.human_attribute_name(attribute_name);
|
43
|
-
return "
|
38
|
+
return "" + attribute_name + " " + options.server_message + ".";
|
44
39
|
}
|
45
|
-
}
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
push: Array.prototype.push,
|
71
|
-
splice: Array.prototype.splice,
|
72
|
-
indexOf: Array.prototype.indexOf
|
73
|
-
}, {
|
74
|
-
model: null,
|
75
|
-
messages: null,
|
76
|
-
length: 0
|
77
|
-
}, function() {
|
78
|
-
this.messages = {};
|
79
|
-
return this;
|
80
|
-
});
|
81
|
-
|
82
|
-
initializers = {
|
83
|
-
define_triggers: function() {
|
84
|
-
this.errors = errorsable({
|
85
|
-
model: model[this.resource]
|
86
|
-
});
|
87
|
-
this.before('save', function() {
|
88
|
-
if (this.save) return this.validate();
|
89
|
-
});
|
90
|
-
this.validated = false;
|
91
|
-
this.subscribe('dirty', function(value) {
|
92
|
-
return value && (this.validated = false);
|
93
|
-
});
|
94
|
-
return Object.defineProperty(this, 'valid', {
|
95
|
-
get: function() {
|
96
|
-
this.validate();
|
97
|
-
if (this.validation.state() === 'resolved') {
|
98
|
-
return !this.errors.length;
|
99
|
-
} else {
|
100
|
-
return null;
|
101
|
-
}
|
102
|
-
},
|
103
|
-
set: function() {
|
104
|
-
throw new TypeError("You can't set the value for the valid property.");
|
105
|
-
},
|
106
|
-
enumerable: false
|
107
|
-
});
|
108
|
-
},
|
109
|
-
create_validators: function(definitions) {
|
110
|
-
var definition, name, validator, validator_options, _ref, _results;
|
111
|
-
this.validators = [];
|
112
|
-
_ref = manager.validators;
|
40
|
+
},
|
41
|
+
type: function(attribute_name, options) {
|
42
|
+
attribute_name = this.human_attribute_name(attribute_name);
|
43
|
+
return "O campo " + attribute_name + " não está válido.";
|
44
|
+
}
|
45
|
+
};
|
46
|
+
|
47
|
+
errorsable = stampit({
|
48
|
+
add: function(attribute_name, message_key, options) {
|
49
|
+
var translator;
|
50
|
+
|
51
|
+
this.push([attribute_name, message_key, options]);
|
52
|
+
this.messages[attribute_name] = '';
|
53
|
+
translator = messages[message_key];
|
54
|
+
if (translator != null) {
|
55
|
+
return this.messages[attribute_name] += translator.call(this.model, attribute_name, options);
|
56
|
+
} else {
|
57
|
+
return this.messages[attribute_name] += message_key;
|
58
|
+
}
|
59
|
+
},
|
60
|
+
clear: function() {
|
61
|
+
var attribute_name, _results;
|
62
|
+
|
63
|
+
if (this.length) {
|
64
|
+
this.length = 0;
|
113
65
|
_results = [];
|
114
|
-
for (
|
115
|
-
|
116
|
-
definition = definitions[validator.definition_key];
|
117
|
-
if (definition) {
|
118
|
-
if (type(definition) !== 'array') definition = [definition];
|
119
|
-
_results.push((function() {
|
120
|
-
var _i, _len, _results2;
|
121
|
-
_results2 = [];
|
122
|
-
for (_i = 0, _len = definition.length; _i < _len; _i++) {
|
123
|
-
validator_options = definition[_i];
|
124
|
-
if (type(validator_options) !== 'object') {
|
125
|
-
validator_options = {
|
126
|
-
attribute_name: validator_options
|
127
|
-
};
|
128
|
-
}
|
129
|
-
validator_options.model = this;
|
130
|
-
this.validators.push(validator(validator_options));
|
131
|
-
_results2.push(delete definitions[validator.definition_key]);
|
132
|
-
}
|
133
|
-
return _results2;
|
134
|
-
}).call(this));
|
135
|
-
} else {
|
136
|
-
_results.push(void 0);
|
137
|
-
}
|
66
|
+
for (attribute_name in this.messages) {
|
67
|
+
_results.push(this.messages[attribute_name] = null);
|
138
68
|
}
|
139
69
|
return _results;
|
140
70
|
}
|
141
|
-
}
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
71
|
+
},
|
72
|
+
push: Array.prototype.push,
|
73
|
+
splice: Array.prototype.splice,
|
74
|
+
indexOf: Array.prototype.indexOf
|
75
|
+
}, {
|
76
|
+
model: null,
|
77
|
+
messages: null,
|
78
|
+
length: 0
|
79
|
+
}, function() {
|
80
|
+
this.messages = {};
|
81
|
+
return this;
|
82
|
+
});
|
83
|
+
|
84
|
+
initializers = {
|
85
|
+
define_triggers: function() {
|
86
|
+
this.errors = errorsable({
|
87
|
+
model: model[this.resource]
|
88
|
+
});
|
89
|
+
this.before('save', function() {
|
90
|
+
if (this.save) {
|
91
|
+
return this.validate();
|
92
|
+
}
|
93
|
+
});
|
94
|
+
this.validated = false;
|
95
|
+
this.subscribe('dirty', function(value) {
|
96
|
+
return value && (this.validated = false);
|
97
|
+
});
|
98
|
+
return Object.defineProperty(this, 'valid', {
|
99
|
+
get: function() {
|
100
|
+
this.validate();
|
101
|
+
if (this.validation.state() === 'resolved') {
|
102
|
+
return !this.errors.length;
|
103
|
+
} else {
|
104
|
+
return null;
|
158
105
|
}
|
159
|
-
validation = jQuery.when.apply(jQuery, results);
|
160
|
-
validation.done(doned);
|
161
|
-
validation.fail(failed);
|
162
|
-
return validation;
|
163
106
|
},
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
107
|
+
set: function() {
|
108
|
+
throw new TypeError("You can't set the value for the valid property.");
|
109
|
+
},
|
110
|
+
enumerable: false
|
111
|
+
});
|
112
|
+
},
|
113
|
+
create_validators: function(definitions) {
|
114
|
+
var definition, name, validator, validator_options, _ref, _results;
|
115
|
+
|
116
|
+
this.validators = [];
|
117
|
+
_ref = manager.validators;
|
118
|
+
_results = [];
|
119
|
+
for (name in _ref) {
|
120
|
+
validator = _ref[name];
|
121
|
+
definition = definitions[validator.definition_key];
|
122
|
+
if (definition) {
|
123
|
+
if (type(definition) !== 'array') {
|
124
|
+
definition = [definition];
|
173
125
|
}
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
126
|
+
_results.push((function() {
|
127
|
+
var _i, _len, _results1;
|
128
|
+
|
129
|
+
_results1 = [];
|
130
|
+
for (_i = 0, _len = definition.length; _i < _len; _i++) {
|
131
|
+
validator_options = definition[_i];
|
132
|
+
if (type(validator_options) !== 'object') {
|
133
|
+
validator_options = {
|
134
|
+
attribute_name: validator_options
|
135
|
+
};
|
136
|
+
}
|
137
|
+
validator_options.model = this;
|
138
|
+
this.validators.push(validator(validator_options));
|
139
|
+
_results1.push(delete definitions[validator.definition_key]);
|
140
|
+
}
|
141
|
+
return _results1;
|
142
|
+
}).call(this));
|
143
|
+
} else {
|
144
|
+
_results.push(void 0);
|
184
145
|
}
|
185
146
|
}
|
186
|
-
|
147
|
+
return _results;
|
148
|
+
}
|
149
|
+
};
|
150
|
+
|
151
|
+
extensions = {
|
152
|
+
model: {
|
153
|
+
validators: null
|
154
|
+
},
|
155
|
+
record: {
|
156
|
+
validate_attribute: function(attribute, doned, failed) {
|
157
|
+
var results, validation, validator, _i, _len, _ref;
|
158
|
+
|
159
|
+
this.errors.messages[attribute] = null;
|
160
|
+
results = [this, attribute];
|
161
|
+
_ref = model[this.resource.toString()].validators;
|
162
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
163
|
+
validator = _ref[_i];
|
164
|
+
if (validator.attribute_name === attribute) {
|
165
|
+
results.push(validator.validate_each(this, validator.attribute_name, this[validator.attribute_name]));
|
166
|
+
}
|
167
|
+
}
|
168
|
+
validation = jQuery.when.apply(jQuery, results);
|
169
|
+
validation.done(doned);
|
170
|
+
validation.fail(failed);
|
171
|
+
return validation;
|
172
|
+
},
|
173
|
+
validate: function(doned, failed) {
|
174
|
+
var results, validator, _i, _len, _ref;
|
187
175
|
|
188
|
-
|
189
|
-
|
190
|
-
|
176
|
+
if (this.validated && !this.dirty) {
|
177
|
+
return this.validation;
|
178
|
+
}
|
179
|
+
this.errors.clear();
|
180
|
+
results = [this];
|
181
|
+
_ref = model[this.resource.toString()].validators;
|
182
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
183
|
+
validator = _ref[_i];
|
184
|
+
results.push(validator.validate_each(this, validator.attribute_name, this[validator.attribute_name]));
|
185
|
+
}
|
186
|
+
this.validation = jQuery.when.apply(jQuery, results);
|
187
|
+
this.validation.done(doned);
|
188
|
+
this.validation.fail(failed);
|
189
|
+
return this.validation.done(function(record) {
|
190
|
+
var old_dirty;
|
191
|
+
|
192
|
+
old_dirty = record.dirty;
|
193
|
+
record.dirty = null;
|
194
|
+
record.validated || (record.validated = true);
|
195
|
+
record.dirty = old_dirty;
|
196
|
+
return record;
|
197
|
+
});
|
198
|
+
}
|
199
|
+
}
|
200
|
+
};
|
191
201
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
modelable.after_mix.unshift(initializers.create_validators);
|
196
|
-
modelable.record.after_initialize.push(initializers.define_triggers);
|
197
|
-
return model.validators = manager.validators;
|
198
|
-
});
|
202
|
+
manager = {
|
203
|
+
validators: {}
|
204
|
+
};
|
199
205
|
|
200
|
-
|
206
|
+
model.mix(function(modelable) {
|
207
|
+
jQuery.extend(modelable, extensions.model);
|
208
|
+
jQuery.extend(modelable.record, extensions.record);
|
209
|
+
modelable.after_mix.unshift(initializers.create_validators);
|
210
|
+
modelable.record.after_initialize.push(initializers.define_triggers);
|
211
|
+
return model.validators = manager.validators;
|
212
|
+
});
|
201
213
|
|
202
|
-
|
214
|
+
manager.validators.confirmation = require('./validations/confirmation');
|
203
215
|
|
204
|
-
|
216
|
+
manager.validators.associated = require('./validations/associated');
|
205
217
|
|
206
|
-
|
218
|
+
manager.validators.presence = require('./validations/presence');
|
207
219
|
|
208
|
-
|
220
|
+
manager.validators.remote = require('./validations/remote');
|
209
221
|
|
210
|
-
|
222
|
+
manager.validators.type = require('./validations/type');
|
211
223
|
|
212
|
-
|
224
|
+
manager.validators.cpf = require('./validations/cpf');
|
@@ -173,7 +173,7 @@ extensions =
|
|
173
173
|
@validation.fail failed
|
174
174
|
|
175
175
|
# TODO store this callback
|
176
|
-
@validation.
|
176
|
+
@validation.done (record) ->
|
177
177
|
# Disable dirty checking to prevent validation believe that
|
178
178
|
# the model values has changed
|
179
179
|
old_dirty = record.dirty
|
@@ -184,6 +184,8 @@ extensions =
|
|
184
184
|
# Restore dirty state
|
185
185
|
record.dirty = old_dirty
|
186
186
|
|
187
|
+
record
|
188
|
+
|
187
189
|
|
188
190
|
# Validators management
|
189
191
|
manager =
|
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.4.
|
4
|
+
version: 0.4.5
|
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-03-
|
11
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -389,7 +389,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
389
389
|
version: '0'
|
390
390
|
requirements: []
|
391
391
|
rubyforge_project:
|
392
|
-
rubygems_version: 2.
|
392
|
+
rubygems_version: 2.0.3
|
393
393
|
signing_key:
|
394
394
|
specification_version: 4
|
395
395
|
summary: Endë (core, middle) a web application engine for rails with aurajs.
|