1.0.0 • Published 9 years ago

gistfs.js v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

gistfs.js

build status

Gisthub gist API wrapper to writeFile and readFile

gistfs(repo)

A mixin for Octokat.js that provides a simple wrapper for writing to and reading from a gist. It provides an interface similar to node.js fs.readFile and fs.writeFile.

Limitations

Currently will only read files < 1Mb

Parameters

parametertypedescription
repoOctokat.gistA vaid repo returned from Octokat with the call octo.gists('gist_id'). See below for examples.

Example

var gistfs = require('gistfs'); 
var Octokat = require('octokat');

var octo = new Octocat({ username: "USER_NAME", password: "PASSWORD" });

var gh = gistfs(octo.gists('gist_id'));

Returns Object, returns and instance of gistfs with two methods readFile and writeFile.

writeFile(filename, data, callback)

Asynchronously writes data to a file on a Gist, replacing the file if it already exists. data can be a string or a buffer. A buffer is written encoded as base64.

Parameters

parametertypedescription
filenameStringCannot contain slashes
dataString\,Buffer
callbackFunction

Example

gh.writeFile('message.txt', 'Hello Github', function (err) {
  if (err) throw err;
  console.log('It\'s saved!');
});

readFile(filename, [options], callback)

Asynchronously read a file on Github.

The file path is always interpreted from the root of the repo, whether or not it is preceded by a slash.

The callback is passed two arguments (err, data), where data is the contents of the file.

Assumes data on gist is utf8. TODO read gist files encoded as base64.

If no encoding is specified, then the raw buffer is returned.

Parameters

parametertypedescription
filenameString
[options]Objectoptional: options.encoding=null (returns Buffer)
callbackFunction

Example

gh.readFile('my_file.txt', { encoding: 'utf8' }, function (err, data) { 
  if (err) throw err; 
  console.log(data);
  // text contents of file
});

Installation

Requires nodejs.

$ npm install gistfs.js

Tests

$ npm test