ende 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/assets/javascripts/aura/extensions/devise.js.coffee +2 -2
- data/lib/assets/javascripts/widgets/viewer/main.js.coffee +1 -1
- data/lib/ende/version.rb +1 -1
- data/vendor/assets/components/build.js +638 -133
- data/vendor/components/indefinido-indemma/.gitignore +14 -0
- data/vendor/components/indefinido-indemma/.gitignore~ +2 -0
- data/vendor/components/indefinido-indemma/.ruby-gemset +1 -0
- data/vendor/components/indefinido-indemma/.ruby-version +1 -0
- data/vendor/components/indefinido-indemma/Gemfile +13 -0
- data/vendor/components/indefinido-indemma/Guardfile +39 -0
- data/vendor/components/indefinido-indemma/History.md +0 -0
- data/vendor/components/indefinido-indemma/Readme.md +447 -0
- data/vendor/components/indefinido-indemma/build/development.js +340 -0
- data/vendor/components/indefinido-indemma/build/release.js +22039 -0
- data/vendor/components/indefinido-indemma/build/test.js +22039 -0
- data/vendor/components/indefinido-indemma/component.json +7 -3
- data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/component.json +18 -0
- data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/index.js +110 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/component.json +47 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/index.js +1 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/assertion.js +130 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/core/assertions.js +1270 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/assert.js +1080 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/expect.js +12 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/should.js +76 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +94 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addMethod.js +37 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addProperty.js +40 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/eql.js +129 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/flag.js +32 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getActual.js +19 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +25 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getMessage.js +49 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getName.js +20 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getPathValue.js +102 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getProperties.js +35 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/index.js +108 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/inspect.js +320 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/objDisplay.js +48 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +51 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +54 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/test.js +26 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/transferFlags.js +44 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/type.js +45 -0
- data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai.js +80 -0
- data/vendor/components/indefinido-indemma/components/component-bind/component.json +14 -0
- data/vendor/components/indefinido-indemma/components/component-bind/index.js +24 -0
- data/vendor/components/indefinido-indemma/components/component-jquery/component.json +14 -0
- data/vendor/components/indefinido-indemma/components/component-jquery/index.js +9601 -0
- data/vendor/components/indefinido-indemma/components/component-type/component.json +18 -0
- data/vendor/components/indefinido-indemma/components/component-type/index.js +32 -0
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/component.json +21 -0
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/index.js +1 -0
- data/vendor/components/indefinido-indemma/components/indefinido-advisable/lib/advisable.js +60 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/component.json +25 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/components/cjohansen-sinon/sinon.js +4290 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/index.js +1 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/adapters/rivets.js +26 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/observable.js +323 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors-legacy.js +92 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors.js +173 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/array.indexOf.js +8 -0
- data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/object.create.js +77 -0
- data/vendor/components/indefinido-indemma/components/kapit-observe-utils/component.json +13 -0
- data/vendor/components/indefinido-indemma/components/paulmillr-es6-shim/component.json +17 -0
- data/vendor/components/indefinido-indemma/components/paulmillr-es6-shim/es6-shim.js +996 -0
- data/vendor/components/indefinido-indemma/components/pluma-assimilate/component.json +25 -0
- data/vendor/components/indefinido-indemma/components/pluma-assimilate/dist/assimilate.js +127 -0
- data/vendor/components/indefinido-indemma/karma.conf.js +86 -0
- data/vendor/components/indefinido-indemma/lib/record/associable.js +229 -82
- data/vendor/components/indefinido-indemma/lib/record/errors.js +1 -0
- data/vendor/components/indefinido-indemma/lib/record/persistable.js +32 -0
- data/vendor/components/indefinido-indemma/lib/record/queryable.js +32 -0
- data/vendor/components/indefinido-indemma/lib/record/resource.js +12 -4
- data/vendor/components/indefinido-indemma/lib/record/rest.js +1 -1
- data/vendor/components/indefinido-indemma/lib/record/restfulable.js +38 -27
- data/vendor/components/indefinido-indemma/lib/record/scopable.js +15 -2
- data/vendor/components/indefinido-indemma/lib/record/storable.js +48 -0
- data/vendor/components/indefinido-indemma/lib/record/validatable.js +10 -5
- data/vendor/components/indefinido-indemma/lib/record/validations/cpf.js +1 -1
- data/vendor/components/indefinido-indemma/lib/record.js +15 -12
- data/vendor/components/indefinido-indemma/spec/record/associable_spec.js +137 -0
- data/vendor/components/indefinido-indemma/spec/record/persistable_spec.js +36 -0
- data/vendor/components/indefinido-indemma/spec/record/queryable_spec.js +33 -0
- data/vendor/components/indefinido-indemma/spec/record/resource_spec.js +93 -0
- data/vendor/components/indefinido-indemma/spec/record/rest_spec.js +32 -0
- data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +288 -0
- data/vendor/components/indefinido-indemma/spec/record/scopable_spec.js +212 -0
- data/vendor/components/indefinido-indemma/spec/record/storable_spec.js +53 -0
- data/vendor/components/indefinido-indemma/spec/record/translationable.js +28 -0
- data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +111 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +43 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/confirmation_spec.js +36 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/cpf_spec.js +35 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/presence_spec.js +28 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/remote_spec.js +87 -0
- data/vendor/components/indefinido-indemma/spec/record/validations/type_spec.js +48 -0
- data/vendor/components/indefinido-indemma/spec/record_spec.js +37 -0
- data/vendor/components/indefinido-indemma/spec/spec_helper.js +11 -0
- data/vendor/components/indefinido-indemma/spec/support/value_objects/phone.js +45 -0
- data/vendor/components/indefinido-indemma/src/lib/extensions/rivets.coffee +17 -0
- data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +342 -0
- data/vendor/components/indefinido-indemma/src/lib/record/errors.coffee +20 -0
- data/vendor/components/indefinido-indemma/src/lib/record/maid.coffee +16 -0
- data/vendor/components/indefinido-indemma/src/lib/record/persistable.coffee +27 -0
- data/vendor/components/indefinido-indemma/src/lib/record/queryable.coffee +29 -0
- data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +106 -0
- data/vendor/components/indefinido-indemma/src/lib/record/rest.coffee +28 -0
- data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +348 -0
- data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +275 -0
- data/vendor/components/indefinido-indemma/src/lib/record/storable.coffee +46 -0
- data/vendor/components/indefinido-indemma/src/lib/record/translationable.coffee +18 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +217 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +32 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +19 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +58 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +19 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +65 -0
- data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +32 -0
- data/vendor/components/indefinido-indemma/src/lib/record.coffee +136 -0
- data/vendor/components/indefinido-indemma/src/spec/record/associable_spec.coffee +130 -0
- data/vendor/components/indefinido-indemma/src/spec/record/persistable_spec.coffee +30 -0
- data/vendor/components/indefinido-indemma/src/spec/record/queryable_spec.coffee +27 -0
- data/vendor/components/indefinido-indemma/src/spec/record/resource_spec.coffee +69 -0
- data/vendor/components/indefinido-indemma/src/spec/record/rest_spec.coffee +22 -0
- data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +207 -0
- data/vendor/components/indefinido-indemma/src/spec/record/scopable_spec.coffee +191 -0
- data/vendor/components/indefinido-indemma/src/spec/record/storable_spec.coffee +40 -0
- data/vendor/components/indefinido-indemma/src/spec/record/translationable.coffee +19 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +100 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +35 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/confirmation_spec.coffee +25 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/cpf_spec.coffee +28 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/presence_spec.coffee +24 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/remote_spec.coffee +74 -0
- data/vendor/components/indefinido-indemma/src/spec/record/validations/type_spec.coffee +33 -0
- data/vendor/components/indefinido-indemma/src/spec/record_spec.coffee +23 -0
- data/vendor/components/indefinido-indemma/src/spec/spec_helper.coffee +9 -0
- data/vendor/components/indefinido-indemma/src/spec/support/value_objects/phone.coffee +30 -0
- data/vendor/components/indefinido-indemma/vendor/object/mixin.js +196 -0
- data/vendor/components/indefinido-indemma/vendor/owl/pluralize.js +190 -0
- metadata +130 -2
@@ -19209,6 +19209,199 @@ if (typeof module == "object" && typeof require == "function") {
|
|
19209
19209
|
|
19210
19210
|
return sinon;}.call(typeof window != 'undefined' && window || {}));
|
19211
19211
|
|
19212
|
+
});
|
19213
|
+
require.register("indefinido-indemma/vendor/owl/pluralize.js", function(exports, require, module){
|
19214
|
+
/* This file is part of OWL Pluralization.
|
19215
|
+
|
19216
|
+
OWL Pluralization is free software: you can redistribute it and/or
|
19217
|
+
modify it under the terms of the GNU Lesser General Public License
|
19218
|
+
as published by the Free Software Foundation, either version 3 of
|
19219
|
+
the License, or (at your option) any later version.
|
19220
|
+
|
19221
|
+
OWL Pluralization is distributed in the hope that it will be useful,
|
19222
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
19223
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19224
|
+
GNU Lesser General Public License for more details.
|
19225
|
+
|
19226
|
+
You should have received a copy of the GNU Lesser General Public
|
19227
|
+
License along with OWL Pluralization. If not, see
|
19228
|
+
<http://www.gnu.org/licenses/>.
|
19229
|
+
*/
|
19230
|
+
|
19231
|
+
// prepare the owl namespace.
|
19232
|
+
if ( typeof owl === 'undefined' ) owl = {};
|
19233
|
+
|
19234
|
+
owl.pluralize = (function() {
|
19235
|
+
var userDefined = {};
|
19236
|
+
|
19237
|
+
function capitalizeSame(word, sampleWord) {
|
19238
|
+
if ( sampleWord.match(/^[A-Z]/) ) {
|
19239
|
+
return word.charAt(0).toUpperCase() + word.slice(1);
|
19240
|
+
} else {
|
19241
|
+
return word;
|
19242
|
+
}
|
19243
|
+
}
|
19244
|
+
|
19245
|
+
// returns a plain Object having the given keys,
|
19246
|
+
// all with value 1, which can be used for fast lookups.
|
19247
|
+
function toKeys(keys) {
|
19248
|
+
keys = keys.split(',');
|
19249
|
+
var keysLength = keys.length;
|
19250
|
+
var table = {};
|
19251
|
+
for ( var i=0; i < keysLength; i++ ) {
|
19252
|
+
table[ keys[i] ] = 1;
|
19253
|
+
}
|
19254
|
+
return table;
|
19255
|
+
}
|
19256
|
+
|
19257
|
+
// words that are always singular, always plural, or the same in both forms.
|
19258
|
+
var uninflected = toKeys("aircraft,advice,blues,corn,molasses,equipment,gold,information,cotton,jewelry,kin,legislation,luck,luggage,moose,music,offspring,rice,silver,trousers,wheat,bison,bream,breeches,britches,carp,chassis,clippers,cod,contretemps,corps,debris,diabetes,djinn,eland,elk,flounder,gallows,graffiti,headquarters,herpes,high,homework,innings,jackanapes,mackerel,measles,mews,mumps,news,pincers,pliers,proceedings,rabies,salmon,scissors,sea,series,shears,species,swine,trout,tuna,whiting,wildebeest,pike,oats,tongs,dregs,snuffers,victuals,tweezers,vespers,pinchers,bellows,cattle");
|
19259
|
+
|
19260
|
+
var irregular = {
|
19261
|
+
// pronouns
|
19262
|
+
I: 'we',
|
19263
|
+
you: 'you',
|
19264
|
+
he: 'they',
|
19265
|
+
it: 'they', // or them
|
19266
|
+
me: 'us',
|
19267
|
+
you: 'you',
|
19268
|
+
him: 'them',
|
19269
|
+
them: 'them',
|
19270
|
+
myself: 'ourselves',
|
19271
|
+
yourself: 'yourselves',
|
19272
|
+
himself: 'themselves',
|
19273
|
+
herself: 'themselves',
|
19274
|
+
itself: 'themselves',
|
19275
|
+
themself: 'themselves',
|
19276
|
+
oneself: 'oneselves',
|
19277
|
+
|
19278
|
+
child: 'children',
|
19279
|
+
dwarf: 'dwarfs', // dwarfs are real; dwarves are fantasy.
|
19280
|
+
mongoose: 'mongooses',
|
19281
|
+
mythos: 'mythoi',
|
19282
|
+
ox: 'oxen',
|
19283
|
+
soliloquy: 'soliloquies',
|
19284
|
+
trilby: 'trilbys',
|
19285
|
+
person: 'people',
|
19286
|
+
forum: 'forums', // fora is ok but uncommon.
|
19287
|
+
|
19288
|
+
// latin plural in popular usage.
|
19289
|
+
syllabus: 'syllabi',
|
19290
|
+
alumnus: 'alumni',
|
19291
|
+
genus: 'genera',
|
19292
|
+
viscus: 'viscera',
|
19293
|
+
stigma: 'stigmata'
|
19294
|
+
};
|
19295
|
+
|
19296
|
+
var suffixRules = [
|
19297
|
+
// common suffixes
|
19298
|
+
[ /man$/i, 'men' ],
|
19299
|
+
[ /([lm])ouse$/i, '$1ice' ],
|
19300
|
+
[ /tooth$/i, 'teeth' ],
|
19301
|
+
[ /goose$/i, 'geese' ],
|
19302
|
+
[ /foot$/i, 'feet' ],
|
19303
|
+
[ /zoon$/i, 'zoa' ],
|
19304
|
+
[ /([tcsx])is$/i, '$1es' ],
|
19305
|
+
|
19306
|
+
// fully assimilated suffixes
|
19307
|
+
[ /ix$/i, 'ices' ],
|
19308
|
+
[ /^(cod|mur|sil|vert)ex$/i, '$1ices' ],
|
19309
|
+
[ /^(agend|addend|memorand|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi)um$/i, '$1a' ],
|
19310
|
+
[ /^(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|\w+hedr)on$/i, '$1a' ],
|
19311
|
+
[ /^(alumn|alg|vertebr)a$/i, '$1ae' ],
|
19312
|
+
|
19313
|
+
// churches, classes, boxes, etc.
|
19314
|
+
[ /([cs]h|ss|x)$/i, '$1es' ],
|
19315
|
+
|
19316
|
+
// words with -ves plural form
|
19317
|
+
[ /([aeo]l|[^d]ea|ar)f$/i, '$1ves' ],
|
19318
|
+
[ /([nlw]i)fe$/i, '$1ves' ],
|
19319
|
+
|
19320
|
+
// -y
|
19321
|
+
[ /([aeiou])y$/i, '$1ys' ],
|
19322
|
+
[ /(^[A-Z][a-z]*)y$/, '$1ys' ], // case sensitive!
|
19323
|
+
[ /y$/i, 'ies' ],
|
19324
|
+
|
19325
|
+
// -o
|
19326
|
+
[ /([aeiou])o$/i, '$1os' ],
|
19327
|
+
[ /^(pian|portic|albin|generalissim|manifest|archipelag|ghett|medic|armadill|guan|octav|command|infern|phot|ditt|jumb|pr|dynam|ling|quart|embry|lumbag|rhin|fiasc|magnet|styl|alt|contralt|sopran|bass|crescend|temp|cant|sol|kimon)o$/i, '$1os' ],
|
19328
|
+
[ /o$/i, 'oes' ],
|
19329
|
+
|
19330
|
+
// words ending in s...
|
19331
|
+
[ /s$/i, 'ses' ]
|
19332
|
+
];
|
19333
|
+
|
19334
|
+
// pluralizes the given singular noun. There are three ways to call it:
|
19335
|
+
// pluralize(noun) -> pluralNoun
|
19336
|
+
// Returns the plural of the given noun.
|
19337
|
+
// Example:
|
19338
|
+
// pluralize("person") -> "people"
|
19339
|
+
// pluralize("me") -> "us"
|
19340
|
+
//
|
19341
|
+
// pluralize(noun, count) -> plural or singular noun
|
19342
|
+
// Inflect the noun according to the count, returning the singular noun
|
19343
|
+
// if the count is 1.
|
19344
|
+
// Examples:
|
19345
|
+
// pluralize("person", 3) -> "people"
|
19346
|
+
// pluralize("person", 1) -> "person"
|
19347
|
+
// pluralize("person", 0) -> "people"
|
19348
|
+
//
|
19349
|
+
// pluralize(noun, count, plural) -> plural or singular noun
|
19350
|
+
// you can provide an irregular plural yourself as the 3rd argument.
|
19351
|
+
// Example:
|
19352
|
+
// pluralize("château", 2 "châteaux") -> "châteaux"
|
19353
|
+
function pluralize(word, count, plural) {
|
19354
|
+
// handle the empty string reasonably.
|
19355
|
+
if ( word === '' ) return '';
|
19356
|
+
|
19357
|
+
// singular case.
|
19358
|
+
if ( count === 1 ) return word;
|
19359
|
+
|
19360
|
+
// life is very easy if an explicit plural was provided.
|
19361
|
+
if ( typeof plural === 'string' ) return plural;
|
19362
|
+
|
19363
|
+
var lowerWord = word.toLowerCase();
|
19364
|
+
|
19365
|
+
// user defined rules have the highest priority.
|
19366
|
+
if ( lowerWord in userDefined ) {
|
19367
|
+
return capitalizeSame(userDefined[lowerWord], word);
|
19368
|
+
}
|
19369
|
+
|
19370
|
+
// single letters are pluralized with 's, "I got five A's on
|
19371
|
+
// my report card."
|
19372
|
+
if ( word.match(/^[A-Z]$/) ) return word + "'s";
|
19373
|
+
|
19374
|
+
// some word don't change form when plural.
|
19375
|
+
if ( word.match(/fish$|ois$|sheep$|deer$|pox$|itis$/i) ) return word;
|
19376
|
+
if ( word.match(/^[A-Z][a-z]*ese$/) ) return word; // Nationalities.
|
19377
|
+
if ( lowerWord in uninflected ) return word;
|
19378
|
+
|
19379
|
+
// there's a known set of words with irregular plural forms.
|
19380
|
+
if ( lowerWord in irregular ) {
|
19381
|
+
return capitalizeSame(irregular[lowerWord], word);
|
19382
|
+
}
|
19383
|
+
|
19384
|
+
// try to pluralize the word depending on its suffix.
|
19385
|
+
var suffixRulesLength = suffixRules.length;
|
19386
|
+
for ( var i=0; i < suffixRulesLength; i++ ) {
|
19387
|
+
var rule = suffixRules[i];
|
19388
|
+
if ( word.match(rule[0]) ) {
|
19389
|
+
return word.replace(rule[0], rule[1]);
|
19390
|
+
}
|
19391
|
+
}
|
19392
|
+
|
19393
|
+
// if all else fails, just add s.
|
19394
|
+
return word + 's';
|
19395
|
+
}
|
19396
|
+
|
19397
|
+
pluralize.define = function(word, plural) {
|
19398
|
+
userDefined[word.toLowerCase()] = plural;
|
19399
|
+
}
|
19400
|
+
|
19401
|
+
return pluralize;
|
19402
|
+
|
19403
|
+
})();
|
19404
|
+
|
19212
19405
|
});
|
19213
19406
|
require.register("indefinido-indemma/lib/record.js", function(exports, require, module){
|
19214
19407
|
var $, advisable, bind, extend, merge, observable, type,
|
@@ -19234,7 +19427,8 @@ this.model = (function() {
|
|
19234
19427
|
modelable = {
|
19235
19428
|
after_mix: [],
|
19236
19429
|
record: {
|
19237
|
-
after_initialize: []
|
19430
|
+
after_initialize: [],
|
19431
|
+
before_initialize: []
|
19238
19432
|
},
|
19239
19433
|
all: function() {
|
19240
19434
|
return this.cache;
|
@@ -19245,11 +19439,6 @@ this.model = (function() {
|
|
19245
19439
|
params = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
19246
19440
|
throw 'model.create not implemented yet, try using the restful.model.create method';
|
19247
19441
|
},
|
19248
|
-
find: function(id) {
|
19249
|
-
return this.where({
|
19250
|
-
id: id
|
19251
|
-
}, true);
|
19252
|
-
},
|
19253
19442
|
where: function(conditions, first) {
|
19254
19443
|
var record, results, _i, _len, _ref;
|
19255
19444
|
|
@@ -19279,7 +19468,7 @@ this.model = (function() {
|
|
19279
19468
|
}
|
19280
19469
|
};
|
19281
19470
|
initialize_record = function(data) {
|
19282
|
-
var after_initialize, callback, instance, _i, _len, _ref;
|
19471
|
+
var after_initialize, callback, creation, index, instance, _i, _j, _len, _len1, _ref, _ref1;
|
19283
19472
|
|
19284
19473
|
if (data == null) {
|
19285
19474
|
data = {
|
@@ -19292,12 +19481,18 @@ this.model = (function() {
|
|
19292
19481
|
data.route || (data.route = this.route);
|
19293
19482
|
data.nested_attributes = this.nested_attributes || [];
|
19294
19483
|
after_initialize = (data.after_initialize || []).concat(this.record.after_initialize);
|
19295
|
-
|
19484
|
+
creation = extend(Object.create(data), this.record, creation, {
|
19296
19485
|
after_initialize: after_initialize
|
19297
|
-
})
|
19298
|
-
_ref =
|
19299
|
-
for (_i = 0, _len = _ref.length; _i < _len; _i
|
19300
|
-
callback = _ref[
|
19486
|
+
});
|
19487
|
+
_ref = this.record.before_initialize;
|
19488
|
+
for (index = _i = 0, _len = _ref.length; _i < _len; index = ++_i) {
|
19489
|
+
callback = _ref[index];
|
19490
|
+
callback.call(this, creation);
|
19491
|
+
}
|
19492
|
+
instance = record.call(creation);
|
19493
|
+
_ref1 = instance.after_initialize;
|
19494
|
+
for (index = _j = 0, _len1 = _ref1.length; _j < _len1; index = ++_j) {
|
19495
|
+
callback = _ref1[index];
|
19301
19496
|
callback.call(instance, instance);
|
19302
19497
|
}
|
19303
19498
|
delete instance.after_initialize;
|
@@ -19321,6 +19516,7 @@ this.model = (function() {
|
|
19321
19516
|
extend(instance, merge(this, modelable));
|
19322
19517
|
this.record = instance.record = merge({}, instance.record, modelable.record);
|
19323
19518
|
this.record.after_initialize = instance.record.after_initialize = instance.record.after_initialize.concat(after_initialize);
|
19519
|
+
this.record.before_initialize = instance.record.before_initialize.concat([]);
|
19324
19520
|
_ref = modelable.after_mix;
|
19325
19521
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
19326
19522
|
callback = _ref[_i];
|
@@ -19371,13 +19567,15 @@ exports.model = this.model;
|
|
19371
19567
|
|
19372
19568
|
});
|
19373
19569
|
require.register("indefinido-indemma/lib/record/associable.js", function(exports, require, module){
|
19374
|
-
var $, associable, model, plural, root, singular,
|
19570
|
+
var $, associable, callbacks, extend, model, modifiers, plural, root, singular, subscribers,
|
19375
19571
|
__slice = [].slice;
|
19376
19572
|
|
19377
19573
|
root = window;
|
19378
19574
|
|
19379
19575
|
$ = require('jquery');
|
19380
19576
|
|
19577
|
+
extend = require('assimilate');
|
19578
|
+
|
19381
19579
|
require('./resource');
|
19382
19580
|
|
19383
19581
|
plural = {
|
@@ -19421,7 +19619,10 @@ plural = {
|
|
19421
19619
|
data[_name = this.parent_resource] || (data[_name] = this.parent);
|
19422
19620
|
return model[model.singularize(this.resource)](data);
|
19423
19621
|
},
|
19424
|
-
push:
|
19622
|
+
push: function() {
|
19623
|
+
console.warn("" + this.resource + ".push is deprecated and will be removed, please use add instead");
|
19624
|
+
return Array.prototype.push.apply(this, arguments);
|
19625
|
+
},
|
19425
19626
|
length: 0,
|
19426
19627
|
json: function(methods, omissions) {
|
19427
19628
|
var record, _i, _len, _results;
|
@@ -19437,92 +19638,192 @@ plural = {
|
|
19437
19638
|
|
19438
19639
|
singular = {
|
19439
19640
|
create: function(data) {
|
19440
|
-
return model[this.resource].create(
|
19641
|
+
return model[this.resource].create(extend({}, this, data));
|
19441
19642
|
},
|
19442
19643
|
build: function(data) {
|
19443
|
-
return this
|
19644
|
+
return this.owner[this.resource.toString()] = model[this.resource.toString()](extend({}, this, data));
|
19444
19645
|
}
|
19445
19646
|
};
|
19446
19647
|
|
19447
|
-
|
19448
|
-
|
19449
|
-
|
19648
|
+
subscribers = {
|
19649
|
+
belongs_to: {
|
19650
|
+
foreign_key: function(resource_id) {
|
19651
|
+
var associated, association_name, current_resource_id, resource, _ref;
|
19450
19652
|
|
19451
|
-
|
19452
|
-
|
19653
|
+
association_name = this.resource.toString();
|
19654
|
+
if (resource_id === null || resource_id === void 0) {
|
19655
|
+
this.dirty = true;
|
19656
|
+
this.owner[association_name] = resource_id;
|
19657
|
+
return resource_id;
|
19658
|
+
}
|
19659
|
+
current_resource_id = (_ref = this.owner[association_name]) != null ? _ref._id : void 0;
|
19660
|
+
if (resource_id !== current_resource_id) {
|
19661
|
+
resource = model[association_name];
|
19662
|
+
if (!resource) {
|
19663
|
+
console.warn("subscribers.belongs_to.foreign_key: associated factory not found for model: " + association_name);
|
19664
|
+
return resource_id;
|
19665
|
+
}
|
19666
|
+
associated = resource.find(resource_id);
|
19667
|
+
associated || (associated = resource({
|
19668
|
+
_id: resource_id
|
19669
|
+
}));
|
19670
|
+
this.owner.observed[association_name] = associated;
|
19671
|
+
}
|
19672
|
+
return resource_id;
|
19673
|
+
},
|
19674
|
+
associated_changed: function(associated) {
|
19675
|
+
return this.owner.observed["" + (this.resource.toString()) + "_id"] = associated ? associated._id : null;
|
19453
19676
|
}
|
19454
|
-
|
19455
|
-
|
19456
|
-
nest_attributes: function() {
|
19457
|
-
var association, association_name, association_names, associations_attributes, message, _i, _len, _results;
|
19677
|
+
}
|
19678
|
+
};
|
19458
19679
|
|
19459
|
-
|
19460
|
-
|
19461
|
-
|
19462
|
-
|
19463
|
-
|
19464
|
-
|
19465
|
-
|
19466
|
-
|
19467
|
-
|
19468
|
-
|
19469
|
-
|
19470
|
-
|
19471
|
-
|
19472
|
-
|
19473
|
-
|
19474
|
-
|
19475
|
-
|
19476
|
-
|
19477
|
-
|
19478
|
-
|
19479
|
-
return
|
19680
|
+
modifiers = {
|
19681
|
+
belongs_to: {
|
19682
|
+
associated_loader: function() {
|
19683
|
+
var association_name,
|
19684
|
+
_this = this;
|
19685
|
+
|
19686
|
+
association_name = this.resource.toString();
|
19687
|
+
return Object.defineProperty(this.owner, association_name, {
|
19688
|
+
set: function(associated) {
|
19689
|
+
return this.observed[association_name] = associated;
|
19690
|
+
},
|
19691
|
+
get: function() {
|
19692
|
+
var associated, associated_id, resource;
|
19693
|
+
|
19694
|
+
associated = _this.owner.observed[association_name];
|
19695
|
+
associated_id = _this.owner.observed[association_name + '_id'];
|
19696
|
+
if (!(((associated != null ? associated._id : void 0) != null) || associated_id)) {
|
19697
|
+
return associated;
|
19698
|
+
}
|
19699
|
+
if (associated != null ? associated.sustained : void 0) {
|
19700
|
+
return associated;
|
19480
19701
|
}
|
19702
|
+
resource = model[association_name];
|
19703
|
+
if (!resource) {
|
19704
|
+
console.warn("subscribers.belongs_to.foreign_key: associated factory not found for model: " + association_name);
|
19705
|
+
return associated;
|
19706
|
+
}
|
19707
|
+
associated = resource.find(associated_id || associated._id);
|
19708
|
+
associated || (associated = resource({
|
19709
|
+
_id: associated_id
|
19710
|
+
}));
|
19711
|
+
resource.storage.store(associated._id, associated);
|
19712
|
+
associated.reload();
|
19713
|
+
return _this.owner.observed[association_name] = associated;
|
19481
19714
|
},
|
19482
|
-
|
19483
|
-
|
19715
|
+
configurable: true,
|
19716
|
+
enumerable: true
|
19717
|
+
});
|
19718
|
+
}
|
19719
|
+
}
|
19720
|
+
};
|
19484
19721
|
|
19485
|
-
|
19486
|
-
|
19487
|
-
|
19722
|
+
callbacks = {
|
19723
|
+
has_many: {
|
19724
|
+
nest_attributes: function() {
|
19725
|
+
var association, association_name, association_names, associations_attributes, message, _i, _len, _results;
|
19726
|
+
|
19727
|
+
association_names = model[this.resource].has_many;
|
19728
|
+
if (association_names) {
|
19729
|
+
_results = [];
|
19730
|
+
for (_i = 0, _len = association_names.length; _i < _len; _i++) {
|
19731
|
+
association_name = association_names[_i];
|
19732
|
+
associations_attributes = this["" + association_name + "_attributes"];
|
19733
|
+
if (associations_attributes && associations_attributes.length) {
|
19734
|
+
association = this[model.pluralize(association_name)];
|
19735
|
+
if (!association) {
|
19736
|
+
message = "has_many.nest_attributes: Association not found for " + association_name + ". \n";
|
19737
|
+
message += "did you set it on model declaration? \n has_many: " + association_name + " ";
|
19738
|
+
throw message;
|
19739
|
+
}
|
19740
|
+
association.resource = model.singularize(association.resource);
|
19741
|
+
association.add.apply(association, associations_attributes);
|
19742
|
+
_results.push(association.resource = model.pluralize(association.resource));
|
19743
|
+
} else {
|
19744
|
+
_results.push(void 0);
|
19488
19745
|
}
|
19489
|
-
|
19490
|
-
|
19491
|
-
|
19492
|
-
|
19493
|
-
|
19494
|
-
|
19495
|
-
|
19496
|
-
|
19497
|
-
|
19498
|
-
|
19499
|
-
|
19500
|
-
|
19501
|
-
|
19746
|
+
}
|
19747
|
+
return _results;
|
19748
|
+
}
|
19749
|
+
},
|
19750
|
+
update_association: function(data) {
|
19751
|
+
var associated, association, association_name, id, pluralized_association, _i, _j, _len, _len1, _ref;
|
19752
|
+
|
19753
|
+
id = this._id || data && (data._id || data.id);
|
19754
|
+
if (!id) {
|
19755
|
+
return;
|
19756
|
+
}
|
19757
|
+
_ref = model[this.resource.toString()].has_many;
|
19758
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
19759
|
+
association_name = _ref[_i];
|
19760
|
+
pluralized_association = model.pluralize(association_name);
|
19761
|
+
association = this[pluralized_association];
|
19762
|
+
if (!association.route) {
|
19763
|
+
association.route = "/" + (model.pluralize(this.resource.toString())) + "/" + id + "/" + (model.pluralize(association.resource));
|
19764
|
+
for (_j = 0, _len1 = association.length; _j < _len1; _j++) {
|
19765
|
+
associated = association[_j];
|
19766
|
+
if (!associated.route && (associated.parent != null)) {
|
19767
|
+
associated.route = "/" + (model.pluralize(this.resource.toString())) + "/" + id + "/" + (model.pluralize(association.resource));
|
19502
19768
|
}
|
19503
19769
|
}
|
19504
|
-
return true;
|
19505
|
-
},
|
19506
|
-
autosave: function() {
|
19507
|
-
return this.save();
|
19508
19770
|
}
|
19509
19771
|
}
|
19510
|
-
|
19511
|
-
|
19512
|
-
|
19513
|
-
|
19514
|
-
if (this.has_one && $.type(this.has_one) !== 'array') {
|
19515
|
-
this.has_one = [this.has_one];
|
19772
|
+
return true;
|
19773
|
+
},
|
19774
|
+
autosave: function() {
|
19775
|
+
throw 'Not implemented yet';
|
19516
19776
|
}
|
19517
|
-
|
19518
|
-
|
19777
|
+
},
|
19778
|
+
has_one: {
|
19779
|
+
nest_attributes: function() {
|
19780
|
+
var association_name, association_names, associations_attributes, _i, _len, _results;
|
19781
|
+
|
19782
|
+
association_names = model[this.resource].has_one;
|
19783
|
+
if (association_names) {
|
19784
|
+
_results = [];
|
19785
|
+
for (_i = 0, _len = association_names.length; _i < _len; _i++) {
|
19786
|
+
association_name = association_names[_i];
|
19787
|
+
associations_attributes = this["" + association_name + "_attributes"];
|
19788
|
+
if (associations_attributes) {
|
19789
|
+
this[association_name] = this["build_" + association_name](associations_attributes);
|
19790
|
+
_results.push(delete this["" + association_name + "_attributes"]);
|
19791
|
+
} else {
|
19792
|
+
_results.push(void 0);
|
19793
|
+
}
|
19794
|
+
}
|
19795
|
+
return _results;
|
19796
|
+
}
|
19519
19797
|
}
|
19520
|
-
|
19521
|
-
|
19522
|
-
|
19523
|
-
|
19524
|
-
|
19798
|
+
}
|
19799
|
+
};
|
19800
|
+
|
19801
|
+
associable = {
|
19802
|
+
model: {
|
19803
|
+
blender: function(definition) {
|
19804
|
+
var model;
|
19805
|
+
|
19806
|
+
model = associable.model;
|
19807
|
+
this.create_after_hooks = model.create_after_hooks;
|
19808
|
+
this.create_before_hooks = model.create_before_hooks;
|
19809
|
+
if (this.has_many && $.type(this.has_many) !== 'array') {
|
19810
|
+
this.has_many = [this.has_many];
|
19811
|
+
}
|
19812
|
+
if (this.has_one && $.type(this.has_one) !== 'array') {
|
19813
|
+
this.has_one = [this.has_one];
|
19814
|
+
}
|
19815
|
+
if (this.belongs_to && $.type(this.belongs_to) !== 'array') {
|
19816
|
+
this.belongs_to = [this.belongs_to];
|
19817
|
+
}
|
19818
|
+
this.has_many || (this.has_many = []);
|
19819
|
+
this.has_one || (this.has_one = []);
|
19820
|
+
this.belongs_to || (this.belongs_to = []);
|
19821
|
+
return true;
|
19822
|
+
},
|
19823
|
+
create_after_hooks: function(definition) {
|
19824
|
+
var association_name, association_proxy, old_resource_id, options, resource, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;
|
19525
19825
|
|
19826
|
+
options = model[this.resource.name || this.resource.toString()];
|
19526
19827
|
if (options.has_many) {
|
19527
19828
|
_ref = options.has_many;
|
19528
19829
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
@@ -19544,12 +19845,14 @@ associable = {
|
|
19544
19845
|
resource = _ref1[_j];
|
19545
19846
|
association_proxy = {
|
19546
19847
|
resource: resource,
|
19547
|
-
parent_resource: this.resource
|
19848
|
+
parent_resource: this.resource,
|
19849
|
+
owner: this
|
19548
19850
|
};
|
19549
|
-
association_proxy[this.resource] = this;
|
19851
|
+
association_proxy[this.resource.toString()] = this;
|
19550
19852
|
this["build_" + resource] = $.proxy(singular.build, association_proxy);
|
19551
19853
|
this["create_" + resource] = $.proxy(singular.create, association_proxy);
|
19552
19854
|
}
|
19855
|
+
callbacks.has_one.nest_attributes.call(this);
|
19553
19856
|
}
|
19554
19857
|
if (options.belongs_to) {
|
19555
19858
|
_ref2 = options.belongs_to;
|
@@ -19558,29 +19861,69 @@ associable = {
|
|
19558
19861
|
resource = _ref2[_k];
|
19559
19862
|
association_proxy = {
|
19560
19863
|
resource: resource,
|
19561
|
-
parent_resource: this.resource
|
19864
|
+
parent_resource: this.resource,
|
19865
|
+
parent: this,
|
19866
|
+
owner: this
|
19562
19867
|
};
|
19563
|
-
association_proxy[this.resource] = this;
|
19868
|
+
association_proxy[this.resource.toString()] = this;
|
19564
19869
|
this["build_" + resource] = $.proxy(singular.build, association_proxy);
|
19565
|
-
|
19870
|
+
this["create_" + resource] = $.proxy(singular.create, association_proxy);
|
19871
|
+
old_resource_id = this["" + resource + "_id"];
|
19872
|
+
this["" + resource + "_id"] = null;
|
19873
|
+
this.subscribe("" + resource + "_id", $.proxy(subscribers.belongs_to.foreign_key, association_proxy));
|
19874
|
+
this.subscribe(resource.toString(), $.proxy(subscribers.belongs_to.associated_changed, association_proxy));
|
19875
|
+
this.resource_id = old_resource_id;
|
19876
|
+
if (this["" + resource + "_id"] && !this[resource]) {
|
19877
|
+
_results.push(this.publish("" + resource + "_id", this["" + resource + "_id"]));
|
19878
|
+
} else {
|
19879
|
+
_results.push(void 0);
|
19880
|
+
}
|
19566
19881
|
}
|
19567
19882
|
return _results;
|
19568
19883
|
}
|
19569
|
-
}
|
19884
|
+
},
|
19885
|
+
create_before_hooks: function(record) {
|
19886
|
+
var association_proxy, definition, resource, _i, _len, _ref, _results;
|
19887
|
+
|
19888
|
+
definition = this;
|
19889
|
+
if (definition.belongs_to) {
|
19890
|
+
_ref = definition.belongs_to;
|
19891
|
+
_results = [];
|
19892
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
19893
|
+
resource = _ref[_i];
|
19894
|
+
association_proxy = {
|
19895
|
+
resource: resource,
|
19896
|
+
parent_resource: this.resource,
|
19897
|
+
owner: record
|
19898
|
+
};
|
19899
|
+
_results.push(modifiers.belongs_to.associated_loader.call(association_proxy));
|
19900
|
+
}
|
19901
|
+
return _results;
|
19902
|
+
}
|
19903
|
+
}
|
19570
19904
|
},
|
19571
|
-
record:
|
19572
|
-
|
19573
|
-
|
19905
|
+
record: {
|
19906
|
+
after_initialize: function(attributes) {
|
19907
|
+
if (this.resource == null) {
|
19908
|
+
throw new Error('resource must be defined in order to associate');
|
19909
|
+
}
|
19910
|
+
return model[this.resource.name || this.resource.toString()].create_after_hooks.call(this);
|
19911
|
+
},
|
19912
|
+
before_initialize: function(creation) {
|
19913
|
+
if (!this.resource) {
|
19914
|
+
throw new Error('resource must be defined in order to associate');
|
19915
|
+
}
|
19916
|
+
return model[this.resource.name || this.resource.toString()].create_before_hooks(creation);
|
19574
19917
|
}
|
19575
|
-
return model[this.resource.name || this.resource.toString()].create_associations.call(this);
|
19576
19918
|
}
|
19577
19919
|
};
|
19578
19920
|
|
19579
19921
|
model = root.model;
|
19580
19922
|
|
19581
19923
|
model.mix(function(modelable) {
|
19582
|
-
modelable.after_mix.push(associable.model);
|
19583
|
-
|
19924
|
+
modelable.after_mix.push(associable.model.blender);
|
19925
|
+
modelable.record.before_initialize.push(associable.record.before_initialize);
|
19926
|
+
return modelable.record.after_initialize.push(associable.record.after_initialize);
|
19584
19927
|
});
|
19585
19928
|
|
19586
19929
|
model.associable = {
|
@@ -19589,12 +19932,135 @@ model.associable = {
|
|
19589
19932
|
}
|
19590
19933
|
};
|
19591
19934
|
|
19935
|
+
});
|
19936
|
+
require.register("indefinido-indemma/lib/record/persistable.js", function(exports, require, module){
|
19937
|
+
var handlers, model, persistable, record;
|
19938
|
+
|
19939
|
+
require('./queryable');
|
19940
|
+
|
19941
|
+
handlers = {
|
19942
|
+
store_after_saved: function() {
|
19943
|
+
var storage;
|
19944
|
+
|
19945
|
+
storage = model[this.resource.toString()].storage;
|
19946
|
+
if (this._id) {
|
19947
|
+
return storage.store(this._id, this);
|
19948
|
+
}
|
19949
|
+
}
|
19950
|
+
};
|
19951
|
+
|
19952
|
+
persistable = {
|
19953
|
+
record: {
|
19954
|
+
after_initialize: function() {
|
19955
|
+
return this.after('saved', handlers.store_after_saved);
|
19956
|
+
}
|
19957
|
+
}
|
19958
|
+
};
|
19959
|
+
|
19960
|
+
model = window.model;
|
19961
|
+
|
19962
|
+
record = window.record;
|
19963
|
+
|
19964
|
+
model.persistable = true;
|
19965
|
+
|
19966
|
+
model.mix(function(modelable) {
|
19967
|
+
return modelable.record.after_initialize.push(persistable.record.after_initialize);
|
19968
|
+
});
|
19969
|
+
|
19970
|
+
});
|
19971
|
+
require.register("indefinido-indemma/lib/record/storable.js", function(exports, require, module){
|
19972
|
+
var extend, merge, model, record, stampit, storable;
|
19973
|
+
|
19974
|
+
extend = require('assimilate');
|
19975
|
+
|
19976
|
+
merge = extend.withStrategy('deep');
|
19977
|
+
|
19978
|
+
stampit = require('../../vendor/stampit');
|
19979
|
+
|
19980
|
+
storable = stampit({
|
19981
|
+
store: function(keypath, value, options) {
|
19982
|
+
var collection, entry, key, _i, _len;
|
19983
|
+
|
19984
|
+
collection = this.database;
|
19985
|
+
keypath = keypath.toString().split('.');
|
19986
|
+
key = keypath.pop();
|
19987
|
+
for (_i = 0, _len = keypath.length; _i < _len; _i++) {
|
19988
|
+
entry = keypath[_i];
|
19989
|
+
collection[entry] || (collection[entry] = {});
|
19990
|
+
collection = collection[entry];
|
19991
|
+
}
|
19992
|
+
if (arguments.length === 1) {
|
19993
|
+
this.reads++;
|
19994
|
+
return collection[key];
|
19995
|
+
} else {
|
19996
|
+
this.writes++;
|
19997
|
+
value.sustained = true;
|
19998
|
+
return collection[key] = value;
|
19999
|
+
}
|
20000
|
+
},
|
20001
|
+
values: function() {
|
20002
|
+
return Object.values(this.database);
|
20003
|
+
}
|
20004
|
+
}, {
|
20005
|
+
type: 'object',
|
20006
|
+
writes: 0,
|
20007
|
+
reads: 0
|
20008
|
+
}, function() {
|
20009
|
+
this.database || (this.database = {});
|
20010
|
+
return this;
|
20011
|
+
});
|
20012
|
+
|
20013
|
+
model = window.model;
|
20014
|
+
|
20015
|
+
record = window.record;
|
20016
|
+
|
20017
|
+
model.storable = true;
|
20018
|
+
|
20019
|
+
module.exports = storable;
|
20020
|
+
|
20021
|
+
});
|
20022
|
+
require.register("indefinido-indemma/lib/record/queryable.js", function(exports, require, module){
|
20023
|
+
var extend, model, queryable, record, stampit, storable;
|
20024
|
+
|
20025
|
+
extend = require('assimilate');
|
20026
|
+
|
20027
|
+
storable = require('./storable');
|
20028
|
+
|
20029
|
+
stampit = require('../../vendor/stampit');
|
20030
|
+
|
20031
|
+
queryable = {
|
20032
|
+
storage: storable(),
|
20033
|
+
find: function(key) {
|
20034
|
+
return this.storage.store(key);
|
20035
|
+
},
|
20036
|
+
all: function() {
|
20037
|
+
return this.storage.values();
|
20038
|
+
},
|
20039
|
+
where: function() {
|
20040
|
+
throw new Error('queryable.where: Not implemented yet');
|
20041
|
+
}
|
20042
|
+
};
|
20043
|
+
|
20044
|
+
model = window.model;
|
20045
|
+
|
20046
|
+
record = window.record;
|
20047
|
+
|
20048
|
+
model.queryable = true;
|
20049
|
+
|
20050
|
+
module.exports = queryable;
|
20051
|
+
|
20052
|
+
model.mix(function(modelable) {
|
20053
|
+
return extend(modelable, queryable);
|
20054
|
+
});
|
20055
|
+
|
19592
20056
|
});
|
19593
20057
|
require.register("indefinido-indemma/lib/record/resource.js", function(exports, require, module){
|
19594
20058
|
var model, resource, resourceable, stampit;
|
19595
20059
|
|
19596
20060
|
stampit = require('../../vendor/stampit');
|
19597
20061
|
|
20062
|
+
require('../../vendor/owl/pluralize');
|
20063
|
+
|
19598
20064
|
resource = stampit({
|
19599
20065
|
toString: function() {
|
19600
20066
|
return this.name;
|
@@ -19617,12 +20083,12 @@ resource = stampit({
|
|
19617
20083
|
});
|
19618
20084
|
|
19619
20085
|
resourceable = {
|
19620
|
-
pluralize: function(word) {
|
20086
|
+
pluralize: function(word, count, plural) {
|
19621
20087
|
if (!(word && word.length)) {
|
19622
20088
|
throw new TypeError("Invalid string passed to pluralize '" + word + "'");
|
19623
20089
|
}
|
19624
20090
|
if (word.indexOf('s') !== word.length - 1) {
|
19625
|
-
return word
|
20091
|
+
return owl.pluralize(word, count, plural);
|
19626
20092
|
} else {
|
19627
20093
|
return word;
|
19628
20094
|
}
|
@@ -19666,7 +20132,9 @@ resourceable = {
|
|
19666
20132
|
},
|
19667
20133
|
parent_id: {
|
19668
20134
|
get: function() {
|
19669
|
-
|
20135
|
+
if (this[this.parent_resource]) {
|
20136
|
+
return this[this.parent_resource]._id;
|
20137
|
+
}
|
19670
20138
|
},
|
19671
20139
|
set: function() {
|
19672
20140
|
return console.error('Warning changing associations throught parent_id not allowed for security and style guide purposes');
|
@@ -19676,7 +20144,11 @@ resourceable = {
|
|
19676
20144
|
var resource_definition, _ref;
|
19677
20145
|
|
19678
20146
|
if (this.parent_resource) {
|
19679
|
-
Object.defineProperty(this, "" + this.parent_resource + "_id",
|
20147
|
+
Object.defineProperty(this, "" + this.parent_resource + "_id", {
|
20148
|
+
value: resourceable.parent_id,
|
20149
|
+
configurable: true,
|
20150
|
+
enumerable: true
|
20151
|
+
});
|
19680
20152
|
}
|
19681
20153
|
resource_definition = {};
|
19682
20154
|
if (typeof this.resource === 'string') {
|
@@ -19722,7 +20194,7 @@ module.exports = {
|
|
19722
20194
|
return request.call(this, 'post', this.route, data);
|
19723
20195
|
},
|
19724
20196
|
"delete": function(data) {
|
19725
|
-
return request.call(this, 'delete', this.route, data);
|
20197
|
+
return request.call(this, 'delete', (this._id ? "" + this.route + "/" + this._id : this.route), data);
|
19726
20198
|
}
|
19727
20199
|
};
|
19728
20200
|
|
@@ -19830,8 +20302,14 @@ restful = {
|
|
19830
20302
|
get: function(action, data) {
|
19831
20303
|
var old_route, payload, promise, resource, route;
|
19832
20304
|
|
20305
|
+
if (data == null) {
|
20306
|
+
data = {};
|
20307
|
+
}
|
19833
20308
|
old_route = this.route;
|
19834
|
-
this.route = "/" + (model.pluralize(this.resource.name))
|
20309
|
+
this.route = "/" + (model.pluralize(this.resource.name));
|
20310
|
+
if (action) {
|
20311
|
+
this.route += "/" + action;
|
20312
|
+
}
|
19835
20313
|
resource = data.resource;
|
19836
20314
|
if (data && data.json) {
|
19837
20315
|
data = data.json();
|
@@ -19845,20 +20323,24 @@ restful = {
|
|
19845
20323
|
route = old_route;
|
19846
20324
|
return promise;
|
19847
20325
|
},
|
19848
|
-
put: rest.put
|
20326
|
+
put: rest.put,
|
20327
|
+
"delete": rest["delete"]
|
19849
20328
|
},
|
19850
20329
|
record: {
|
19851
20330
|
reload: function() {
|
19852
|
-
var
|
20331
|
+
var data, param, params, promise, _i, _len;
|
19853
20332
|
|
19854
|
-
|
20333
|
+
params = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
20334
|
+
data = params.pop();
|
20335
|
+
if (type(data) !== 'object') {
|
20336
|
+
params.push(data);
|
20337
|
+
}
|
20338
|
+
promise = rest.get.call(this, data || {});
|
19855
20339
|
promise.done(this.assign_attributes);
|
19856
20340
|
promise.fail(this.failed);
|
19857
|
-
for (_i = 0, _len =
|
19858
|
-
|
19859
|
-
|
19860
|
-
promise.done(argument);
|
19861
|
-
}
|
20341
|
+
for (_i = 0, _len = params.length; _i < _len; _i++) {
|
20342
|
+
param = params[_i];
|
20343
|
+
promise.done(param);
|
19862
20344
|
}
|
19863
20345
|
return promise;
|
19864
20346
|
},
|
@@ -19902,13 +20384,16 @@ restful = {
|
|
19902
20384
|
association_name = _ref2[_l];
|
19903
20385
|
association_attributes = attributes[association_name];
|
19904
20386
|
delete attributes[association_name];
|
20387
|
+
delete attributes[association_name + "_attributes"];
|
19905
20388
|
if (association_attributes) {
|
19906
20389
|
this[association_name] = this["build_" + association_name](association_attributes);
|
19907
20390
|
}
|
19908
20391
|
}
|
19909
20392
|
_results = [];
|
19910
20393
|
for (attribute in attributes) {
|
19911
|
-
|
20394
|
+
if (attribute !== this[attribute]) {
|
20395
|
+
_results.push(this[attribute] = attributes[attribute]);
|
20396
|
+
}
|
19912
20397
|
}
|
19913
20398
|
return _results;
|
19914
20399
|
},
|
@@ -19972,7 +20457,7 @@ restful = {
|
|
19972
20457
|
}
|
19973
20458
|
},
|
19974
20459
|
failed: function(xhr, error, status) {
|
19975
|
-
var attribute_name, definition, e, message, messages, payload,
|
20460
|
+
var attribute_name, definition, e, message, messages, payload, _i, _len, _ref;
|
19976
20461
|
|
19977
20462
|
payload = xhr.responseJSON;
|
19978
20463
|
try {
|
@@ -19985,37 +20470,33 @@ restful = {
|
|
19985
20470
|
case 422:
|
19986
20471
|
definition = model[this.resource];
|
19987
20472
|
_ref = payload.errors;
|
19988
|
-
_results = [];
|
19989
20473
|
for (attribute_name in _ref) {
|
19990
20474
|
messages = _ref[attribute_name];
|
19991
|
-
if (!
|
20475
|
+
if (!definition.associations) {
|
20476
|
+
definition.associations = definition.has_one.concat(definition.has_many.concat(definition.belongs_to));
|
20477
|
+
}
|
20478
|
+
if (!(this.hasOwnProperty(attribute_name) || definition.hasOwnProperty(attribute_name) || definition.associations.indexOf(attribute_name) !== -1 || attribute_name === 'base')) {
|
19992
20479
|
message = "Server returned an validation error message for a attribute that is not defined in your model.\n";
|
19993
20480
|
message += "The attribute was '" + attribute_name + "', the model resource was '" + this.resource + "'.\n";
|
19994
20481
|
message += "The model definition keys were '" + (JSON.stringify(Object.keys(definition))) + "'.\n";
|
19995
20482
|
message += "Please remove server validation, or update your model definition.";
|
19996
20483
|
throw new TypeError(message);
|
19997
20484
|
}
|
19998
|
-
|
19999
|
-
|
20000
|
-
|
20001
|
-
|
20002
|
-
|
20003
|
-
|
20004
|
-
_results1.push(this.errors.add(attribute_name, 'server', {
|
20005
|
-
server_message: message
|
20006
|
-
}));
|
20007
|
-
}
|
20008
|
-
return _results1;
|
20009
|
-
}).call(this));
|
20485
|
+
for (_i = 0, _len = messages.length; _i < _len; _i++) {
|
20486
|
+
message = messages[_i];
|
20487
|
+
this.errors.add(attribute_name, 'server', {
|
20488
|
+
server_message: message
|
20489
|
+
});
|
20490
|
+
}
|
20010
20491
|
}
|
20011
|
-
return _results;
|
20012
20492
|
break;
|
20013
20493
|
default:
|
20014
20494
|
message = "Fail in " + this.resource + ".save:\n";
|
20015
20495
|
message += "Record: " + this + "\n";
|
20016
20496
|
message += "Status: " + status + " (" + (payload.status || xhr.status) + ")\n";
|
20017
|
-
|
20497
|
+
message += "Error : " + (payload.error || payload.message || payload);
|
20018
20498
|
}
|
20499
|
+
return this.saving = false;
|
20019
20500
|
},
|
20020
20501
|
toString: function() {
|
20021
20502
|
var serialized;
|
@@ -20061,10 +20542,12 @@ restful = {
|
|
20061
20542
|
delete json.route;
|
20062
20543
|
delete json.initial_route;
|
20063
20544
|
delete json.after_initialize;
|
20545
|
+
delete json.before_initialize;
|
20064
20546
|
delete json.parent_resource;
|
20065
20547
|
delete json.nested_attributes;
|
20066
20548
|
delete json.saving;
|
20067
20549
|
delete json.salvation;
|
20550
|
+
delete json.sustained;
|
20068
20551
|
delete json.element;
|
20069
20552
|
delete json["default"];
|
20070
20553
|
delete json.lock;
|
@@ -20141,7 +20624,7 @@ scopable = {
|
|
20141
20624
|
}
|
20142
20625
|
builder = builders[type];
|
20143
20626
|
if (builder == null) {
|
20144
|
-
throw "Unknown scope type " + type + "
|
20627
|
+
throw "Unknown scope type: '" + type + "', For model with resource: '" + this.resource + "'";
|
20145
20628
|
}
|
20146
20629
|
this.scope.declared.push(name);
|
20147
20630
|
return this[name] = builder({
|
@@ -20210,7 +20693,7 @@ scopable = {
|
|
20210
20693
|
forward_scopes_to_associations: function() {
|
20211
20694
|
var associated_factory, associated_resource, association, association_name, factory, forwarder, generate_forwarder, scope, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4;
|
20212
20695
|
|
20213
|
-
factory = model[this.resource];
|
20696
|
+
factory = model[this.resource.name];
|
20214
20697
|
_ref = factory.has_many;
|
20215
20698
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
20216
20699
|
association_name = _ref[_i];
|
@@ -20290,6 +20773,19 @@ scopable = {
|
|
20290
20773
|
};
|
20291
20774
|
|
20292
20775
|
builders = {
|
20776
|
+
string: stampit().enclose(function() {
|
20777
|
+
var base;
|
20778
|
+
|
20779
|
+
base = scopable.base(this);
|
20780
|
+
return stampit.mixIn(function() {
|
20781
|
+
var callbacks, value, _base, _name;
|
20782
|
+
|
20783
|
+
value = arguments[0], callbacks = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
20784
|
+
callbacks.length && (this.scope.then = this.scope.then.concat(callbacks));
|
20785
|
+
(_base = this.scope.data)[_name = base.name] || (_base[_name] = value != null ? value : this["$" + base.name]);
|
20786
|
+
return this;
|
20787
|
+
});
|
20788
|
+
}),
|
20293
20789
|
boolean: stampit().enclose(function() {
|
20294
20790
|
var base;
|
20295
20791
|
|
@@ -20665,7 +21161,7 @@ cpfable = stampit({
|
|
20665
21161
|
if (d1 > 9) {
|
20666
21162
|
d1 = 0;
|
20667
21163
|
}
|
20668
|
-
if (+dv.charAt(0 !== d1)
|
21164
|
+
if (+dv.charAt(0) !== d1) {
|
20669
21165
|
return false;
|
20670
21166
|
}
|
20671
21167
|
d1 *= 2;
|
@@ -20729,8 +21225,12 @@ messages = {
|
|
20729
21225
|
return "O registro associado " + attribute_name + " não é válido.";
|
20730
21226
|
},
|
20731
21227
|
server: function(attribute_name, options) {
|
20732
|
-
attribute_name
|
20733
|
-
|
21228
|
+
if (attribute_name === 'base') {
|
21229
|
+
return options.server_message;
|
21230
|
+
} else {
|
21231
|
+
attribute_name = this.human_attribute_name(attribute_name);
|
21232
|
+
return "" + attribute_name + " " + options.server_message + ".";
|
21233
|
+
}
|
20734
21234
|
},
|
20735
21235
|
type: function(attribute_name, options) {
|
20736
21236
|
attribute_name = this.human_attribute_name(attribute_name);
|
@@ -20764,7 +21264,8 @@ errorsable = stampit({
|
|
20764
21264
|
}
|
20765
21265
|
},
|
20766
21266
|
push: Array.prototype.push,
|
20767
|
-
splice: Array.prototype.splice
|
21267
|
+
splice: Array.prototype.splice,
|
21268
|
+
indexOf: Array.prototype.indexOf
|
20768
21269
|
}, {
|
20769
21270
|
model: null,
|
20770
21271
|
messages: null,
|
@@ -20785,7 +21286,7 @@ initializers = {
|
|
20785
21286
|
}
|
20786
21287
|
});
|
20787
21288
|
this.validated = false;
|
20788
|
-
this.subscribe('dirty', function() {
|
21289
|
+
this.subscribe('dirty', function(value) {
|
20789
21290
|
return this.validated = false;
|
20790
21291
|
});
|
20791
21292
|
return Object.defineProperty(this, 'valid', {
|
@@ -20866,7 +21367,7 @@ extensions = {
|
|
20866
21367
|
validate: function(doned, failed) {
|
20867
21368
|
var results, validator, _i, _len, _ref;
|
20868
21369
|
|
20869
|
-
if (this.validated) {
|
21370
|
+
if (this.validated && !this.dirty) {
|
20870
21371
|
return this.validation;
|
20871
21372
|
}
|
20872
21373
|
this.errors.clear();
|
@@ -29463,8 +29964,12 @@ require.alias("components-modernizr/modernizr.js", "components-modernizr/index.j
|
|
29463
29964
|
require.alias("indefinido-indemma/index.js", "ened/deps/indemma/index.js");
|
29464
29965
|
require.alias("indefinido-indemma/vendor/stampit.js", "ened/deps/indemma/vendor/stampit.js");
|
29465
29966
|
require.alias("indefinido-indemma/vendor/sinon.js", "ened/deps/indemma/vendor/sinon.js");
|
29967
|
+
require.alias("indefinido-indemma/vendor/owl/pluralize.js", "ened/deps/indemma/vendor/owl/pluralize.js");
|
29466
29968
|
require.alias("indefinido-indemma/lib/record.js", "ened/deps/indemma/lib/record.js");
|
29467
29969
|
require.alias("indefinido-indemma/lib/record/associable.js", "ened/deps/indemma/lib/record/associable.js");
|
29970
|
+
require.alias("indefinido-indemma/lib/record/persistable.js", "ened/deps/indemma/lib/record/persistable.js");
|
29971
|
+
require.alias("indefinido-indemma/lib/record/storable.js", "ened/deps/indemma/lib/record/storable.js");
|
29972
|
+
require.alias("indefinido-indemma/lib/record/queryable.js", "ened/deps/indemma/lib/record/queryable.js");
|
29468
29973
|
require.alias("indefinido-indemma/lib/record/resource.js", "ened/deps/indemma/lib/record/resource.js");
|
29469
29974
|
require.alias("indefinido-indemma/lib/record/rest.js", "ened/deps/indemma/lib/record/rest.js");
|
29470
29975
|
require.alias("indefinido-indemma/lib/record/restfulable.js", "ened/deps/indemma/lib/record/restfulable.js");
|