{"_id":"classx","_rev":"48-b7ce421b7c4b097a20c2e85b9947d13c","name":"classx","time":{"modified":"2022-06-13T06:06:20.594Z","created":"2014-06-17T04:42:56.270Z","0.1.0":"2014-06-17T04:42:58.823Z","0.1.1":"2014-06-17T04:53:38.617Z","0.1.2":"2014-06-17T04:58:54.705Z","0.1.3":"2014-06-23T18:56:14.117Z","0.1.4":"2014-07-02T15:42:08.223Z","0.1.5":"2014-07-09T12:23:48.757Z","0.1.6":"2014-07-09T15:54:19.827Z","0.2.0":"2014-07-10T15:22:20.373Z"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}],"description":"Basic module that provide Backbone like extend with _super functionality. Also mixins.","readme":"ClassX\n=======\n\n![travis-ci.org](https://travis-ci.org/syooo/ClassX.svg)\n\nBasic module that provide Backbone like extend with _super functionality. Also mixins.\n\n- [x] extend - you can extend any of your class\n- [x] _super - easy invoke parent's methods\n- [x] mixins - mix any object to your class\n\n\n##Usage\n####Extend\n```javascript\n/**\n * @class Note\n * @extends ClassX\n */\nvar Note = ClassX.extend({\n    /**\n     * @private\n     */\n    _defineProperties: function () {\n        this._super();\n\n        /**\n         * @type {Date}\n         * @private\n         */\n        this._dateCreation = this._options.dateCreation || new Date();\n    },\n\n    /**\n     * @constructor\n     * @protected\n     */\n    _initialize: function() {\n        this._super();\n\n        console.log('This note was created ' + this._dateCreation.getTime());\n    }\n});\n\n/**\n * @class PrivateNote\n * @extends Note\n */\nvar PrivateNote = Note.extend({\n\n    /**\n     * @constructor\n     * @protected\n     */\n    _initialize: function() {\n        this._super();\n\n        console.log('No one can see this.');\n    }\n});\n\nvar note = new Note({dateCreation: new Date(1991)}); // This note was created ...\nvar secretNote = new PrivateNote(); // This note was created ... No one can see this.\n```\n\n####Mixins\nMixins are common objects that you can mix into any of your class.\n```javascript\n/**\n * @mixin WithEncryption\n */\nvar WithEncryption = {\n    encrypt: function () {\n        console.log('encrypted!');\n    }\n}\n\n/**\n * @class ClassWithEncryption\n * @mixes WithEncryption\n */\nvar ClassWithEncryption = ClassX.mix(WithEncryption).extend({\n    /**\n     * @constructor\n     * @protected\n     */\n    _initialize: function() {\n        this._super();\n\n        this.encrypt();\n    }\n});\n\nvar instance = new ClassWithEncryption(); // encrypted!\n\n```\n\n##Install\n```\nnpm install objectx\n```\n\n\n##Run tests\n```\nmocha --reporter spec\n```\n","versions":{"0.1.1":{"name":"classx","version":"0.1.1","description":"Basic class that provide extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"nodeunit"},"devDependencies":{"nodeunit":"~0.9.0"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.1","dist":{"shasum":"568b1d6d3d5e9c27f0db369682f74d0db1c5bb16","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.1.tgz","integrity":"sha512-mzpyeE1GhcCC0EH0ZLBIlkIGA+rQnwvwSim0/nfWx6ImBEQIGk418FpKiyWe0oKS4V67WrPKaTLrogeARV0pIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/SGBJmM3gxQBG2l6rGqOttEOmdGmc1/WvTWYMa7jqvAiAETem5nEvkMXUjvsbxYogluBPTgnA3PiRLue4L8z/u9Q=="}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.1.2":{"name":"classx","version":"0.1.2","description":"Basic class that provide extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/nodeunit"},"devDependencies":{"nodeunit":"~0.9.0"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.2","dist":{"shasum":"121372e84d3da843b31d7bcf1e6ad04be9673cf3","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.2.tgz","integrity":"sha512-qUJu4rO7yXIjgOyF7h1qrUkknzHDhWYz6CX9RSBw7Z5ZoCPpyHneTShWMDbiKAKgbBKh9Zm01KL7gCwwnC/xRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd8/MH8HWNoT487xfdq74ibgcYb4TmUox3TO9oZQvUpgIhAJhHIz+Nv1SylTKaJ8WkIlkYlrjogJRjCuMibtmFfemH"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.1.3":{"name":"classx","version":"0.1.3","description":"Basic module that provide extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/nodeunit"},"devDependencies":{"nodeunit":"~0.9.0"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.3","dist":{"shasum":"fc7734220c5d0ce4a52cf9445391fc5b898a39ba","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.3.tgz","integrity":"sha512-LW/Fv07boQ1RZepwUgTsOJSRSj+wH6xJvdHRTlTqegRBqUPG8fwNKkUfO+2a5jKqGOzFf91+g8iTgGgTVPHKYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRFYw48nLV7gkmxTlVnjutAoPAQE4ogM1NPq4mGlvtLwIhANzKUJfAeJwmqMZFHW54VbKdhsaICjVRjzuAts1r5ntI"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.1.4":{"name":"classx","version":"0.1.4","description":"Basic module that provide extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/nodeunit"},"devDependencies":{"nodeunit":"~0.9.0"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.4","dist":{"shasum":"f6a5e578af003414856188e2f6396375aa7fb636","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.4.tgz","integrity":"sha512-KJVGdGL7bGWQtAhgWEYgjTNW3OuQhf+xOOYM5ciPoPVhS/E2JnBJCaMtcp0/3fGn1SH37jWpsz0n84BT6IQczw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhx1FGzDMx27n6tuw/eZCnNAEF8NdXqWw9soY+qkqpSgIhAME7mKmTCdkcZD+r7+kfjLpnZr+ngmpo1/zE1Pi/G3nX"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.1.5":{"name":"classx","version":"0.1.5","description":"Basic module that provide Backbone like extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/mocha"},"devDependencies":{"mocha":"~1.20.1"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.5","dist":{"shasum":"358849696d41b5a0200a36affb34c455799de733","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.5.tgz","integrity":"sha512-YNfB0290D20NJH4KZ9pkprb9BdjTVjQiNr+l/M0fzZ0eIYsaOjPBKPaCOyT+n4Ter1ep02wHEhUL+N7CXE9OtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUuGF0BLJuOSBLtwS52qF12jEzA0nqHWsNY4/aNT+bWAiBpgJpCCiamgsY+96FIXm4pB5tijGghS7PNGFYvbkZx/Q=="}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.1.6":{"name":"classx","version":"0.1.6","description":"Basic module that provide Backbone like extend and _super functionality","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/mocha"},"devDependencies":{"mocha":"~1.20.1"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super"],"license":"GPL-2.0","_id":"classx@0.1.6","dist":{"shasum":"dd6b7d07efc2332b3148d5ef38fe135623bf7a14","tarball":"https://registry.npmjs.org/classx/-/classx-0.1.6.tgz","integrity":"sha512-oMSgooqmAJy/8GV3iPACr2shnc9489MNYHpS1xe99zua3dobpx9aviaP22cYmc8a81UGUqA2tXGDqZazGAPRfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsEPaM0OAF09+pnYC0atSitup5eg8w20qHDwEvou75bgIhAO4N9d3OWuoWX1T8MsZUXicpci3ot4ZtpXIpQ7X2/Dqa"}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]},"0.2.0":{"name":"classx","version":"0.2.0","description":"Basic module that provide Backbone like extend with _super functionality. Also mixins.","author":{"name":"syooo","email":"syooo@mail.ru"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"scripts":{"test":"./node_modules/.bin/mocha"},"devDependencies":{"mocha":"~1.20.1"},"main":"ClassX.js","repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"keywords":["extend","_super","super","mix","mixin","mixins"],"license":"GPL-2.0","_id":"classx@0.2.0","dist":{"shasum":"609bbb2ec3b820b12d1342791cbce9b7cdeea7a9","tarball":"https://registry.npmjs.org/classx/-/classx-0.2.0.tgz","integrity":"sha512-uGPj+3U4+1ZZs3ZOFA6Qy9EhWqbjM2fvL8N4N2NEKEDlhM6RRPZ4NQFSz7ptVG1rTI++fkyx2rcknZpZBgLKQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGZ8On0JLZh21OX6EmJgaMQFtw8XkmMlKx10lsCHsXbAIgNkDc6O4Yv1JnnHPD30GpjUFmQMoPGIsg4AfbWfaz+Kc="}]},"_from":".","_npmVersion":"1.3.10","_npmUser":{"name":"syooo","email":"syooo@mail.ru"},"maintainers":[{"name":"syooo","email":"syooo@mail.ru"}]}},"dist-tags":{"latest":"0.2.0"},"readmeFilename":"README.md","keywords":["extend","_super","super","mix","mixin","mixins"],"repository":{"type":"git","url":"https://github.com/syooo/ClassX"},"contributors":[{"name":"Andrey Balakirev","email":"balakirev.andrey@gmail.com"}],"author":{"name":"syooo","email":"syooo@mail.ru"},"bugs":{"url":"https://github.com/syooo/ClassX/issues"},"license":"GPL-2.0"}