JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://github.com/michaelficarra/MooTools-Struct/raw/master/Source/Struct.js"></script>
<script src="http://github.com/michaelficarra/MooTools-Inspect/raw/master/Source/inspect.js"></script>
<script src="http://github.com/michaelficarra/MooShell-Libs/raw/master/console.js"></script>
<link rel="stylesheet" href="http://github.com/michaelficarra/MooShell-Libs/raw/master/console.css">
CSS
h1.title {
font-size: 20px;
border-bottom: 1px solid #444;
padding: 5px;
margin: 14px 6px 4px;
}
h2.subtitle {
font-size: 15px;
padding: 5px 10px;
font-style: oblique;
}
JavaScript
function title(txt){
document.body.adopt(new Element('h1',{'class':'title',text:txt}));
}
function subtitle(txt){
document.body.adopt(new Element('h2',{'class':'subtitle',text:txt}));
}
var Car = new Struct('make','model','year'); // [Class:Car]
var myCar = new Car('Chrysler','Cirrus',2000); // [Object:myCar]
title('How To Use');
subtitle('Basics');
console.log(myCar.getMake()); // 'Chrysler'
console.log(myCar.getModel()); // 'Cirrus'
console.log(myCar.getYear()); // 2000
console.log(myCar.setModel('Sebring')); // [Object:myCar]
console.log(myCar.getModel()); // 'Sebring'
subtitle('Undefined Values');
var myCar = new Car('Chrysler','Cirrus'); // [Object:myCar]
console.log(myCar.getMake()); // 'Chrysler'
console.log(myCar.getYear()); // null
console.log(myCar.setYear(2000)); // [Object:myCar]
console.log(myCar.getYear()); // 2000
subtitle('Custom Prefixes');
var Car = new Struct('make','model','year',{
getterPrefix: '',
setterPrefix: 'change'
}); // [Class:Car]
var myCar = new Car('Chrysler','Cirrus',2000); // [Object:myCar]
console.log(myCar.make()); // 'Chrysler'
console.log(myCar.year()); // 2000
console.log(myCar.changeYear(2010)); // [Object:myCar]
console.log(myCar.year()); // 2010
subtitle('Array Instantiation');
var Car = new Struct(['make','model','year']);
var Car2 = new Struct('make','model','year');
Car.members(); // ['make','model','year']
Car2.members(); // ['make','model','year']
title('Public Instance Methods');
var Car = new Struct('make','model','year'); // [Class:Car]
subtitle('toHash');
console.log((new Car('Chrysler','Cirrus',2000)).toHash());
console.log((new...