1.0.1 • Published 9 years ago

node-action-parser v1.0.1

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

node-action-parser

Extract arbitrary user commands from text strings.

Installation:

npm install --save node-action-parser

Usage:

The library's core function , parseText(), returns an array of objects containing the words surrounding the actionCharacter(s) dictated during initialization.

var ActionParser = require("node-action-parser");
var parser = new ActionParser("#");

var text = "follow #benjamin";
console.log(parser.parseText(text)); // => "[{action: "follow", parameter: "benjamin", ...}]"

Default values can be given.

var ActionParser = require("node-action-parser");
var parser = new ActionParser("#", { defaultAction: "message" });

var text = "#benjamin how's it going?";
console.log(parser.parseText(text)); // => "[{action: "message", parameter: "benjamin", value: "how's it going?", ...}]" 

Multiple commands at once.

var ActionParser = require("node-action-parser");
var parser = new ActionParser("@", { defaultAction: "message" });

var text = "@benjamin how's it going? @Jamie are you free tonight?";
console.log(parser.parseText(text)); 
// => "[{action: "message", parameter: "benjamin", value: "how's it going?", ...},
//      {action: "message", parameter: "Jamie", value: "are you free tonight?", ...}]" 

Documentation:

The source code uses ES6, Babel, and JSDoc, with auto-generated markdown documentation in the /src directory.

Bugs:

Commands might inherit parts of subsequent commands..

var ActionParser = require("node-action-parser");
var parser = new ActionParser("@");

var text = "message @benjamin how's it going? message @Jamie are you free tonight?";
console.log(parser.parseText(text)); 
// => "[{action: "message", parameter: "benjamin", value: "how's it going? message", ...},
//      {action: "message", parameter: "Jamie", value: "are you free tonight?", ...}]" 

Contributions:

Welcome! :)

git clone https://github.com/bjones6/node-action-parser.git
npm install
# make improvements
gulp build # => build documentation and transpile ES6 in /src to ES5 in /lib
npm test # => run tests with mocha to make sure nothing broke

License:

MIT