gistdb

Use gist's from GitHub as database files.

npm install gistdb
17 downloads in the last month

GistDB

Install: npm install gistdb

This project was started just to learn the gist api.

This project is Unlicensed

Functions

create(content[,database name]); -- Create a new databse. (Requires auth) - Caller ID: 3
get(key) -- Get the value for key.
load([gist id]); -- Load a database. (No auth required) - Caller ID: 1
remove(key) -- Deletes a key and its value. Returns true or false.
save(); -- Saves a database to gist. (Requires auth) - Caller ID: 2
set(key,value); -- Sets a key with said value.

NOTE: Caller ID is used for the error lisener.

Listeners

created -- Triggered by create()
    Returned in object: db (database name), id (gist id)
    Example: GistDB.on('created',function(obj) { console.log("Database: "+obj.db+" - ID: "+obj.id); });
loaded -- Triggered by load();
    Returned in object: content (database), id (gist id)
    Example: GistDB.on('loaded',function(obj) { console.log("Content: "+JSON.stringify(obj.content)); });
saved -- Triggered by save();
    Returned in object: content (database), id (gist id)
    Example: GistDB.on('saved',function(obj) { console.log("Content: "+JSON.stringify(obj.content)); });
error -- Triggered by create(), load(), save()
    Returned in object: msg (error message), id (function caller id)
    Example: GistDB.on('error',function(obj) { console.log("Error Message: "+obj.msg+" - Caller ID: "+obj.id); });

NOTE: If a listener is called without being defined, a message is sent to console.

Options

NOTE: Username and password are not needed if you're only going to load the gist.
      Changed from "user,pass,[opts]" for easy option choosing.

User - Your github user name. (optional only if loading a gist.)
Pass - Your github password. (optional only if loading a gist, required with username.)
ID - Your gist id. (optional)
Timeout - Request timeout. (optional, defaults to 10 seconds)
    Example: gdb = new GistDB({user:'USERNAME',pass:'PASSWORD',id:"9cb6f8b7baa8300af0d7",timeout:1000});

Usage

var GistDB = require('gistdb');
var gdb = new GistDB({user:'USERNAME',pass:'PASSWORD',id:"9cb6f8b7baa8300af0d7",timeout:1000});

Example

var GistDB = require('gistdb');
var gdb = new GistDB({user:'USERNAME',pass:'PASSWORD',id:"9cb6f8b7baa8300af0d7",timeout:1000});
var content = {example:'This is an example database!'};
gdb.create(content,'example.db');
gdb.on('created',function (data) {
    console.log('New database created! ('+data.id+')');
    init(gdb);
});
gdb.on('error',function (data) {
    console.log('There was an error! (Error: '+data.msg+')');
});

gdb.on('saved',function (data) {
    console.log('Content saved to database!');
});

console.log('Init called: '+gdb.get('Initcalled')); // will return false, as the DB isn't loaded.

function init (gdb) {
         gdb.set('Initcalled',true);
         console.log('Init called: '+gdb.get('Initcalled')); // SHOULD return true if you loaded the DB correctly.
         this.save(); // Save when ever you feel like it. (probably best after adding content to the object.)
         // Run your project...
};
npm loves you