[fix] Fixed regression introduced by #98.

master
indexzero 2014-11-26 01:28:31 -05:00
parent 8d5fb25701
commit 09342555ba
2 changed files with 11 additions and 5 deletions

View File

@ -21,9 +21,14 @@ var Env = exports.Env = function (options) {
options = options || {}; options = options || {};
this.type = 'env'; this.type = 'env';
this.readOnly = true; this.readOnly = true;
this.match = options.match
this.whitelist = options.whitelist || []; this.whitelist = options.whitelist || [];
this.separator = options.separator || ''; this.separator = options.separator || '';
if (typeof options.match === 'function'
&& typeof options !== 'string') {
this.match = options.match;
}
if (options instanceof Array) { if (options instanceof Array) {
this.whitelist = options; this.whitelist = options;
} }
@ -57,7 +62,7 @@ Env.prototype.loadEnv = function () {
return key.match(self.match) || self.whitelist.indexOf(key) !== -1 return key.match(self.match) || self.whitelist.indexOf(key) !== -1
} }
else if (self.match) { else if (self.match) {
return key.match(self.match) return key.match(self.match);
} }
else { else {
return !self.whitelist.length || self.whitelist.indexOf(key) !== -1 return !self.whitelist.length || self.whitelist.indexOf(key) !== -1
@ -65,7 +70,8 @@ Env.prototype.loadEnv = function () {
}).forEach(function (key) { }).forEach(function (key) {
if (self.separator) { if (self.separator) {
self.set(common.key.apply(common, key.split(self.separator)), process.env[key]); self.set(common.key.apply(common, key.split(self.separator)), process.env[key]);
} else { }
else {
self.set(key, process.env[key]); self.set(key, process.env[key]);
} }
}); });

View File

@ -12,7 +12,7 @@ var assert = require('assert'),
vows = require('vows'), vows = require('vows'),
helpers = require('./helpers'), helpers = require('./helpers'),
nconf = require('../lib/nconf'); nconf = require('../lib/nconf');
var fixturesDir = path.join(__dirname, 'fixtures'), var fixturesDir = path.join(__dirname, 'fixtures'),
mergeFixtures = path.join(fixturesDir, 'merge'), mergeFixtures = path.join(fixturesDir, 'merge'),
files = [path.join(mergeFixtures, 'file1.json'), path.join(mergeFixtures, 'file2.json')], files = [path.join(mergeFixtures, 'file1.json'), path.join(mergeFixtures, 'file2.json')],
@ -123,7 +123,7 @@ vows.describe('nconf/provider').addBatch({
.add('file2', {type: 'file', file: files[1]}), .add('file2', {type: 'file', file: files[1]}),
"should respect the hierarchy": function(provider) { "should respect the hierarchy": function(provider) {
var merged = provider.load(); var merged = provider.load();
helpers.assertMerged(null, merged); helpers.assertMerged(null, merged);
assert.equal(merged.foo.bar, 'baz'); assert.equal(merged.foo.bar, 'baz');
assert.equal(merged.candy.something, 'file1'); assert.equal(merged.candy.something, 'file1');