Skip to content

Commit

Permalink
Remove pack array support. Closes #1652
Browse files Browse the repository at this point in the history
  • Loading branch information
Eran Hammer committed May 25, 2014
1 parent 89f90dd commit 6c20786
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 49 deletions.
70 changes: 24 additions & 46 deletions lib/composer.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ var Pack = require('./pack');
var internals = {};

/*
var config = [{
var config = {
pack: {
cache: 'redis',
app: {
Expand Down Expand Up @@ -38,77 +38,59 @@ var config = [{
plugins: '/'
}
}
}];
};
*/

exports = module.exports = internals.Composer = function (manifest, options) {

this._manifest = Hoek.clone([].concat(manifest));
this._manifest = Hoek.clone(manifest);
this._settings = Hoek.clone(options || {});
this._packs = [];
this._pack = null;
};


internals.Composer.prototype.compose = function (callback) {

var self = this;

// Create packs

var sets = [];
this._manifest.forEach(function (set) {
// Create pack

Hoek.assert(set.servers && set.servers.length, 'Pack missing servers definition');
Hoek.assert(set.plugins, 'Pack missing plugins definition');
var set = this._manifest;

var pack = new Pack(Hoek.applyToDefaults(self._settings.pack || {}, set.pack || {}));
Hoek.assert(set.servers && set.servers.length, 'Pack missing servers definition');
Hoek.assert(set.plugins, 'Pack missing plugins definition');

// Load servers
this._pack = new Pack(Hoek.applyToDefaults(self._settings.pack || {}, set.pack || {}));

set.servers.forEach(function (server) {
// Load servers

if (server.host &&
server.host.indexOf('$env.') === 0) {
set.servers.forEach(function (server) {

server.host = process.env[server.host.slice(5)];
}
if (server.host &&
server.host.indexOf('$env.') === 0) {

if (server.port &&
typeof server.port === 'string' &&
server.port.indexOf('$env.') === 0) {
server.host = process.env[server.host.slice(5)];
}

server.port = parseInt(process.env[server.port.slice(5)], 10);
}
if (server.port &&
typeof server.port === 'string' &&
server.port.indexOf('$env.') === 0) {

pack.server(server.host, server.port, server.options);
});
server.port = parseInt(process.env[server.port.slice(5)], 10);
}

sets.push({ pack: pack, plugins: set.plugins });
self._packs.push(pack);
self._pack.server(server.host, server.port, server.options);
});

// Register plugins

Async.forEachSeries(sets, function (set, next) {

set.pack.require(set.plugins, next);
},
function (err) {

return callback(err);
});
this._pack.require(set.plugins, callback);
};


internals.Composer.prototype.start = function (callback) {

callback = callback || Hoek.ignore;

Async.forEachSeries(this._packs, function (pack, next) {

pack.start(next);
},
function (err) {
this._pack.start(function (err) {

Hoek.assert(!err, 'Failed starting plugins:', err && err.message);
return callback();
Expand All @@ -125,9 +107,5 @@ internals.Composer.prototype.stop = function (options, callback) {

callback = callback || Hoek.ignore;

Async.forEach(this._packs, function (pack, next) {

pack.stop(options, next);
},
callback);
this._pack.stop(options, callback);
};
6 changes: 3 additions & 3 deletions test/composer.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ describe('Composer', function () {
expect(err).to.not.exist;
composer.stop(function () {

composer._packs[0]._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {
composer._pack._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {

expect(res.result).to.equal('testing123special-value');
done();
Expand Down Expand Up @@ -110,7 +110,7 @@ describe('Composer', function () {
expect(err).to.not.exist;
composer.stop();

composer._packs[0]._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {
composer._pack._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {

expect(res.result).to.equal('testing123');
done();
Expand Down Expand Up @@ -162,7 +162,7 @@ describe('Composer', function () {

expect(err).to.not.exist;

expect(composer._packs[0].app).to.equal('only here');
expect(composer._pack.app).to.equal('only here');
done();
});
});
Expand Down

0 comments on commit 6c20786

Please sign in to comment.