Code coverage report for core/errors.js

Statements: 80% (8 / 10)      Branches: 50% (1 / 2)      Functions: 50% (2 / 4)      Lines: 80% (8 / 10)      Ignored: none     

All files » core/ » errors.js
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 38 39 40 41                                        1     1 16 16 22   16   1   1                
/*
 * Copyright 2014-2016, Sébastien Piquemal <sebpiq@gmail.com>
 *
 * rhizome is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * rhizome is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with rhizome.  If not, see <http://www.gnu.org/licenses/>.
 */
"use strict";
 
// !!! This file must not use ES6 features, as it is browserified
 
var _ = require('underscore')
 
// Error for when the config of an object is not valid
var ValidationError = exports.ValidationError = function ValidationError(fields) {
  this.fields = fields
  this.message = _.chain(fields).pairs()
    .map(function(p) { return (p[0].length ? p[0] : '/') + ' : ' + p[1] })
    .value().join('\n')
  this.message = '\n' + this.message
}
ValidationError.prototype = Object.create(Error.prototype)
 
_.extend(ValidationError.prototype, {
  name: 'ValidationError',
 
  addPrefix: function(prefix) {
    this.fields = _.chain(this.fields).pair()
      .map(function(p) { return [prefix + p[0], p[1]] })
      .object().value()
  }
})