import Ember from 'ember'; /** * Base validator that all validators should extend * Handles checking of individual properties or the entire model */ var BaseValidator = Ember.Object.extend({ properties: [], passed: false, /** * When passed a model and (optionally) a property name, * checks it against a list of validation functions * @param {Ember.Object} model Model to validate * @param {string} prop Property name to check * @return {boolean} True if the model passed all (or one) validation(s), * false if not */ check: function (model, prop) { var self = this; this.set('passed', true); if (prop && this[prop]) { this[prop](model); } else { this.get('properties').forEach(function (property) { if (self[property]) { self[property](model); } }); } return this.get('passed'); }, invalidate: function () { this.set('passed', false); } }); export default BaseValidator;