svenschoenung/vinylize


Turn object streams into vinyl streams

License: MIT

Language: JavaScript


npm Version Build Status Coverage Status Dependency Status devDependency Status Code Climate Codacy Badge

vinylize

Turn object streams into vinyl streams.

Installation

npm install vinylize

Usage

The following turns each movie object into a vinyl file that can be wrapped in a lodash template by gulp-wrap:

var gulp = require('gulp');
var streamify = require('stream-array');
var vinylize = require('vinylize');
var friendlyUrl = require('friendly-url');
var wrap = require('gulp-wrap');

// this might come from a database or other data source
var movies = [
  { title:'2001: A Space Odyssey', director:'Stanley Kubrick', year:1968 },
  { title:'THX 1138', director:'George Lucas', year:1971 },
  { title:'Blade Runner', director:'Ridley Scott', year:1982 }
];

// use vinylize() in an existing stream to turn objects into vinyl files
gulp.task('vinylize-pipe', function() {
  return streamify(movies)
    .pipe(vinylize({ path: function(movie) {
      return friendlyUrl(movie.title) + '.html';
    }}))
    .pipe(wrap('<h1><%= title %> (<%= year %>)</h1>\n' +
               '<div>Directed by: <%= director %></div>'))
    .pipe(gulp.dest('movies'));
});

// alternatively use vinylize() to create a new stream of vinyl files
gulp.task('vinylize-stream', function() {
  vinylize(movies, { path: function(movie) {
      return friendlyUrl(movie.title) + '.html';
    }})
    .pipe(wrap('<h1><%= title %> (<%= year %>)</h1>\n' +
               '<div>Directed by: <%= director %></div>'))
    .pipe(gulp.dest('movies'));
});

Result

movies/2001-a-space-odyssey.html

<h1>2001: A Space Odyssey (1968)</h1>
<div>Directed by: Stanley Kubrick</div>

movies/thx-1138.html

<h1>THX 1138 (1971)</h1>
<div>Directed by: George Lucas</div>

movies/blade-runner.html

<h1>Blade Runner (1982)</h1>
<div>Directed by: Ridley Scott</div>

See the examples folder for more examples.

API

See the API documentation for available functions and options.

License

MIT

Project Statistics

Sourcerank 2
Repository Size 25.4 KB
Stars 0
Forks 0
Watchers 1
Open issues 0
Dependencies 11
Contributors 1
Tags 4
Created
Last updated
Last pushed

Top Contributors See all

Sven Schoenung

Packages Referencing this Repo

vinylize
Turn object streams into vinyl streams
Latest release 0.3.0 - Updated

Recent Tags See all

v0.3.0 May 26, 2016
v0.2.0 May 05, 2016
v0.1.0 May 05, 2016
v0.0.1 May 03, 2016

Something wrong with this page? Make a suggestion

Last synced: 2016-05-26 15:53:07 UTC

Login to resync this repository