{"_id":"selfish","_rev":"36-88c7e2a7df433bca0320057856ab5667","name":"selfish","description":"Class-free, pure prototypal multiple inheritance","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"selfish","id":"selfish","version":"0.0.1","description":"Pure Prototypal Inheritance","keywords":["oop","inheritance","prototype","class","micro","simple"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.0.10"},"dependencies":{"graphquire":">=0.6.0"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js","install":"graphquire --clean --write"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.0.1","_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"3f8c8519b56f86fe83cc90330389c78da67f5368","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.0.1.tgz","integrity":"sha512-VGI27Cz5BAemV9DAlKJIw4o7tu6ZnX52rK3fiUBHyo5bONDCjsOoUdJVsh4x15DXJchUeuzEYDv043xdLUNyRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTQe68eZljMQJ8TWD130r3SitIRVK3aJ53J1ZDzPyRuAIgNBtWsHUUIfqDWvRLLHAyZkQ6Iuttbp577cYYlpKvEIw="}]}},"0.0.2":{"name":"selfish","id":"selfish","version":"0.0.2","description":"Pure Prototypal Inheritance","keywords":["oop","inheritance","prototype","class","micro","simple"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.0.10"},"dependencies":{"graphquire":">=0.6.0"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js","install":"graphquire --clean --write"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.0.2","_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"0b74e68e0436b17d1514a7605a27033f799c993a","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.0.2.tgz","integrity":"sha512-siGzLo1V4HiyE6FdY7I4TgLiYytS7p3Nz6X/keYfv6yV3OK+Vab+ZPEebHrpW7iLoVQXQP67/EcPy6Ehwv9ANw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDzNtP6y5qXFfR7HW2ccMXIszGqRGB/3F62S1gQB+AiAiEA/Q0Z+zeCu+TNxp2PUkx4c8jvCuNWSAthhQlg+K2+3LA="}]}},"0.0.3":{"name":"selfish","id":"selfish","version":"0.0.3","description":"Pure Prototypal Inheritance","keywords":["oop","inheritance","prototype","class","micro","simple"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.0.10"},"dependencies":{"graphquire":">=0.6.0"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js","install":"graphquire --clean --write"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.0.3","_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"0557753649141a11761845214ac533f25fa6a895","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.0.3.tgz","integrity":"sha512-jQQqLGnwGXnoFK0D3jVaxjMS4a/g9VDFqPAJXO5edX9ECb/r4BiTE/dXW5eTkYHZnWywYbslNqReLW7sXM/e6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHMybSN+0FKh6tv299ghyTrSBWPx/WGIsGR4yQ8SrlIAiEAn2uz2g3XRO+yIFYeif8PL264PUEvbsXOCe1UK2CPhTw="}]}},"0.1.0":{"name":"selfish","id":"selfish","version":"0.1.0","description":"Pure Prototypal Inheritance","keywords":["oop","inheritance","prototype","class","micro","simple"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"dependencies":{"graphquire":">=0.6.0"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js","install":"graphquire --clean --write"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.1.0","_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"41c1d009c5813ab1c4306eda92aaafa26a265b58","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.1.0.tgz","integrity":"sha512-YvkCfyv3RRCKWOVasatV5TdJHF5d1mWzHhWo1rWr1ndRkGnlIbPfQbY27yIue+/E016IVoh58QyppJzfTtC66A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtg6V5+JEU7ywVSeWjhYpb/X6eeRmdY+5S6j27+Vzc7AiB+36J0/RmAv7D6nBEU0I5IA8fcngenIO8y2G8+YprgUw=="}]}},"0.2.0":{"name":"selfish","id":"selfish","version":"0.2.0","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"dependencies":{"graphquire":">=0.6.0"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js","install":"graphquire --clean --write"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.2.0","_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"e161887e89726995e21fc3787ee2186b13304ead","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.2.0.tgz","integrity":"sha512-inpCpomDO73DQ+TX9yCoakZBwBrgkcIyszoHro375XqyK5bbVuj40TiEEamuQo0IUKQsl4pIgtIDGMgBVPBxeQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1StRSJeOAMLW5p09t/i8G9BXOy4kVNtk5xLlxBMWLgwIhAP+cT6D04aO3W1geiUPsVUX2YiaHHh6o+FooPObR+X1G"}]}},"0.2.1":{"name":"selfish","id":"selfish","version":"0.2.1","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.2.1","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.11","_nodeVersion":"v0.4.8","_defaultsLoaded":true,"dist":{"shasum":"639f64c7db878c280e63421572ddfd5a71ac940f","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.2.1.tgz","integrity":"sha512-qIxplx7RF7hC3KiuyX5uYyjWny/mdzwlhT6PyjoZuERgvCRZUmWwQM5lL7nEzc0pd3tsd3kAcu+N/lWvX0/c4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxkMQrLonXL4z9YVzdS70Nq7pPYpEI19fBZ0OoVKjSuAIgMzFKMDSjkGqmHoUaoHjZtK4x9bl3R7i6+mL04uskwYE="}]}},"0.2.2":{"name":"selfish","id":"selfish","version":"0.2.2","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_npmJsonOpts":{"file":"/Users/gozala/.npm/selfish/0.2.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"selfish@0.2.2","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"7f854e5aa20ed6dfdd89f680ac7d71563613aa5f","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.2.2.tgz","integrity":"sha512-c2tVXL3BUkWLBKhv+PG3fLQDEPajwRLe9Wpy2zWTIV9yohvl60FYFY6CB3hGJkYlThAv1JNaImf7yWSlHI16Zw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGLNmigUpXYVgL2xIEMiAlqOHC49/QKqMMOM3+C54FgxAiAslcY+4IFdDxGJ7N3ohPrO/Jd2H6bsntU/tY+KHjEaIw=="}]}},"0.3.0":{"name":"selfish","id":"selfish","version":"0.3.0","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":"0.4.x"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_npmJsonOpts":{"file":"/Users/gozala/.npm/selfish/0.3.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"selfish@0.3.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.22","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"b57158c4dd5bbc5cc42a4ab8929e428cd9ec4f89","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.3.0.tgz","integrity":"sha512-BW8ccjEB9S3FSgjG4QM+f5i/Yl81tOyd4CLG+eyzv2/VFY2FIxgjE2pnxuea19h9b7AguT4RzoB6aZP6Ah+Qpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChjWx8hp0pQp25wFUOW6pQlf/+ElPL5NK9wN1ol4H47QIgCoJ5mn2AMrj1G0TKbqSG/PJAiGgylwVyBsNYJT5hBHQ="}]},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"}]},"0.3.1":{"name":"selfish","id":"selfish","version":"0.3.1","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":">=0.4.0"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_npmUser":{"name":"gozala","email":"rfobic@gmail.com"},"_id":"selfish@0.3.1","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.5.9","_defaultsLoaded":true,"dist":{"shasum":"0d41b784b55654444140e83a82924498a49cc0be","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.3.1.tgz","integrity":"sha512-Ua32z7+7Y6RR5lqchKD3F14Fs0c7QakDdUSIFC85G1YrMla2Vy97WdYRj/tVZyYJgj5DAT1+fLzY2WAI4vzUVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGy7yDmiVugVAe2kchdsEZl9TE1NWVn5f8625PrRlMxxAiAUTOZ+b4ZJ6CiNLfjsr/eikn3vHCf1XzG224hvhQTrZA=="}]},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"}]},"0.3.2":{"name":"selfish","id":"selfish","version":"0.3.2","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"git://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":">=0.4.0"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_npmUser":{"name":"gozala","email":"rfobic@gmail.com"},"_id":"selfish@0.3.2","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.101","_nodeVersion":"v0.5.9","_defaultsLoaded":true,"dist":{"shasum":"d0079b44cde49ef2e0d98397785588eb8aa4023d","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.3.2.tgz","integrity":"sha512-eK8ZvA/67C3m2wnSTYRLe/tPbP8/YLesisUpnPzRMOB5MVK9s9wuFm8ysv7in1/ev8yMkaKTfqdkwdbUNT9QuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrANf4T+7LYMg3guu+1R5jokAJUh93lnMcUeVA9dkg+AIgCnqAzqk8lLmR7NlBnVY1iyQH1C5S57gkly/Zn2pnW6k="}]},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"}]},"0.3.3":{"name":"selfish","id":"selfish","version":"0.3.3","description":"Class-free, pure prototypal inheritance","keywords":["oop","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"contributors":[{"name":"Eduardo San Martin Morote","email":"i@posva.net","url":"http://posva.net"}],"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"https://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"test":">=0.2.1"},"main":"./selfish.js","engines":{"node":">=0.6.0"},"scripts":{"test":"node tests/test-selfish.js"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"_id":"selfish@0.3.3","dist":{"shasum":"b8e65d2361a1f8a98e1dd9bda4793ef9a678cbaa","tarball":"https://registry.npmjs.org/selfish/-/selfish-0.3.3.tgz","integrity":"sha512-5Mzizi7z0ZTpnCnZqjsnkgY0AjhchwITitVwdI4PvpWdpX/z0W972RPSpiIot9jTQDKQYR7OP84Rtrx8EPqtig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElomww/B2RvGWeHIjslypAweA6rmEjX9pKwD/RSbvW6AiEAleBKdPxh/3Pk8WtXmsOQIJzpqcs1bIMwD5Mfwy+DNdU="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"posva","email":"posva13@gmail.com"},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"},{"name":"posva","email":"posva13@gmail.com"}]},"1.0.1":{"name":"selfish","id":"selfish","version":"1.0.1","description":"Class-free, pure prototypal multiple inheritance","keywords":["oop","multiple","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"contributors":[{"name":"Eduardo San Martin Morote","email":"i@posva.net","url":"http://posva.net"}],"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"https://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"mocha":"^2.2.1","should":"^5.2.0"},"testling":{"harness":"mocha-bdd","files":"test/*.js","browsers":{"iexplore":[9,10],"chrome":[16,20,25,"canary"],"firefox":[10,15,16,17,18,"nightly"],"safari":[5,6],"opera":[12]}},"main":"./selfish.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"gitHead":"1e78132800c5a3f1783f02bc07fe5c7765eedaf3","_id":"selfish@1.0.1","_shasum":"4a677ef80a1d638cb87caf4f7d817d913969b08b","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.10.25","_npmUser":{"name":"posva","email":"posva13@gmail.com"},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"},{"name":"posva","email":"posva13@gmail.com"}],"dist":{"shasum":"4a677ef80a1d638cb87caf4f7d817d913969b08b","tarball":"https://registry.npmjs.org/selfish/-/selfish-1.0.1.tgz","integrity":"sha512-vqiDOp66wOvubDiK7M1pP/uOgjUAVutTLGvlCOve49t+hKHwPjcj5Mk4HN3OPRzV5XB5sfesrao4UvVROFpYxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCe6d1zrIyRU6S6j9zfTriIm2PcOxKI8cVCMZZm7jTugAIhAMq/kJrMw7nnoCVxwd/ah/aqPDIbYj08wmV4BQd9YYiT"}]}},"1.0.2":{"name":"selfish","id":"selfish","version":"1.0.2","description":"Class-free, pure prototypal multiple inheritance","keywords":["oop","multiple","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"contributors":[{"name":"Eduardo San Martin Morote","email":"i@posva.net","url":"http://posva.net"}],"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"https://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"mocha":"^2.2.1","should":"^5.2.0"},"testling":{"harness":"mocha-bdd","files":"test/*.js","browsers":{"iexplore":[9,10],"chrome":[16,20,25,"canary"],"firefox":[10,15,16,17,18,"nightly"],"safari":[5,6],"opera":[12]}},"main":"./selfish.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"licenses":[{"type":"MIT","url":"http://jeditoolkit.com/LICENSE"}],"gitHead":"1f944d991d8b23ab0aaca461f16d3d29e7d686f3","_id":"selfish@1.0.2","_shasum":"d8097dcc27bd3aa4dea61d1eca638d4c2b5fd235","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.10.37","_npmUser":{"name":"posva","email":"posva13@gmail.com"},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"},{"name":"posva","email":"posva13@gmail.com"}],"dist":{"shasum":"d8097dcc27bd3aa4dea61d1eca638d4c2b5fd235","tarball":"https://registry.npmjs.org/selfish/-/selfish-1.0.2.tgz","integrity":"sha512-jBYv+X/cJlHEtVqg6s69IxhEQE4vGMRkOEuwBxHNPAr8dI1CIk9SQ+gNSrooyROL0t6VsMCQu3gQb12PmOowJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL/5iLMvGjbM7FmR+UmzN9Qu3gvvgs1qnUjU4LLR8PXgIhAP6mYKraHpzvoPTlDi5mDqatw+huwobOspxE6GRBWY+w"}]}},"1.1.0":{"name":"selfish","id":"selfish","version":"1.1.0","description":"Class-free, pure prototypal multiple inheritance","keywords":["oop","multiple","inheritance","prototype","class","micro","class-free"],"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"contributors":[{"name":"Eduardo San Martin Morote","email":"i@posva.net","url":"http://posva.net"}],"homepage":"https://github.com/Gozala/selfish","repository":{"type":"git","url":"https://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"devDependencies":{"mocha":"^2.2.1","should":"^5.2.0"},"testling":{"harness":"mocha-bdd","files":"test/*.js","browsers":{"iexplore":[9,10],"chrome":[16,20,25,"canary"],"firefox":[10,15,16,17,18,"nightly"],"safari":[5,6],"opera":[12]}},"main":"./selfish.js","engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"},"license":"MIT","_id":"selfish@1.1.0","dist":{"shasum":"76ef599fdbbe149d15712290e34fe0ab9a1df630","tarball":"https://registry.npmjs.org/selfish/-/selfish-1.1.0.tgz","integrity":"sha512-yhtElRxuqzspfRM8QDv1vlfHWOrih/q8Mj6TfyVsZZz18jP+1FXA6bKP8mNWhEFwiiLI0547yqQIVwc6+twl8w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyUN0pmrQmzM9LARh+z0bl4V/WBDzRLUfipO8RXZO0bwIgCaFYQCQ6DjbWpTDoZ0x+TiuPXhf5kXA8AasyxDT5+7w="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"posva","email":"posva13@gmail.com"},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"},{"name":"posva","email":"posva13@gmail.com"}]}},"maintainers":[{"name":"gozala","email":"rfobic@gmail.com"},{"name":"posva","email":"posva13@gmail.com"}],"time":{"modified":"2022-06-26T17:27:23.037Z","created":"2011-06-15T23:20:04.787Z","0.0.1":"2011-06-15T23:20:05.806Z","0.0.2":"2011-06-15T23:48:48.450Z","0.0.3":"2011-06-21T16:58:46.515Z","0.1.0":"2011-06-27T17:00:10.191Z","0.2.0":"2011-06-28T11:06:19.259Z","0.2.1":"2011-06-28T11:10:12.533Z","0.2.2":"2011-07-03T19:11:22.290Z","0.3.0":"2011-08-14T15:18:02.387Z","0.3.1":"2011-12-28T23:06:39.953Z","0.3.2":"2011-12-28T23:09:25.114Z","0.3.3":"2014-11-02T16:55:05.708Z","1.0.0":"2015-04-02T22:15:39.687Z","1.0.1":"2015-04-03T08:27:36.421Z","1.0.2":"2015-04-07T21:43:06.042Z","1.1.0":"2015-06-27T19:41:52.241Z"},"author":{"name":"Irakli Gozalishvili","email":"rfobic@gmail.com","url":"http://jeditoolkit.com"},"repository":{"type":"git","url":"https://github.com/Gozala/selfish.git","web":"https://github.com/Gozala/selfish"},"users":{},"homepage":"https://github.com/Gozala/selfish","keywords":["oop","multiple","inheritance","prototype","class","micro","class-free"],"bugs":{"url":"http://github.com/Gozala/selfish/issues/"},"readme":"# selfish\r\n\r\n[![Build Status](https://secure.travis-ci.org/Gozala/selfish.png)](http://travis-ci.org/Gozala/selfish)\r\n\r\nClass-free, pure prototypal multiple inheritance that lets you write expressive,\r\nwell-structured code.\r\n\r\n## Install\r\n\r\n### server-side\r\n\r\n```bash\r\nnpm install selfish\r\n```\r\n\r\n### client-side\r\n\r\n```bash\r\nbower install selfish\r\n```\r\n\r\n## Require\r\n\r\n### server-side\r\n\r\n```js\r\nvar Base = require('!raw.github.com/Gozala/selfish/v1.0.0/selfish').Base\r\n```\r\n\r\n### client-side RequireJS\r\n\r\n```js\r\ndefine(['path/to/selfish'], function(selfish) {\r\n   var Base = selfish.Base;\r\n})\r\n```\r\n\r\n## Examples\r\n\r\n### Basics\r\n\r\n```js\r\n// Instead of creating classes, you create prototype objects. Let's look\r\n// at this simple example first:\r\nvar Dog = Base.extend({\r\n  bark: function() {\r\n    return 'Ruff! Ruff!'\r\n  }\r\n})\r\n\r\n// Forget about classes, javascript is a prototypal language:\r\ntypeof Dog                // object\r\n\r\n// Use the new operator to create an instance:\r\nvar dog = new Dog()\r\ndog.bark()                // 'Ruff! Ruff!'\r\n\r\n// Alternatively you can use the legacy new() function but keep in mind that\r\n// the new operator is faster in most browsers\r\nvar dog = Dog.new()\r\ndog.bark()                // 'Ruff! Ruff!'\r\n\r\n// Forget about special `instanceof` operator, use JS native method instead:\r\nDog.prototype.isPrototypeOf(dog)    // true\r\n\r\n// Objects inherit from objects, what could be more object oriented than\r\n// that ?\r\nvar Pet = Dog.extend({\r\n  initialize: function(breed, name) {\r\n    this.breed = breed\r\n    this.name = name\r\n  },\r\n  call: function(name) {\r\n    return this.name === name ? this.bark() : ''\r\n  },\r\n  toString: function() {\r\n    return this.breed + ' ' + this.name\r\n  }\r\n})\r\n\r\n// All arguments passed to the constructor are forwarded to the `initialize`\r\n// method of instance.\r\n\r\nvar pet = new Pet('Labrador', 'Benzy')\r\npet.toString()          // 'Labrador Benzy'\r\npet.call('doggy')       // ''\r\npet.call('Benzy')       // 'Ruff! Ruff!'\r\n```\r\n\r\n\r\n### Object composition\r\n\r\n```js\r\n// In some programs recombining reusable pieces of code is a better option:\r\n\r\nvar HEX = Base.extend({\r\n  hex: function hex() {\r\n    return '#' + this.color\r\n  }\r\n})\r\n\r\nvar RGB = Base.extend({\r\n  red: function red() {\r\n    return parseInt(this.color.substr(0, 2), 16)\r\n  },\r\n  green: function green() {\r\n    return parseInt(this.color.substr(2, 2), 16)\r\n  },\r\n  blue: function blue() {\r\n    return parseInt(this.color.substr(4, 2), 16)\r\n  }\r\n})\r\n\r\nvar CMYK = Base.extend(RGB.prototype, {\r\n  black: function black() {\r\n    var color = Math.max(Math.max(this.red(), this.green()), this.blue())\r\n    return (1 - color / 255).toFixed(4)\r\n  },\r\n  magenta: function magenta() {\r\n    var K = this.black();\r\n    return (((1 - this.green() / 255).toFixed(4) - K) / (1 - K)).toFixed(4)\r\n  },\r\n  yellow: function yellow() {\r\n    var K = this.black();\r\n    return (((1 - this.blue() / 255).toFixed(4) - K) / (1 - K)).toFixed(4)\r\n  },\r\n  cyan: function cyan() {\r\n    var K = this.black();\r\n    return (((1 - this.red() / 255).toFixed(4) - K) / (1 - K)).toFixed(4)\r\n  }\r\n})\r\n\r\n// Composing `Color` prototype out of reusable components:\r\nvar Color = Base.extend(HEX.prototype, RGB.prototype, CMYK.prototype, {\r\n  initialize: function initialize(color) {\r\n    this.color = color\r\n  }\r\n})\r\n\r\nvar pink = Color.new('FFC0CB')\r\n// RGB\r\npink.red()        // 255\r\npink.green()      // 192\r\npink.blue()       // 203\r\n\r\n// CMYK\r\npink.magenta()    // 0.2471\r\npink.yellow()     // 0.2039\r\npink.cyan()       // 0.0000\r\n```\r\n\r\n### Combining composition & inheritance\r\n\r\n```js\r\nvar Pixel = Color.extend({\r\n  initialize: function initialize(x, y, color) {\r\n    Color.initialize.call(this, color)\r\n    this.x = x\r\n    this.y = y\r\n  },\r\n  toString: function toString() {\r\n    return this.x + ':' + this.y + '@' + this.hex()\r\n  }\r\n})\r\n\r\nvar pixel = new Pixel(11, 23, 'CC3399')\r\npixel.toString()              // 11:23@#CC3399\r\nPixel.prototype.isPrototypeOf(pixel)    // true\r\n\r\n// Pixel instances inhertis from `Color`\r\nColor.prototype.isPrototypeOf(pixel)    // true\r\n\r\n// In fact `Pixel.prototype` itself inherits from `Color.prototype`, remember just simple and\r\n// pure prototypal inheritance where objects inherit from objects.\r\nColor.prototype.isPrototypeOf(Pixel.prototype)    // true\r\n```\r\n\r\n### TODO\r\n\r\nThis is a list of things I may introduce in newer versions.\r\n\r\n* Add `testling` badge\r\n* Add examples about private variables (closures)\r\n* Add guidelines on how to use the lib for common cases\r\n* Add `requirejs` test\r\n* Better merge? in-depth merge (like lodash). Two different `extend` methods ?\r\n* Do a full prototype chaining ?\r\n```js\r\nvar Extra = Base.extend(Foo, Bar, {toto: true});\r\nvar instance = new Extra();\r\nBase.prototype.isPrototypeOf(instance); // true :D\r\nExtra.prototype.isPrototypeOf(instance); // true :D\r\nFoo.prototype.isPrototypeOf(instance); // false :(\r\nBar.prototype.isPrototypeOf(instance); // false :(\r\n```\r\n* Clone inner objects:\r\n```js\r\nvar someBase = {\r\n  outer: {\r\n    inner: 1\r\n  }\r\n}\r\nvar Extra = Base.extend(Foo, Bar, someBase);\r\nvar e = new Extra();\r\ne.outer.inner = 3;\r\nsomeBase.outer.inner === 1; // should be true\r\n```\r\n","readmeFilename":"Readme.md","contributors":[{"name":"Eduardo San Martin Morote","email":"i@posva.net","url":"http://posva.net"}],"license":"MIT"}