Skip to content

Commit

Permalink
Merge branch 'release/0.3.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
dcrockwell committed Oct 29, 2015
2 parents 16da05d + 8092665 commit b9abe5d
Show file tree
Hide file tree
Showing 42 changed files with 293 additions and 64 deletions.
2 changes: 1 addition & 1 deletion es5/lib/collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
1 change: 1 addition & 0 deletions es5/lib/model/find.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"use strict";
59 changes: 45 additions & 14 deletions es5/lib/model/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,36 @@ var Model = (function () {
}
}, {
key: "ensure",
value: function ensure(attributeName, validatorFunction, validatorMessage) {
value: function ensure(attributeNameOrNames, validatorFunction, validatorMessage) {
var _this = this;

if (attributeNameOrNames.constructor === Array) {
(function () {
var attributeNames = attributeNameOrNames;

attributeNames.forEach(function (attributeName) {
_this[_symbols2["default"].addValidationForAttribute](attributeName, validatorFunction, attributeNames, validatorMessage);
});
})();
} else {
var attributeName = attributeNameOrNames;

this[_symbols2["default"].addValidationForAttribute](attributeName, validatorFunction, attributeName, validatorMessage);
}
}
}, {
key: _symbols2["default"].addValidationForAttribute,
value: function value(attributeName, validatorFunction, validatorParameters, validatorMessage) {
var _ = (0, _incognito2["default"])(this);

_.validations[attributeName] = _.validations[attributeName] || [];

var validatorDetails = { validator: validatorFunction };

if (validatorParameters.constructor === Array) {
validatorDetails.parameters = validatorParameters;
}

if (validatorMessage) {
validatorDetails.message = validatorMessage;
}
Expand Down Expand Up @@ -146,7 +170,7 @@ var Model = (function () {
}, {
key: "invalidAttributes",
value: function invalidAttributes(callback) {
var _this = this;
var _this2 = this;

var _ = (0, _incognito2["default"])(this);
var attributeNamesWithValidators = Object.keys(_.validations);
Expand Down Expand Up @@ -175,8 +199,15 @@ var Model = (function () {

var performValidation = function performValidation(validation, returnValue) {
var validator = validation.validator;
var parameters = validation.parameters;

var validatorParameters = attributeName;

if (parameters) {
validatorParameters = parameters;
}

validator.call(_this, attributeName, function (error, validatorDetails) {
validator.call(_this2, validatorParameters, function (error, validatorDetails) {
if (validatorDetails.result) {
returnValue(null, null);
} else {
Expand Down Expand Up @@ -300,18 +331,18 @@ var Model = (function () {
}, {
key: _symbols2["default"].callDeep,
value: function value(methodName, predicate, callback) {
var _this2 = this;
var _this3 = this;

var associationNames = Object.keys(this.associations);

_flowsync2["default"].mapParallel(associationNames, function (associationName, next) {

var associationDetails = _this2.associations[associationName];
var associationDetails = _this3.associations[associationName];

switch (associationDetails.type) {
case "belongsTo":
case "hasOne":
var model = _this2[associationName];
var model = _this3[associationName];
if (model) {
//pass the associationDetails.whereArgs to the function
var result = predicate(associationDetails);
Expand All @@ -326,7 +357,7 @@ var Model = (function () {
break;

case "hasMany":
var collection = _this2[associationName];
var collection = _this3[associationName];
//collection set, and not many to many (nothing in that case)
if (collection) {
//let array = [].slice.call(collection);
Expand Down Expand Up @@ -357,19 +388,19 @@ var Model = (function () {
}, {
key: _symbols2["default"].getFieldAttributes,
value: function value() {
var _this3 = this;
var _this4 = this;

var attributeNames = Object.keys(this.attributes);
var fieldAttributes = {};
attributeNames.forEach(function (attributeName) {
fieldAttributes[(0, _jargon2["default"])(attributeName).snake.toString()] = _this3[attributeName];
fieldAttributes[(0, _jargon2["default"])(attributeName).snake.toString()] = _this4[attributeName];
});

var _ = (0, _incognito2["default"])(this);

//add belongsTo associations and remove others
Object.keys(this.associations).forEach(function (associationName) {
var relatedModel = _this3[associationName];
var relatedModel = _this4[associationName];
var foreignKeyField = (0, _jargon2["default"])(associationName).foreignKey.toString();
if (_.associations[associationName].type === "belongsTo") {
//try with relatedModel and relatedModel.id
Expand All @@ -379,7 +410,7 @@ var Model = (function () {
//or just with the relatedModelId
//construct the snake with _id and then camelize it
var foreignIdAsAttribute = (0, _jargon2["default"])(foreignKeyField).camel.toString();
fieldAttributes[foreignKeyField] = _this3[foreignIdAsAttribute];
fieldAttributes[foreignKeyField] = _this4[foreignIdAsAttribute];
}
} else {
//console.log("getFieldAttributes delete on ", {on: this.constructor.name, associationName: associationName, foreignKeyField: foreignKeyField, relatedModel: relatedModel});
Expand Down Expand Up @@ -425,12 +456,12 @@ var Model = (function () {
this[_symbols2["default"].parseAttributesFromFields](newAttributes);
},
get: function get() {
var _this4 = this;
var _this5 = this;

var attributes = {};
this.properties.forEach(function (propertyName) {
if (!(0, _incognito2["default"])(_this4).associations[propertyName]) {
attributes[propertyName] = _this4[propertyName];
if (!(0, _incognito2["default"])(_this5).associations[propertyName]) {
attributes[propertyName] = _this5[propertyName];
}
});
return attributes;
Expand Down
25 changes: 13 additions & 12 deletions es5/lib/model/symbols.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
"use strict";

module.exports = {
callDeep: Symbol(),
addAssociation: Symbol(),
getFieldAttributes: Symbol(),
parseAttributesFromFields: Symbol(),
setAttributes: Symbol(),
attributes: Symbol(),
associations: Symbol(),
properties: Symbol(),
validations: Symbol(),
isNew: Symbol(),
fetchBy: Symbol(),
getDatabase: Symbol()
callDeep: Symbol(),
addAssociation: Symbol(),
getFieldAttributes: Symbol(),
parseAttributesFromFields: Symbol(),
addValidationForAttribute: Symbol(),
setAttributes: Symbol(),
attributes: Symbol(),
associations: Symbol(),
properties: Symbol(),
validations: Symbol(),
isNew: Symbol(),
fetchBy: Symbol(),
getDatabase: Symbol()
};
35 changes: 35 additions & 0 deletions es5/lib/validation/areOnlyProperties.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = areOnlyProperties;

function areOnlyProperties(propertyNames, callback) {
var model = this;
var defaultErrorMessage = "must be the only properties on " + model.constructor.name;

var validationDetails = {
result: undefined,
message: defaultErrorMessage
};

if (model.properties.length === propertyNames.length) {
var propertiesMatch = true;

propertyNames.forEach(function (propertyName) {
if (!model.properties.includes(propertyName)) {
propertiesMatch = false;
}
});

validationDetails.result = propertiesMatch;

callback(undefined, validationDetails);
} else {
validationDetails.result = false;
callback(undefined, validationDetails);
}
}

module.exports = exports["default"];
2 changes: 1 addition & 1 deletion es5/spec/model.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
2 changes: 1 addition & 1 deletion es5/spec/model/afterSave.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
2 changes: 1 addition & 1 deletion es5/spec/model/beforeSave.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
2 changes: 1 addition & 1 deletion es5/spec/model/chain.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
2 changes: 1 addition & 1 deletion es5/spec/model/constructor.database.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down
2 changes: 1 addition & 1 deletion es5/spec/model/delete.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

Expand Down

0 comments on commit b9abe5d

Please sign in to comment.