Created
February 15, 2012 23:08
-
-
Save timlinquist/1839898 to your computer and use it in GitHub Desktop.
Playing around with coffee script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class OptionHandler | |
constructor: (@options) -> | |
@options or= {} | |
class Inverter extends OptionHandler | |
invert: () -> | |
for key, value of @options | |
@options[key] = null | |
@options[value.toLowerCase()] = key | |
optionHandler = new OptionHandler | |
console.log optionHandler.options | |
optionHandler2 = new OptionHandler {name: 'Jethro'} | |
console.log optionHandler2.options.name | |
inverter = new Inverter {name: 'Jethro'} | |
inverter.invert() | |
console.log inverter.options.jethro | |
class NakedObject | |
constructor: (@object) -> | |
@prevObject = typeof @object | |
for method in @object | |
@object[method] = null | |
logMethods = (object) -> | |
methods = 0 | |
for method, method of object | |
methods++ | |
console.log methods | |
dummyBasic = this | |
logMethods(dummyBasic) | |
dummyBasic = new NakedObject dummyBasic | |
logMethods(dummyBasic) | |
printRacers = (racer, vehicles...) -> | |
console.log racer | |
console.log vehicle for vehicle in vehicles | |
printRacers('Racer', 'car 1', 'car 2', 'car 3') | |
countUp = (number = 1) -> | |
console.log number for number in [0...10] | |
countUp(5) | |
countUp() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
var Inverter, NakedObject, OptionHandler, countUp, dummyBasic, inverter, logMethods, optionHandler, optionHandler2, printRacers, | |
__hasProp = Object.prototype.hasOwnProperty, | |
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }, | |
__slice = Array.prototype.slice; | |
OptionHandler = (function() { | |
function OptionHandler(options) { | |
this.options = options; | |
this.options || (this.options = {}); | |
} | |
return OptionHandler; | |
})(); | |
Inverter = (function(_super) { | |
__extends(Inverter, _super); | |
function Inverter() { | |
Inverter.__super__.constructor.apply(this, arguments); | |
} | |
Inverter.prototype.invert = function() { | |
var key, value, _ref, _results; | |
_ref = this.options; | |
_results = []; | |
for (key in _ref) { | |
value = _ref[key]; | |
this.options[key] = null; | |
_results.push(this.options[value.toLowerCase()] = key); | |
} | |
return _results; | |
}; | |
return Inverter; | |
})(OptionHandler); | |
optionHandler = new OptionHandler; | |
console.log(optionHandler.options); | |
optionHandler2 = new OptionHandler({ | |
name: 'Jethro' | |
}); | |
console.log(optionHandler2.options.name); | |
inverter = new Inverter({ | |
name: 'Jethro' | |
}); | |
inverter.invert(); | |
console.log(inverter.options.jethro); | |
NakedObject = (function() { | |
function NakedObject(object) { | |
var method, _i, _len, _ref; | |
this.object = object; | |
this.prevObject = typeof this.object; | |
_ref = this.object; | |
for (_i = 0, _len = _ref.length; _i < _len; _i++) { | |
method = _ref[_i]; | |
this.object[method] = null; | |
} | |
} | |
return NakedObject; | |
})(); | |
logMethods = function(object) { | |
var method, methods; | |
methods = 0; | |
for (method in object) { | |
method = object[method]; | |
methods++; | |
} | |
return console.log(methods); | |
}; | |
dummyBasic = this; | |
logMethods(dummyBasic); | |
dummyBasic = new NakedObject(dummyBasic); | |
logMethods(dummyBasic); | |
printRacers = function() { | |
var racer, vehicle, vehicles, _i, _len, _results; | |
racer = arguments[0], vehicles = 2 <= arguments.length ? __slice.call(arguments, 1) : []; | |
console.log(racer); | |
_results = []; | |
for (_i = 0, _len = vehicles.length; _i < _len; _i++) { | |
vehicle = vehicles[_i]; | |
_results.push(console.log(vehicle)); | |
} | |
return _results; | |
}; | |
printRacers('Racer', 'car 1', 'car 2', 'car 3'); | |
countUp = function(number) { | |
var _results; | |
if (number == null) number = 1; | |
_results = []; | |
for (number = 0; number < 10; number++) { | |
_results.push(console.log(number)); | |
} | |
return _results; | |
}; | |
countUp(5); | |
countUp(); | |
}).call(this); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment