baseBuild.html revision a091e633a8a28a2f787150f3b87e4e4ec8e717ba
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync<html>
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync<head>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync <title>Base.build</title>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync <script type="text/javascript" src="/build/yui/yui.js"></script>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync <!--script type="text/javascript" src="http://yui.yahooapis.com/3.2.0/build/yui/yui.js"></script-->
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync <script type="text/javascript">
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync YUI({filter:"raw"}).use("base", "plugin", function(Y) {
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync // ----- Main Class -----
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync function MainPlugin() {}
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync MainPlugin.NS = "mainplugin";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync MainPlugin.NAME = "mainplugin";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.extend(MainPlugin, Y.Plugin.Base);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync function Main(config) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Main.superclass.constructor.apply(this, arguments);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Main.NAME = "main";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Main.ATTRS = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync mainA : {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync value: "mainA"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync mainB : {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync value: "mainB"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync Main.CLASSNAMES = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync main: "yui-main"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Main.PLUGINS = [
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync MainPlugin
2c691730ab202620fe427110841aa4e0075b7ccavboxsync ];
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.extend(Main, Y.Base, {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodA : function() {
79dc091db288c096b6e03888a095477ded84f503vboxsync Y.log("methodA called - Attr value:" + this.get("mainA"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
2c691730ab202620fe427110841aa4e0075b7ccavboxsync methodB : function() {
e8e770ce5a8f375c77b6047158833b5b3d2c055evboxsync Y.log("Main methodB called - Attr value:" + this.get("mainB"));
e8e770ce5a8f375c77b6047158833b5b3d2c055evboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync initializer : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("Main initializer");
d02610fd604cc8ab4cccf7e3fa510c06cb728ff2vboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync });
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync // ----- ExtOne --
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync function ExtOnePlugin() {}
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOnePlugin.NS = "extoneplugin";
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync ExtOnePlugin.NAME = "extoneplugin";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.extend(ExtOnePlugin, Y.Plugin.Base);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync function ExtOne() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("ExtOne initializer");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOne.NAME = "extone";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
f03d2f859a6661088b765809ff4feb39bdd7a311vboxsync ExtOne.ATTRS = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync extOne : {
f2ca52afeb0baed982c05e9d8591e0e4c7539dbdvboxsync value: "extOne"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOne.CLASSNAMES = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync extOne : "yui-extone"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOne.PLUGINS = [
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOnePlugin
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ];
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtOne.prototype = {
3baadeafd9922582dad9b32431362e6296417dd8vboxsync methodB : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("ExtOne methodB called - Attr value:" + this.get("extOne"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodC : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("methodC called - Attr value:" + this.get("extOne"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodD : function() {
f2ca52afeb0baed982c05e9d8591e0e4c7539dbdvboxsync Y.log("methodD called - Attr value:" + this.get("extOne"));
49c9958a74e4a297fb7ec141ee764e872430f4bavboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
62f795a8cb052ea10678f54272612bb087bab1a1vboxsync // ----- ExtTwo --
e42e8ed08e4b2bd2ebb1b160fea921788e1a54a5vboxsync
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync function ExtTwoPlugin() {}
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwoPlugin.NS = "exttwoplugin";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwoPlugin.NAME = "exttwoplugin";
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.extend(ExtTwoPlugin, Y.Plugin.Base);
0bd6dc6980372bcbc72756dfd401df65640b13a7vboxsync
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync function ExtTwo() {
0bd6dc6980372bcbc72756dfd401df65640b13a7vboxsync Y.log("ExtTwo initializer");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwo.NAME = "exttwo";
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync
c215a948010614887014a258c1751602d8bf7781vboxsync ExtTwo.ATTRS = {
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync extTwo : {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync value: "extTwo"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
7c205843b5f25329b7bac4cb41e4c55a21c7aafevboxsync ExtTwo.CLASSNAMES = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync extTwo : "yui-exttwo"
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwo.PLUGINS = [
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwoPlugin
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ];
faa254427e497bb7ee255b22581f40112025e92bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync ExtTwo.prototype = {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodB : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("ExtTwo methodB called - Attr value:" + this.get("extTwo"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodE : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("methodE called - Attr value:" + this.get("extTwo"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync },
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync methodF : function() {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("methodF called - Attr value:" + this.get("extTwo"));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync };
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync var CustMain = Y.Base.build("custmain", Main, [ExtOne, ExtTwo], {aggregates:["PLUGINS", "CLASSNAMES"]});
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync var c = new CustMain({mainA:"custMainA", extOne:"custExtOne"});
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync c.methodA();
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync c.methodB();
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync c.methodC();
24713061a674af34286ac48ad1433329cdd404f2vboxsync c.methodD();
24713061a674af34286ac48ad1433329cdd404f2vboxsync c.methodE();
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync c.methodF();
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("CustMain === Main [false]:" + (CustMain === Main));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("CustMain.superclass === Main [true]:" + (CustMain.superclass.constructor === Main));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("Main.superclass === Y.Base [true]:" + (Main.superclass.constructor === Y.Base));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c instanceof Main [true]:" + (c instanceof Main));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c instanceof CustMain [true]:" + (c instanceof CustMain));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c instanceof Base [true]:" + (c instanceof Y.Base));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c.hasImpl(Main) [false]:" + (c.hasImpl(Main)));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c.hasImpl(ExtOne) [true]:" + (c.hasImpl(ExtOne)));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("c.hasImpl(ExtTwo) [true]:" + (c.hasImpl(ExtTwo)));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("CustMain.PLUGINS.length [3]:" + (CustMain.PLUGINS.length));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync var main = new Main();
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodA [true]' + !!(main.methodA));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodB [true]' + !!(main.methodB));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodC [false]' + !!(main.methodC));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodD [false]' + !!(main.methodD));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodE [false]' + !!(main.methodE));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log('main.methodF [false]' + !!(main.methodF));
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync function checkClass(clz) {
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync var p;
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync Y.log("========");
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync Y.log(clz.NAME);
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync Y.log("========");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("# Methods");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync for (p in clz.prototype) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if (clz.prototype.hasOwnProperty(p)) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log(p);
9704f1d0180960069e2c4eb8fe2ddee350910e5dvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log("# ATTRS");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync for (p in clz.ATTRS) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if (clz.ATTRS.hasOwnProperty(p)) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log(p);
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync }
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync }
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync /*
87c50c527af59e43745475c4b8ac907c5f9bc204vboxsync Y.log("# PLUGINS");
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync for (p in clz.PLUGINS) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if (clz.PLUGINS.hasOwnProperty(p)) {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync Y.log(p);
c6adb272ec43d5eaadb1493cb2bf45f2f8adf588vboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }*/
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync }
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync checkClass(Main);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync checkClass(CustMain);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync checkClass(ExtOne);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync checkClass(ExtOne);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync checkClass(Y.Base);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync });
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync </script>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync</head>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync<body>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync</body>
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync</html>