use gist's as databases with nodejs. - ES6 WIP under the ES6 branch.
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
.travis.yml
README.md
UNLICENSE
index.js
package.json
test.js

README.md

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 listener.

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...
};