text: !function(r){"use strict";function e(){}function t(e){if(!r.isObject(e))throw new Error("InterfaceValidator constructor requires argument to be an object");this.validationObject=e}var n,i;i={},e.prototype.register=function(e,t){var n,o;if(2!==arguments.length)throw new Error("Interface.register() method requires exactly two arguments: name and methods");if(r.isString(t)&&(t=[t]),!r.isArray(t))throw new Error("Interface.register() method requires a string or array of method names as second argument");for(n=0,o=t.length;o>n;n++)if(!r.isString(t[n]))throw new Error("Interface.register() method requires a string or array of method names");i[e]=t},e.prototype.ensure=function(r){return new t(r)},t.prototype["implements"]=function(e){var t,n,o;if(r.isString(e)){if(t=i[e],!r.isDefined(t))throw new Error("Unregistered interface: "+e);for(n=0,o=t.length;o>n;n++){var a=t[n];if(!r.isFunction(this.validationObject[a]))throw new Error("Object does not implement interface: "+e)}}else{if(!r.isArray(e))throw new Error("InterfaceValidator.implements() method requires a string or array of interface names");for(n=0,o=e.length;o>n;n++)this["implements"](e[n])}},n=r.module("angular-interface",[]),n.service("Interface",e)}(angular);