function _parseExample()

in scripts/docs.js [95:133]


function _parseExample(exampleSource) {
    var lines = exampleSource.split('\n');

    // parse first example line as config
    var example = _parseConfigLine(lines[0]);

    // other lines are the example code
    example.code = lines.slice(1).join('\n').trim();

    // wrap the errorMessage in the format needed for the eslint rule tester.
    if (example.errorMessage) {
        if (_.isString(example.errorMessage)) {
            example.errors = [_wrapErrorMessage(example.errorMessage)];
        } else {
            throw new Error('Example "errorMessage" must be a string');
        }
    } else if (example.errorMessages) {
        if (_.isArray(example.errorMessages)) {
            example.errors = example.errorMessages.map(_wrapErrorMessage);
        } else {
            throw new Error('Example "errorMessages" must be an array');
        }
    }

    // invalid examples require an errorMessage
    if (!example.valid && !(example.errorMessage || example.errorMessages)) {
        throw new Error('Example config requires "errorMessage(s)" when valid: false');
    }

    // json options needed as group key
    example.jsonOptions = example.options ? JSON.stringify(example.options) : '';

    // use options for tests or default options of no options are configured
    if (example.options) {
        example.displayOptions = example.options;
    }

    return example;
}