diff --git a/lib/eson.js b/lib/eson.js index d0e5976..4c5d2bc 100644 --- a/lib/eson.js +++ b/lib/eson.js @@ -22,6 +22,7 @@ exports.version = '0.0.1'; */ exports.ms = require('./plugins/ms'); +exports.env = require('./plugins/env'); exports.glob = require('./plugins/glob'); exports.bools = require('./plugins/bools'); exports.replace = require('./plugins/replace'); diff --git a/lib/plugins/env.js b/lib/plugins/env.js new file mode 100644 index 0000000..83c0255 --- /dev/null +++ b/lib/plugins/env.js @@ -0,0 +1,9 @@ + +/** + * Allow environment variables to take precedence over `val`. + */ + +module.exports = function(key, val){ + var name = key.toUpperCase().split(' ').join('_'); + return process.env[name] || val; +}; \ No newline at end of file diff --git a/test/bools.js b/test/bools.js index a71725f..b644f98 100644 --- a/test/bools.js +++ b/test/bools.js @@ -2,7 +2,7 @@ var Parser = require('../') , bools = Parser.bools; -describe('ms', function(){ +describe('bools', function(){ it('should parse string bool representations', function(){ bools('', 'yes').should.be.true; bools('', 'enabled').should.be.true; diff --git a/test/env.js b/test/env.js new file mode 100644 index 0000000..f322e40 --- /dev/null +++ b/test/env.js @@ -0,0 +1,13 @@ + +var Parser = require('../') + , env = Parser.env; + +describe('env', function(){ + it('should allow setting environment variables', function(){ + env('foo', 'bar').should.equal('bar'); + process.env.FOO = 'baz'; + env('foo', 'bar').should.equal('baz'); + process.env.DEV_UI = 'yes'; + env('dev ui', 'no').should.equal('yes'); + }) +}) \ No newline at end of file