From 2205af8c07ca09ff22dbb84e50ef090e1d04d237 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Thu, 20 Jan 2011 23:56:39 -0500 Subject: [PATCH] Can initialize member object with existing objects for each level of visibility --- lib/member_builder.js | 8 ++++---- test/test-member_builder.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/member_builder.js b/lib/member_builder.js index 5647eea..dd9f102 100644 --- a/lib/member_builder.js +++ b/lib/member_builder.js @@ -31,12 +31,12 @@ * * @return {{public: Object, protected: Object, private: Object}} */ -exports.initMembers = function() +exports.initMembers = function( mpublic, mprotected, mprivate ) { return { - 'public': {}, - 'protected': {}, - 'private': {}, + 'public': mpublic || {}, + 'protected': mprotected || {}, + 'private': mprivate || {}, }; }; diff --git a/test/test-member_builder.js b/test/test-member_builder.js index 2aa5056..58c89a3 100644 --- a/test/test-member_builder.js +++ b/test/test-member_builder.js @@ -37,3 +37,32 @@ var common = require( './common' ), ); } )(); + +( function testCanInitMembersWithExistingObjects() +{ + var pub = { foo: 'bar' }, + pro = { bar: 'baz' }, + priv = { baz: 'foo' }, + + members = builder.initMembers( pub, pro, priv ) + ; + + assert.deepEqual( + members[ 'public' ], + pub, + "Can specify object to use for public members" + ); + + assert.deepEqual( + members[ 'protected' ], + pro, + "Can specify object to use for protected members" + ); + + assert.deepEqual( + members[ 'private' ], + priv, + "Can specify object to use for private members" + ); +} )(); +