{"_id":"classical","_rev":"37-d821d1094d358f8703e1ff5846cf8ee2","name":"classical","description":"Functional Classical Inheritance for Javascript","dist-tags":{"latest":"2.3.1"},"versions":{"1.2.1":{"name":"classical","version":"1.2.1","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Documentation\n## Creating a Class\n```javascript\nvar Mammal = require('classical').create(function() {\n    this.name                           = null;\n\n    this.constructor = function(name) {\n        this.name                       = name;\n    };\n\n    this.speak = function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    };\n});\n```\n\n## Extension\n```javascript\nvar Dog = Mammal.extend(function() {\n    this.breed                          = null;\n\n    this.constructor = function(name, breed) {\n        this.breed                      = breed;\n    };\n\n    this.speak = function() {\n        this.super.speak('Woof!');\n    }\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n## Interfaces\n```javascript\nvar Animal = require('classical').interface(function() {\n    this.speak                          = function() {};\n});\nMammal.implements(Animal);\n```\n","_id":"classical@1.2.1","dist":{"shasum":"1de59b4bf6bd5b10cef5a8966ad9bfd9216eaf11","tarball":"https://registry.npmjs.org/classical/-/classical-1.2.1.tgz","integrity":"sha512-2Esh4hxsn7PdW/nlyrVgAktMTCVjbgBjQceu4fkTjD7HbrUGSVNXGQjOC9VQhIaI487lmWjti1fM8R8HtKKGdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyUSdDurcLbkqOVYdWrwYPIWxwucXbHfsoSS7BF7jOrAiEAp+lw2WOIrewfyEzirf1FSEb8zLUc3lGSE9BEcb3ZgQE="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.0":{"name":"classical","version":"2.2.0","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.0","dist":{"shasum":"25e36f279c6728462828ceb0e900f3c770a72be0","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.0.tgz","integrity":"sha512-9SdZhurQ590xV+/ejS1KMN8/SV6sD4XrBFF5JdFZ6i+sM6FTeEvTx8i6CKhVqABV/6IaGoXbWaMAlu2lswT8Fw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMvQN3VjD25RfKjmj/t8jkQl50w4O0LI0AOC9Vipwt0wIgTH4O9MQ2747MQ3LmLt5Cz2OAJobezjwwGwvGK0ihSK4="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.1":{"name":"classical","version":"2.2.1","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.1","dist":{"shasum":"fb99d4ec9e623c6b3a36f0b24d844e0e9ffc1809","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.1.tgz","integrity":"sha512-opyq8kIxyA1DpzhTqiBVci5L+hV+k2BiOs6ZeSUXfkuDawZsIxhOMabpoFKqZrSY0UZOYafpw78pfodJiSqcJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEsBaYDH608NhNu1yEbMcl7i30BJCHK7NeyWA8/JVRgqAiEA4L3ApLZ6vCk9gxuMIQPSpWtFWH/230/nK3JH636PtNY="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.2":{"name":"classical","version":"2.2.2","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.2","dist":{"shasum":"b983564269eb0f311197be758c4910e757f2f1ff","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.2.tgz","integrity":"sha512-ZCnUgYxrhWQ2CP/9GBkXLT9J8ZnD4YGodZkG1i5wyD0TezMuzeolPMGABt0Cpe6+BZYteJZjutmGJOvFaW+IlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHlZSLik62KVp25gF8K7K2NVy38V5BjXu/8Hb3Cofl7MAiEAxFV4bcQWXew5WZtplOSvsnRShyKyIxY2wrGzV/0wKsM="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.3":{"name":"classical","version":"2.2.3","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.3","dist":{"shasum":"ddb146af82b819864b64d4b68f3f01f5e234996a","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.3.tgz","integrity":"sha512-kpIJy4DXWerjBRMBan40nT9B8DJWvwwD5YWwqmHfRrZAUZf+b8jEakiSNbBS/+Jy1ZiQkWZgiyL/Pf9MjxLJXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGxPX+E1OroWP/TS4oHYQxOryjhNY353h+WUqi4RWKyAIhAKTnDMGbHWCPoYfTdaomStzXPOuFlYw0XCgviuipnAEh"}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.4":{"name":"classical","version":"2.2.4","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.4","dist":{"shasum":"cda2c75ee18b0eab8f5efb0e1a93629be33cab86","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.4.tgz","integrity":"sha512-wd0ywD7Yyw9FKysusRTyIIR3A83XkzYWNpV52B3OI/n2EfCBOj3ILRSjEFT7kqQI9UsHVzH6NDOztf/qZn0Qhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEmZGfP99ijcmy14/Zxj6o+yELwqQuKP0/x+hc8eguJlAiBJ7lHC/DaOkugqhmqwgXxLe2ruzkGY7R6MPv0gdtDcZA=="}]},"_npmVersion":"1.1.59","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.5":{"name":"classical","version":"2.2.5","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```","_id":"classical@2.2.5","dist":{"shasum":"6002a6e87af23bd23955555c618eed14eb617577","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.5.tgz","integrity":"sha512-qdTx10IX5miIg7+lN+Q9VLPgMQhJkmXZ81praBnxBtLLRpHKSnqDOV/Oc+lq1Mf7GaNBPlSAOzfKRkiQI94u1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgEGtSeiplgznOjs9cU3y8PdSvGaH/KKNVQIG8nd9lJAiEAiKIO+6T0IqVabex6euulY4jAhfPJBb4Sy0My2nvTwfA="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.6":{"name":"classical","version":"2.2.6","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","_id":"classical@2.2.6","dist":{"shasum":"f33b50885c5fcd24dd821c8f155d1696ccc30225","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.6.tgz","integrity":"sha512-O+5iXQ0ZKGXwZepb4+NXQlAkc/Z1FI5vWFwwhZ0FR0jtDtjREd6fQni/5wHx6SOt9kLyxP5gnxMphrK6pWhJ2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3dQkoQD6FTxi55SV8kGDnU3yfxUuTStD2xybP3f2MIAiEAmbv5WvbI8iVjfeY71COA4bWkZCkWtw+ZTVIpilxz2Rc="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.7":{"name":"classical","version":"2.2.7","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","_id":"classical@2.2.7","dist":{"shasum":"a89effd2c059a9137d0c1e615a88e98920f8e63f","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.7.tgz","integrity":"sha512-XkDvflJygRWQhB2XH8MbE46zQui6utWbhVblIYDC88mV7sYvleTsUEoCnXPZDqGb/DZBeJ5scsbe8uK5sPs0og==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTfHGTXJS/ymWM63Cuzy/WUx6/UuNiIsTZq8qZ+AeSSAIgLaequ7nQvl3mNP4pQh05SPP+pUbiw04DerdM8wzt9zY="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.8":{"name":"classical","version":"2.2.8","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","_id":"classical@2.2.8","dist":{"shasum":"831facb14ce6b278396c9c71e454e96df7cfe453","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.8.tgz","integrity":"sha512-XKesT6gOJIz618FFBfGg+o0cOlX0NV2lH9eM6jkcO8hC/m5nEUD8jMVPMLr7UsUzE7QIAvcJqiJGBPxHcB6wOg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN/ctCdSO9yhhfnrEHCqUDLHxzkXa9F9ICiZO6bI12YAIgeHlSx/v9cX3UwxGjVZPUpeTXhL8LQom3EFuJfTNwB40="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.9":{"name":"classical","version":"2.2.9","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","_id":"classical@2.2.9","dist":{"shasum":"b80cdcb92abbf58af6106cc38508d6b6fb0126a6","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.9.tgz","integrity":"sha512-7fculHPcL4XbO7OI61rvyldt0A3u9EORI0f0PadkOgWKB+hWowd/prHdhj+REUvt7V9RYdTucQib6pe2tpRw3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhiO7nY5qxFh55hazHtta1NkDWh7ksdjY6IflOOWKD3QIhAJ8vttPGbwqRiZeeV8IHfSdnxXwa4mHywstCxUGzk3rd"}]},"_npmVersion":"1.1.61","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.10":{"name":"classical","version":"2.2.10","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.2.10","dist":{"shasum":"36bf7072a70315ca50a29e3edbaad7d7ead5bd1a","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.10.tgz","integrity":"sha512-3HnQwELZA30e8VPrO9ytjckWeAX8VaCXvs8wguk7kCEAI4GUmDLRo0lYs2rYo3M1uOkvtmjNLJXFpTtsJyYLpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLGPG4l7RYc6E3huVRnsAquLC9whPlTrnFJaZQytuT3wIgct+C4QDFXyuDMv543oabWi7L/uUVV6MKny37k+4oeXU="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.11":{"name":"classical","version":"2.2.11","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.2.11","dist":{"shasum":"af25cf3ad7e46531890bf27083fef449aa8e5a54","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.11.tgz","integrity":"sha512-wteWHi++myMq16uMyu2eYBALp8PF53Mlukk0jsS5x0BacJ6ocOP/RbDqX5aUGLy/kJvHVRdfCsUlllcBfg0WTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDuz43kIR0gpvMZaF/ETnQH0jDKPW7LojQpBOlC/zU3uAiAt3v+xmxZcuOiCFaZKP3NwxujloJASqFvQV6w17kAkXw=="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.12":{"name":"classical","version":"2.2.12","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.2.12","dist":{"shasum":"5450c7ee4a46ead5de6b492870685755292829e6","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.12.tgz","integrity":"sha512-mr66bGYyX7K1dVy5nzGFdbqs+DrVdf5znRGy4TcSMUfobTH+6zjsZLO4jPYkQAeB1qoTWmeEd8XZA6NFIEdncw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkRhFVF8yU62zb9uiabWek4Avg0IQG4AuWzulizZYBjwIgaWlojs9otY9urA4UsuV6urlB6wAYGbkNGFQk3aY6HC8="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.2.13":{"name":"classical","version":"2.2.13","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.2.13","dist":{"shasum":"0d6da1240bb9d63d77a762141942aea94f26ebd8","tarball":"https://registry.npmjs.org/classical/-/classical-2.2.13.tgz","integrity":"sha512-pNb36XO+BFxTO+A7VPw7pGjDtfZ6oG3F4XbbLIDEx5urnOa/LUAdLBTtuaVAoja5AroX/xThba2qSsWpWIrKrg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMzUNeQNTbW+JCRdsjxQ47LW7S5iRVmet0gT0VYEU7tAiAGD4ka2Tmdkc+0susDB7uYf9U7yMcMTWWhxFBdprlqjA=="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.3.0":{"name":"classical","version":"2.3.0","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.3.0","dist":{"shasum":"c19eba35217463e09fcab35163a3932e380dcdad","tarball":"https://registry.npmjs.org/classical/-/classical-2.3.0.tgz","integrity":"sha512-Iic/dkfD9sJsa1TIvd/3+wiWOKQ7YVzQ3aoP5HYr1pYFH9T44+Ovpuk3u6nrFdj12CPDIwJvduqq0OuOhlvTvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxZ8bM5VwvQKI9B+VvINXSQyIfYXyF0w/QWj8bLVIefgIhAMh9vvtoRdx/iOVKaU0hYrB55IZ7zkn7n6rQInszvXYV"}]},"_npmVersion":"1.1.66","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]},"2.3.1":{"name":"classical","version":"2.3.1","description":"Functional Classical Inheritance for Javascript","keywords":["class","inheritance"],"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"},"devDependencies":{"mocha":"x.x.x"},"main":"./index","readme":"Classical\n##################\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Including in your code\n## node.js\n```javascript\nrequire('classical')\n```\n\nClassical methods (Class, Extend, Public, etc.) will be placed in the global scope and can be used anywhere in your code.\n\nIf you would prefer not to use Classical at the global level, you will need to set ```process.env.CLASSICAL_PROTECTGLOBALS```\nto ```true```, and then require classical in each class:\n\n```javascript\nvar Classical = require('classical')\n```\n\nYou can then use the classical variables as ```Classical.Class```, ```Classical.Extend```, ```Classical.Public```, etc.\n\n## browser (unminified, global scope)\nIn the browser, Classical requires [require.js](http://requirejs.org/).\n\nYou must configure your requirejs to know where Classical's methods are located:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index',\n        Class               : '/path/to/classical/src/Class',\n        Interface           : '/path/to/classical/src/Interface'\n    },\n    deps: ['Classical', 'Class', 'Interface']\n});\n```\n\nYou can then use Classical as a normal requirement:\n\n```javascript\ndefine(function() {\n    return Class(function() {});\n});\n```\n\n## browser (unminified, local scope)\nIf you would prefer Classical not put itself at the window level, you will need to set ```window.CLASSICAL_PROTECTGLOBALS```\nto ```true``` before requiring Classical.\n\nYou must still configure Classical the same way; however, there are some differences when using Classical later:\n\n```javascript\ndefine(['Classical'], function(Classical) {\n    return Classical.Class(function() {});\n});\n```\n\n## browser (minified, global scope)\n**Classical does not currently work in minified format**\n\nIf you would like to use the minifed version of Classical, you must use a different requirejs config:\n\n```javascript\nrequirejs.config({\n    paths : {\n        Classical           : '/path/to/classical/index.min.js'\n    },\n    deps: ['Classical']\n}\n```\n\n## browser (minified, local scope)\n**Classical does not currently work in minified format**\n\nYou can also use the minified version of Classical without affecting the window.  This is done the same way as before,\nusing the configuration for the minfied version.\n\n# Examples\n## Creating a Class\n```javascript\nrequire('classical');\n\nvar Mammal = Class(function() {\n    this.name                           = Protected(null);\n\n    this.constructor = Public(function(name) {\n        this.name                       = name;\n    });\n\n    this.speak = Public(function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    });\n});\n```\n\n## Extension\n```javascript\nvar Dog = Extend(Mammal, function() {\n    this.breed                          = Protected(null);\n\n    this.constructor = Public(function(name, breed) {\n        this.breed                      = breed;\n    });\n\n    this.speak = Public(function() {\n        this._super.speak('Woof!');\n    });\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n# API\n## Public\nDefines a public member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be publically available \n                    for all instances of the class and its children.\n\n### Returns\n```PublicMember```  A public member \n\n### Example\n```javascript\nthis.foo = Public(function() {\n    return 'foo';\n});\n```\n\n## Protected\nDefines a protected member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class and its children.\n\n### Returns\n```ProtectedMember```   A protected member\n\n### Example\n```javascript\nthis.foo = Protected(function() {\n    return 'foo';\n});\n```\n\n## Private\nDefines a private member for a class.\n\n### Parameters\n```member```        The definition of the member.  This member will be privately available for\n                    all instances of the class, but will be unavailable to its children.\n\n### Returns\n```PrivateMember``` A private member\n\n### Example\n```javascript\nthis.foo = Private(function() {\n    return 'foo';\n});\n```\n\n## Class\nDefines a new Class.\n\n### Parameters\n```fn```            The definition of the class, represented as a function.\n\n### Returns\n```Class```         A factory to create instances of the class (using the new keyword)\n\n### Example\n```javascript\nvar Foo = Class(function() {\n    this.foo = Protected(function() {\n        return 'foo';\n    });\n    \n    this.bar = Public(function() {\n        return this.foo();\n    });\n});\nvar n   = new Foo;\nconsole.log(n.foo()); // => 'foo'\n```\n## Extend\nExtends an existing Classical or non-Classical class.\n\n### Parameters\n```ancestor```      The non-Classical class to inherit from.\n```fn```            The definition of the class, represented as a function.\n\n### Example\n```javascript\nvar Baz = Inherit(require('event').EventEmitter, function() {\n    this.constructor = Public(function() {\n        this.on('baz', this.qux);\n    });\n\n    this.baz = Public(function() {\n        this.emit('baz');\n    });\n\n    this.qux = Private(function() {\n        console.log('foo');\n    });\n});\nvar n   = new Baz;\nn.baz(); // => 'foo'\n```\n\n## Interface\nCreates a new interface to be implemented.\n\n### Parameters\n```fn```            The definition of the interface, represented as a function.\n\n### Example\n```javascript\nvar Squee = Interface(function() {\n    this.moog = Public(function(ap) {}); // A public method with one argument.\n    this.dar = Protected(Class.BOOLEAN); // A protected boolean\n    this.han = Public(Class.INT); // A public integer\n    this.mik = Private(Class.STRING); // A private string\n});\n```\n\n## Implement\nImplements interfaces as a classical class.\n\n### Parameters\n```interfaces```    An interface (or several interfaces as an array).\n```fn```            The definition of the implementing class, represented as a function.\n\n### Example\n```javascript\nvar Nop = Implement(Squee, function() {\n    this.moog = Public(function(ap) {\n        return Util.format(this.mik, ap, this.han, ap + this.han);\n    });\n\n    this.dar = Protected(true);\n    this.han = Public(4);\n    this.mik = Private(\"%s + %s = %s\");\n});\n```\n","readmeFilename":"README.md","_id":"classical@2.3.1","dist":{"shasum":"29082a95d52d9ae0c98981958e7e4c9c6f9ab4bd","tarball":"https://registry.npmjs.org/classical/-/classical-2.3.1.tgz","integrity":"sha512-pJqbvPyPJNBhqiKjdowJYBNV8odCQ9PLYQRauGwZNIuMsuKo0J3SNN1TUuQdieQjaHJfUu1NpMP2yP7Mmiruiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+7BfLMSotEPTf+2wvwTbvc1mRiuTkkCv9t6/S00oDdgIgLeiua1qJxreozZLR5evUPc9LiqykFEozD3x9qKv17q4="}]},"_npmVersion":"1.1.66","_npmUser":{"name":"kkragenbrink","email":"kevin@writh.net"},"maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}]}},"readme":"# Classical\nA simple cross-platform functional provider of classical inheritance for Javascript.\n\n# Documentation\n## Creating a Class\n```javascript\nvar Mammal = require('classical').create(function() {\n    this.name                           = null;\n\n    this.constructor = function(name) {\n        this.name                       = name;\n    };\n\n    this.speak = function(text) {\n        console.log('%s says, \"%s\"', this.name, text);\n    };\n});\n```\n\n## Extension\n```javascript\nvar Dog = Mammal.extend(function() {\n    this.breed                          = null;\n\n    this.constructor = function(name, breed) {\n        this.breed                      = breed;\n    };\n\n    this.speak = function() {\n        this.super.speak('Woof!');\n    }\n});\n```\n\n## Instantiation\n```javascript\nvar Spot = new Dog('Spot', 'Dalmation');\nSpot.speak(); // Outputs: 'Spot says, \"Woof!\"' to the console.\n```\n\n## Interfaces\n```javascript\nvar Animal = require('classical').interface(function() {\n    this.speak                          = function() {};\n});\nMammal.implements(Animal);\n```\n","maintainers":[{"name":"kkragenbrink","email":"kevin@writh.net"}],"time":{"modified":"2022-06-13T06:06:03.074Z","created":"2012-08-29T00:20:45.990Z","1.2.1":"2012-08-29T00:20:47.237Z","2.2.0":"2012-10-10T18:27:49.516Z","2.2.1":"2012-10-12T19:26:09.939Z","2.2.2":"2012-10-17T19:17:54.760Z","2.2.3":"2012-10-17T19:23:56.435Z","2.2.4":"2012-10-19T22:03:43.317Z","2.2.5":"2012-10-23T20:23:09.009Z","2.2.6":"2012-10-23T22:26:43.810Z","2.2.7":"2012-10-26T22:28:09.319Z","2.2.8":"2012-11-01T00:20:34.422Z","2.2.9":"2012-11-13T19:11:06.696Z","2.2.10":"2013-01-05T06:10:08.478Z","2.2.11":"2013-01-05T06:45:59.404Z","2.2.12":"2013-01-07T17:53:59.014Z","2.2.13":"2013-01-10T18:22:07.744Z","2.3.0":"2013-01-16T21:13:25.671Z","2.3.1":"2013-03-13T17:53:52.207Z"},"author":{"name":"Kevin Kragenbrink","email":"kevin@writh.net"},"repository":{"type":"git","url":"git://github.com/Writh/classical.git"}}