Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added all the files with first two tests green
- Loading branch information
Showing
7 changed files
with
156 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
/* Simple JavaScript Inheritance | ||
* By John Resig http://ejohn.org/ | ||
* MIT Licensed. | ||
*/ | ||
// Inspired by base2 and Prototype | ||
exports.Class = (function(){ | ||
var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; | ||
// The base Class implementation (does nothing) | ||
var that = function(){}; | ||
|
||
// Create a new Class that inherits from this class | ||
that.extend = function(prop) { | ||
var _super = this.prototype; | ||
|
||
// Instantiate a base class (but only create the instance, | ||
// don't run the init constructor) | ||
initializing = true; | ||
var prototype = new this(); | ||
initializing = false; | ||
|
||
// Copy the properties over onto the new prototype | ||
for (var name in prop) { | ||
// Check if we're overwriting an existing function | ||
prototype[name] = typeof prop[name] == "function" && | ||
typeof _super[name] == "function" && fnTest.test(prop[name]) ? | ||
(function(name, fn){ | ||
return function() { | ||
var tmp = this._super; | ||
|
||
// Add a new ._super() method that is the same method | ||
// but on the super-class | ||
this._super = _super[name]; | ||
|
||
// The method only need to be bound temporarily, so we | ||
// remove it when we're done executing | ||
var ret = fn.apply(this, arguments); | ||
this._super = tmp; | ||
|
||
return ret; | ||
}; | ||
})(name, prop[name]) : | ||
prop[name]; | ||
} | ||
|
||
// The dummy class constructor | ||
function Class() { | ||
// All construction is actually done in the init method | ||
if ( !initializing && this.init ) | ||
this.init.apply(this, arguments); | ||
} | ||
|
||
// Populate our constructed prototype object | ||
Class.prototype = prototype; | ||
|
||
// Enforce the constructor to be what we expect | ||
Class.constructor = Class; | ||
|
||
// And make this class extendable | ||
Class.extend = arguments.callee; | ||
|
||
return Class; | ||
}; | ||
|
||
return that; | ||
})(); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
exports.account = (function(){ | ||
var that = {}; | ||
|
||
//Private variables | ||
var _id = "", _key = ""; | ||
|
||
//Public properties | ||
that.getId = function(){ return _id }; | ||
that.getKey = function(){ return _key}; | ||
|
||
//Public functions | ||
that.setAccountKey = function(id, key){ | ||
_id = id; | ||
_key = key; | ||
}; | ||
|
||
return that; | ||
})(); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
var account = require('./base/account.js').account; | ||
|
||
exports.account = account; | ||
exports.setAccountKey = account.setAccountKey; | ||
|
||
var sqs = require('./sqs/sqs.js').sqs; | ||
sqs.Queue = require('./sqs/Queue.js').Queue; | ||
|
||
exports.sqs = sqs; |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
var Class = require('./../base/Class.js').Class; | ||
|
||
|
||
var util = require('util'); | ||
|
||
console.log(util.inspect(Class,false,2)); | ||
|
||
exports.Queue = Class.extend({ | ||
}); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
var Queue = require('./Queue.js').Queue; | ||
|
||
exports.sqs = (function(){ | ||
var that = {}; | ||
|
||
that.getQueue = function(){ | ||
var newQueue = new Queue; | ||
return newQueue; | ||
}; | ||
|
||
return that; | ||
})(); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"name": "amazode", | ||
"description": "Interact with AWS services", | ||
"version": "0.0.0", | ||
"author": "TikiBooth Limited", | ||
"contributors": [ | ||
{ "name": "Ed Bosher", "email": "ed@butter.com.hk" } | ||
], | ||
"directories": { | ||
"lib": "./lib/" | ||
}, | ||
"engines": { | ||
"node": "0.3.3" | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
var vows = require('vows') | ||
,assert = require('assert'); | ||
|
||
var util = require('util'); | ||
|
||
var amazode = require('amazode'); | ||
var sqs = amazode.sqs; | ||
|
||
vows.describe('Account Initialization').addBatch({ | ||
'SetAccessKey':{ | ||
topic: function(){ | ||
amazode.setAccountKey("I'm the key id","I'm the secret key"); | ||
return true; | ||
}, | ||
'Should set the account object': function(){ | ||
assert.equal(amazode.account.getId(),"I'm the key id"); | ||
assert.equal(amazode.account.getKey(),"I'm the secret key"); | ||
} | ||
}, | ||
'Initialize queue':{ | ||
topic: function(){ | ||
return sqs.getQueue(); | ||
}, | ||
'Is instance of Queue': function(queue){ | ||
assert.instanceOf(queue,sqs.Queue) | ||
} | ||
} | ||
}).export(module); |