From a161942c03ddfb16100f9afe6d340b5337f7eed8 Mon Sep 17 00:00:00 2001 From: Mohsen Azimi Date: Thu, 29 Jan 2015 10:58:55 -0800 Subject: [PATCH] Add templates --- gulpfile.js | 69 ++++++++++++++++++++++++++++++++++++---------------- package.json | 15 ++++++------ 2 files changed, 56 insertions(+), 28 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 2446ec93..f3e14fe9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,13 +1,17 @@ 'use strict'; var gulp = require('gulp'); +var es = require('event-stream'); var gutil = require('gulp-util'); var clean = require('gulp-clean'); var coffee = require('gulp-coffee'); var concat = require('gulp-concat'); var uglify = require('gulp-uglify'); -var rename = require("gulp-rename"); +var rename = require('gulp-rename'); var less = require('gulp-less'); +var handlebars = require('gulp-handlebars'); +var wrap = require('gulp-wrap'); +var declare = require('gulp-declare'); /* * Clean ups ./dist folder @@ -15,27 +19,48 @@ var less = require('gulp-less'); gulp.task('clean', function() { return gulp - .src('./dist', {read: false}) - .pipe(clean({force: true})); + .src('./dist/**/*', {read: false}) + .pipe(clean({force: true})) + .on('error', gutil.log); }); +/* + * Processes Handlebars templates +*/ +function templates() { + return gulp + .src(['./src/main/template/**/*']) + .pipe(handlebars()) + .pipe(wrap('Handlebars.template(/*__DEFINING__*/<%= contents %>)')) + .pipe(declare({ + namespace: 'Handlebars.templates', + noRedeclare: true, // Avoid duplicate declarations + })) + .on('error', gutil.log); +} + +/* + * Processes CoffeeScript files +*/ +function coffeescript () { + return gulp + .src(['./src/main/coffeescript/**/*.coffee']) + .pipe(coffee({bare: true})) + .on('error', gutil.log); +} + /* * Build a distribution */ gulp.task('dist', function() { - return gulp - .src([ - './src/main/coffeescript/view/**/*.coffee', - './src/main/coffeescript/SwaggerUi.coffee' - ]) - .pipe(coffee({bare: true})) + return es.merge(coffeescript(), templates()) .pipe(concat('swagger-ui.js')) .pipe(gulp.dest('./dist')) .pipe(uglify()) .pipe(rename({extname: '.min.js'})) - .pipe(gulp.dest('./dist')) - .on('error', gutil.log); + .on('error', gutil.log) + .pipe(gulp.dest('./dist')); }); /* @@ -43,17 +68,17 @@ gulp.task('dist', function() { */ gulp.task('less', function() { - gulp - .src('./src/main/less/screen.less') + return gulp + .src([ + './src/main/less/screen.less', + './src/main/less/reset.less' + ]) .pipe(less()) - .pipe(gulp.dest('./src/main/html/css/screen.css')); - - gulp - .src('./src/main/less/reset.less') - .pipe(less()) - .pipe(gulp.dest('./src/main/html/css/reset.css')); + .on('error', gutil.log) + .pipe(gulp.dest('./src/main/html/css/')); }); + /* * Copy lib and html folders */ @@ -62,12 +87,14 @@ gulp.task('copy', function() { // copy JavaScript files inside lib folder gulp .src(['./lib/**/*.js']) - .pipe(gulp.dest('./dist/lib')); + .pipe(gulp.dest('./dist/lib')) + .on('error', gutil.log); // copy all files inside html folder gulp .src(['./src/main/html/**/*']) - .pipe(gulp.dest('./dist')); + .pipe(gulp.dest('./dist')) + .on('error', gutil.log); }); diff --git a/package.json b/package.json index 29cf3608..3a3d8847 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "swagger-ui", - "version": "2.1.0-alpha.8", + "version": "2.1.0-alpha.7", "description": "Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API", "scripts": { "build": "PATH=$PATH:./node_modules/.bin cake dist", - "test": "./node_modules/coffee-script/bin/cake dist; ./node_modules/mocha/bin/mocha src/test/e2e/index.js" + "test": "./node_modules/gulp/bin/gulp.js; ./node_modules/mocha/bin/mocha src/test/e2e/index.js" }, "repository": { "type": "git", @@ -18,27 +18,28 @@ "license": "Apache", "readmeFilename": "README.md", "dependencies": { - "coffee-script": "~1.6.3", - "swagger-client": "2.1.0-alpha.7", - "handlebars": "~1.0.10", - "less": "~1.4.2" + "swagger-client": "2.1.0-alpha.5" }, "devDependencies": { "chai": "^1.10.0", "cors": "2.1.1", "docco": "0.4.x", + "event-stream": "^3.2.1", "express": "3.x", "gulp": "^3.8.10", "gulp-clean": "^0.3.1", "gulp-coffee": "^2.2.0", "gulp-concat": "^2.4.3", + "gulp-declare": "^0.3.0", + "gulp-handlebars": "^3.0.1", "gulp-less": "^2.0.1", "gulp-rename": "^1.2.0", "gulp-uglify": "^1.1.0", "gulp-util": "^3.0.2", + "gulp-wrap": "^0.10.1", "http-server": "^0.7.4", + "less": "~1.4.2", "mocha": "^2.1.0", - "ncp": "^1.0.1", "selenium-webdriver": "^2.44.0" } }