Skip to content

Instantly share code, notes, and snippets.

View leemason's full-sized avatar
🎯
Focusing

Lee Mason leemason

🎯
Focusing
View GitHub Profile
@leemason
leemason / data_mapper.js
Created May 6, 2016 19:10
Simple DataMapper
var UserMapper = require('./userMapper');
var user = UserMapper.create();//optionally provide attributes
user.name = 'Lee Mason';
UserMapper.save(user);
@leemason
leemason / active_record.js
Last active May 7, 2016 09:05
Data Mapper Vs Active Record
var User = require('./user');
var user = new User();
user.name = 'Lee Mason';
user.save();
@leemason
leemason / boostrap.js
Created May 5, 2016 14:03
Factory/Service Locator
let factory = require('factory'),
db = require('db_module'),
config = require('config');
factory.register('db', function(){
return new db(config.db);
});
//carry on, db is registered
@leemason
leemason / controller.js
Created May 5, 2016 13:55
Facade/Implicit Invocation
let DB = require('db_facade');
// Now you can use DB as its already created, this means we dont need to create it everywhere we use it.
export default class Controller{
postIndex(req, res){
DB.insert('table', req.get('data'));
}
}
@leemason
leemason / controller.js
Created May 5, 2016 13:52
Manual Invocation
let db = require('db_module'),
config = require('config');
let DB = new db(config.db);
// Now you can use DB
export default class Controller{
postIndex(req, res){
DB.insert('table', req.get('data'));
@leemason
leemason / index.js
Created April 28, 2016 16:43
NodeJs Framework Interfaces without Interfaces
var logger = require('./services/logger'),
db = require('./services/db');
db.select('select * from users', function(items){
//do something
logger.info(`${items.length} returned.`);
});
<?php
Interface Config{
public function get($key);
public function set($key, $value);
}
@leemason
leemason / simple_select.js
Last active April 28, 2016 10:27
Example usage of SQL Mason.
var mason = new Mason();
sql = mason
.select('*')
.from('users')
.where(function(builder){
builder
.where('first_name', 'lee')
.where('last_name', 'mason');
})
@leemason
leemason / 003syncbackup.sh
Created April 22, 2016 20:07
Sync backups to Amazon S3 via trickle and s3cmd.
#!/bin/bash
#send sync request to s3 bucket
/usr/bin/trickle -s -u 4000 -d 4000 /usr/bin/s3cmd --config=/home/{{user}}/.s3cfg sync /backups s3://{{bucketname}}/{{location}}/
@leemason
leemason / .s3cfg
Created April 22, 2016 20:04
S3cmd config file.
[default]
access_key = {{access_key}}
secret_key = {{secret_key}}
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8