diff --git a/Readme.md b/Readme.md index 7d25446..802c141 100644 --- a/Readme.md +++ b/Readme.md @@ -1,49 +1,72 @@ -Node.js Gist client -=================== +## Node.js Gist client + Gist API v3 client for Node.JS -Usage ------- - var gist = require('gist')(validOAuthToken); - - // get all your gists (or all public if you didnt specify a token) - gist.gists(function(err, resp, json) { - console.log(err, json) - }) - - // get all public gists for some user - gist.gists('maxogden', function(err, resp, json) { - console.log(err, json) - }) - - // get a gist by id - gist.gist('2698151', function(err, resp, json) { - console.log(err, json) - }) - - // creating a new gist - var newGist = { - "description": "the description for this gist", - "public": false, - "files": { - "file1.txt": { - "content": "String file contents" - } - } +## Installation + +For use in your modules (adds to package.json automatically) + + npm install -S gist + +For the commandline gist + + npm install -g gist + +## Usage + +### Commandline + + gist + + echo "Hello World!" > ./hello.txt + gist ./hello.txt + +### API + + * `gist.gists([username], fn)` + * `gist.gist(id, fn)` + * `gist([validOauthToken]).create(newGist, fn)` + +```javascript +var gist = require('gist')(validOAuthToken); + +// get all your gists (or all public if you didnt specify a token) +gist.gists(function(err, resp, json) { + console.log(err, json) +}) + +// get all public gists for some user +gist.gists('maxogden', function(err, resp, json) { + console.log(err, json) +}) + +// get a gist by id +gist.gist('2698151', function(err, resp, json) { + console.log(err, json) +}) + +// creating a new gist +var newGist = { + "description": "the description for this gist", + "public": false, + "files": { + "file1.txt": { + "content": "String file contents" } - gist(validOauthToken).create(newGist, function(err, resp, json) { - console.log(err, json) - }) + } +} +gist(validOauthToken).create(newGist, function(err, resp, json) { + console.log(err, json) +}) +``` +## Author -Author ------- * Max Ogden (@maxogden) this library was forked from Emerson Macedo () and entirely rewritten -License: --------- +## License (The MIT License) diff --git a/bin/gist.js b/bin/gist.js new file mode 100644 index 0000000..825dc19 --- /dev/null +++ b/bin/gist.js @@ -0,0 +1,101 @@ +#!/usr/bin/env node +/*jshint strict:true node:true es5:true onevar:true laxcomma:true laxbreak:true eqeqeq:true immed:true latedef:true*/ +(function () { + "use strict"; + + var gist = require('../') + , fs = require('fs') + , filepath = process.argv[2] + , desc = process.argv[3] + ; + + function usage() { + console.log('Usage: gist '); + } + + if (!filepath) { + usage(); + return; + } + + fs.readFile(filepath, 'utf8', function (err, data) { + var meta + , filename = filepath.replace(/.*\//, '') + ; + + //filename = 'index.js'; + + if (err) { + usage(); + return; + } + + meta = { + "description": desc || "" + , "public": true + , "files": {} + }; + meta.files[filename] = { content: data }; + + gist().create(meta, function (err, resp, json) { + if (err) { + console.error(err); + return; + } + + if (json.errors) { + console.log('[DEBUG]'); + console.log(JSON.stringify(meta, null, ' ')); + console.log('[GIST ERROR]'); + console.log(JSON.stringify(json, null, ' ')); + return; + } + + console.log('[gist]', json.html_url); + console.log('[raw]', json.files[filename].raw_url); + console.log('[git]', json.git_push_url); + }); + }); + + /* +{ + "git_push_url": "git@gist.github.com:3960244.git", + "user": null, + "html_url": "https://gist.github.com/3960244", + "history": [ + { + "user": null, + "version": "10564662c34f251be04ac7936758e8ff6c6df4a6", + "committed_at": "2012-10-26T17:51:27Z", + "change_status": { + "additions": 1, + "total": 1, + "deletions": 0 + }, + "url": "https://api.github.com/gists/3960244/10564662c34f251be04ac7936758e8ff6c6df4a6" + } + ], + "comments": 0, + "created_at": "2012-10-26T17:51:27Z", + "description": null, + "public": true, + "forks": [], + "updated_at": "2012-10-26T17:51:27Z", + "id": "3960244", + "url": "https://api.github.com/gists/3960244", + "files": { + "index.js": { + "type": "application/javascript", + "filename": "index.js", + "raw_url": "https://gist.github.com/raw/3960244/6b584e8ece562ebffc15d38808cd6b98fc3d97ea/index.js", + "size": 7, + "content": "content", + "language": "JavaScript" + } + }, + "git_pull_url": "git://gist.github.com/3960244.git" +} +*/ + + +}()); diff --git a/package.json b/package.json index b3da2ad..0d8555c 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,27 @@ -{ - "name" : "gist", - "description" : "Gist api client for node.js", - "keywords" : [ "gist", "github", "api", "package.json" ], - "version" : "0.3.0", - "author" : "Max Ogden ", - "repository" : { "type" : "git", - "url" : "git://github.com/maxogden/node-gist.git" }, +{ + "name": "gist", + "description": "Gist api client for node.js", + "keywords": [ + "gist", + "github", + "api", + "package.json" + ], + "version": "1.0.2", + "author": "Max Ogden ", + "repository": { + "type": "git", + "url": "git://github.com/maxogden/node-gist.git" + }, "main": "index", - "engines" : { "node" : ">=0.6.0" } + "bin": { + "gist": "bin/gist.js" + }, + "engines": { + "node": ">=0.6.0" + }, + "dependencies": { + "request": "~2.10.0", + "underscore": "~1.3.3" + } } -