diff --git a/lib/upfront.js b/lib/upfront.js index 86915eb..b731e48 100644 --- a/lib/upfront.js +++ b/lib/upfront.js @@ -76,24 +76,38 @@ upfront.setup = function(opts, done) { } catch(e) { return done(e, true); } - } + else if ( typeof opts.config == "object" ) { - console.log('opts is object'); + console.log('config is object'); glom(opts.config, done); } + else if ( typeof opts.config == "string" ) { - console.log('opts is string'); - return done('fix this', false); - fs.readFile(opts.config, 'utf8', function (err, data) { - if (!err) { glom(data); } - done(null, true); - return; - }); + // console.log('config is string'); + try { + fs.readFile(opts.config, 'utf8', function (err, data) { + if (err) { return done(err); } + var cfg = JSON.parse(data); + console.log('cfg', typeof cfg, cfg); + glom(data, done); + }); + } catch(e) { + return done(e, true); + } } }; +var glom = function(config, done) { + upfront.config = _.extend(upfront.config, config); + upfront.config.views = app.settings.views; + var reg = [ "^", upfront.config.views, "\/(.*?)\.(", upfront.config.extensions.join('|'), ")$" ]; + upfront.config.rx = new RegExp(reg.join('')); + done(null, true); +}; + + upfront.grab = function(done) { walk(upfront.config.views, function(err, results){ app.set('templates', results); @@ -104,14 +118,6 @@ upfront.grab = function(done) { }; -var glom = function(config, done) { - upfront.config = _.extend(upfront.config, config); - upfront.config.views = app.settings.views; - var reg = [ "^", upfront.config.views, "\/(.*?)\.(", upfront.config.extensions.join('|'), ")$" ]; - upfront.config.rx = new RegExp(reg.join('')); - done(null, true); -}; - // Walk -- What did you say? var walk = function(dir, done) { var slug, results = {}; diff --git a/test/upfront.js b/test/upfront.js index b0fada4..e25426d 100644 --- a/test/upfront.js +++ b/test/upfront.js @@ -100,7 +100,7 @@ describe('Setup', function(){ should.exist(app.settings.views); done(); }); - it('throws an error when parsing the file', function(done){ + it('returns an error when parsing the file', function(done){ upfront.setup({app:app, config:"not_there.json"}, function(error, success){ should.exist(error); should.not.exist(success); @@ -313,7 +313,7 @@ describe('Setup', function(){ }); }); }); - + /* describe('when passing app as attribute with config file attribute', function(done){ var app, upfront; beforeEach(function(done){ @@ -366,6 +366,7 @@ describe('Setup', function(){ }); }); }); + */ // describe('when passing app as attribute with config as object', function(done){ // it('succeeds', function(){ // should.equal(false, true, 'test unwritten');