stringray
v0.1.3
Published
Module that transforms a JS Array into a single String of newline-separated elements.
Downloads
7
Maintainers
Readme
stringray
Module that transforms a JS Array
into a single String
of newline-separated elements.
Getting started.
$ npm install stringray
Let's say you have a JSON Array
dataset with 50 songs, where each element is an Object
with 20+ keys. Once converted, stringray can convert these songs into a a single String
of newline-separated elements. Specifically, it will:
- process
null
elements on conversion, - converts
Function
elements to a '[Function : Function]' string, and - adds a newline at the end of every result
When used in conjunction with the split and through modules, you can consume and process each song one at a time as you wish.
Examples.
// JavaScript Usage
var stringray = require('stringray');
// Instead of doing this...
var ceeDee = [{ "c" : 3 }, {"d" : 4}];
var output = '';
for (var i = 0, il = ceeDee.length, obj; i < il; i++) {
obj = ceeDee[i];
output += JSON.stringify(obj) + '\n'
}
console.log(output); //=> '{"c":3}\n{"d":4}\n'
// stringray does the above in a single line.
stringray([{ "c" : 3 }, {"d" : 4}]) //=> '{"c":3}\n{"d":4}\n'
// stringray writes `null` to the output.
stringray([null, 1, 2]) //=> 'null\n1\n2\n'
// Any function elements are converted to a `[Function: Function]` string
stringray([function() { }]) //=> '[Function: Function]\n'
# CoffeeScript Usage
stringray = require 'stringray'
nest =
artist: 'Slakah the Beatchild ft. Ebrahim'
title: 'This Beautiful Feeling'
meta:
time: 231
tags: ['neo-soul', 'summer vibes', 'slakah', 'ebrahim']
stringray(nest)
# =>'{"artist":"Slakah the Beatchild ft. Ebrahim","title":"This Beautiful Feeling","meta":{"time":231,"tags":["neo-soul","summer vibes","slakah","ebrahim"]}}\n'
Test.
# clone this repo and cd inside it
$ git clone https://github.com/francismakes/stringray && cd $_
# install jasmine-node as a dev-dependency
$ npm install
# runs tests
$ npm test
Tasks.
- [Local] Add example on using this stringray in conjunction with Node.js streams.
- [Local] JSHint - include either a precommit hook, config, or gulp task to hint