From 7dab5c7b20b4b56b0a786a8fd7c53ac2e5e18fa7 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Mon, 17 Jan 2011 22:24:02 -0500 Subject: [PATCH] Keywords are now returned by propParse --- lib/util.js | 5 +-- test/test-util-prop-parse-keywords.js | 45 +++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/lib/util.js b/lib/util.js index a0c11b4..f4aa8d3 100644 --- a/lib/util.js +++ b/lib/util.js @@ -239,13 +239,14 @@ exports.propParse = function( data, options ) callbackMethod, name, value, - exports.isAbstractMethod( value ) + exports.isAbstractMethod( value ), + keywords ); } // simple property else { - callbackProp.call( callbackProp, name, value ); + callbackProp.call( callbackProp, name, value, keywords ); } } }; diff --git a/test/test-util-prop-parse-keywords.js b/test/test-util-prop-parse-keywords.js index 2c5d710..4986d6c 100644 --- a/test/test-util-prop-parse-keywords.js +++ b/test/test-util-prop-parse-keywords.js @@ -122,3 +122,48 @@ var common = require( './common' ), }, Error, "Custom keyword parser tolerates bogus response" ); } )(); + +( function testParserReturnsKeywords() +{ + var data = { + 'public foo': '', + 'const foo2': '', + 'public bogus keywords foo3': '', + + 'public static final method': function() {}, + }, + + parsed_keywords = {}, + + expected = { + foo: { 'public': true }, + foo2: { 'const': true }, + foo3: { 'public': true, 'bogus': true, 'keywords': true }, + + method: { 'public': true, 'static': true, 'final': true }, + } + ; + + util.propParse( data, { + property: function( name, value, keywords ) + { + parsed_keywords[ name ] = keywords; + }, + + method: function( name, func, is_abstract, keywords ) + { + parsed_keywords[ name ] = keywords; + }, + } ); + + for ( prop in parsed_keywords ) + { + assert.deepEqual( + parsed_keywords[ prop ], + expected[ prop ], + "Keywords are properly recognized and made available for " + + "interpretation" + ); + } +} )(); +