Skip to content

Instantly share code, notes, and snippets.

View jankuca's full-sized avatar

Jan Kuča jankuca

  • Prague, Czech Republic
  • 05:21 (UTC +02:00)
View GitHub Profile
@jankuca
jankuca / index.js
Created July 14, 2011 18:43
Node.js ARGV parser
function parseInput() {
var input = {
modes: [],
args: [],
params: {},
};
var param_key = null;
var parts = process.argv.slice(2);
parts.forEach(function (part) {
@jankuca
jankuca / examples.coffee
Created June 21, 2011 09:35
Asynchronous JS Iterator
# == Synchronous loop ==
# It does the same as forEach.
input = ['a', 'b', 'c']
output = {}
iter = new Iterator input, (item, next, i) ->
output[item] = item
console.log 'Finished iteration ' + i
do next
iter.run ->
@jankuca
jankuca / object-events.coffee
Created June 5, 2011 16:37
Object Events - JavaScript event abstraction layer
###
! Object Events
! ==
! A little abstraction layer that connects all Object instances
! to the native event engine and adds custom event support.
! --
! Author: Jan Kuča <jan@jankuca.com>, http://jankuca.com
! Version: 1.0
! Last revision: 05 Jun 2011
###
@jankuca
jankuca / index.js
Created March 17, 2011 09:48
Simple Facebook Graph API Node.js Client
var HTTPS = require('https');
var QueryString = require('querystring');
/**
* Facebook API Wrapper
* @constructor
* @param {Object} info Info about the Facebook application
*/
var Client = function (info) {
if (!info.id) {
@jankuca
jankuca / utils.js
Created March 16, 2011 00:09
JavaScript Kit
(function () {
if (!Object.defineProperty) return;
Object.defineProperty(Function.prototype, 'initializing', {
value: false,
writable: true
});
Object.defineProperty(Function.prototype, '$super', {
value: function () {
@jankuca
jankuca / examples.js
Created February 28, 2011 22:31
Advanced JavaScript (ECMAScript 5) Inheritance
var A = Function.inherit(function () {
console.log('construct A');
}, {
'aa': function () {
console.log('aa A');
},
});
var B = A.inherit(function () {
console.log('construct B');
@jankuca
jankuca / shortcut.js
Created February 3, 2011 19:12
Shortcut JavaScript library
/**
* Shortcut Library
* --
* @version 2.01.B
* @author Binny V A
* @modifier Jan Kuča <jan@jankuca.com>
* @license BSD
*/
(function (window) {
var document = window.document;
@jankuca
jankuca / uuid.js
Created January 21, 2011 08:20
UUID JavaScript library; based on the current timestamp, the user's browser, the current URL and a random number
goog.provide('uuid');
var uuid = function () {
var parts = new Array(4);
// a - unix timestamp
var time = Math.round(new Date().getTime() / 1000);
parts[0] = time.toString(16).substring(0, 8);
@jankuca
jankuca / index.js
Created January 20, 2011 16:21
RelativeDate Node.js module
exports.parse = function (string, format) {
var match = string.match(/^(\+|-)\s*(\d+)\s*([a-z]{3})/i);
var add;
if (!match) {
add = 0;
} else {
add = parseInt(match[2], 10);
switch (match[3]) {
case 'min':
add *= 60;
@jankuca
jankuca / ejs.js
Created January 20, 2011 15:54
EJS Node.js module; checkout the branch "client" for a client-side version
var rsplit = function (string, regex) {
var result = regex.exec(string),
retArr = [],
first_idx,
last_idx,
first_bit;
while (result !== null) {
first_idx = result.index;
last_idx = regex.lastIndex;
if (first_idx !== 0) {