Skip to content

Instantly share code, notes, and snippets.

@timlinquist
Created February 15, 2012 23:08
Show Gist options
  • Save timlinquist/1839898 to your computer and use it in GitHub Desktop.
Save timlinquist/1839898 to your computer and use it in GitHub Desktop.
Playing around with coffee script
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()
(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