From 85e687e29c0d22893af2ed587d4abe0d3dc1aa8e Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Thu, 3 Mar 2011 23:59:37 -0500 Subject: [PATCH] Added Interface.isInterface() --- lib/interface.js | 20 ++++++++++++++++++++ test/test-interface-extend.js | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/lib/interface.js b/lib/interface.js index f9098f4..8cba127 100644 --- a/lib/interface.js +++ b/lib/interface.js @@ -75,6 +75,26 @@ module.exports.extend = function() }; +/** + * Determines whether the provided object is an interface created through + * ease.js + * + * @param {Object} obj object to test + * + * @return {boolean} true if interface (created through ease.js), otherwise + * false + */ +module.exports.isInterface = function( obj ) +{ + obj = obj || {}; + + return ( obj.prototype instanceof Interface ) + ? true + : false + ; +}; + + /** * Default interface implementation * diff --git a/test/test-interface-extend.js b/test/test-interface-extend.js index 06d68e7..2e542c7 100644 --- a/test/test-interface-extend.js +++ b/test/test-interface-extend.js @@ -105,6 +105,12 @@ for ( var i = 0; i < base_types.length; i++ ) "Interface contains defined abstract methods" ); + assert.equal( + Interface.isInterface( BaseType ), + true, + "Interface is considered to be an interface" + ); + var SubType = Interface.extend( BaseType, {