| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- 'use strict';
 
- var gulp = require('gulp'),
 
-     plugins = require('gulp-load-plugins')(),
 
-     pkg = require('./package'),
 
-     scripts = {
 
-         all: [
 
-             'src/*.js',
 
-             'gulpfile.js',
 
-             'docs/js/main.js'
 
-         ],
 
-         src: 'src/*.js',
 
-         docs: 'docs/js',
 
-         dest: 'dist/js'
 
-     },
 
-     styles = {
 
-         src: 'src/css/*.css',
 
-         docs: 'docs/css',
 
-         dest: 'dist/css'
 
-     },
 
-     images = {
 
-         src: 'src/images/*.png',
 
-         docs: 'docs/images',
 
-         dest: 'dist/images'
 
-     };
 
- gulp.task('jshint', function () {
 
-     return gulp.src(scripts.all)
 
-         .pipe(plugins.jshint())
 
-         .pipe(plugins.jshint.reporter('default'));
 
- });
 
- gulp.task('jscs', function () {
 
-     return gulp.src(scripts.all)
 
-         .pipe(plugins.jscs());
 
- });
 
- gulp.task('js', ['jshint', 'jscs', 'copy'], function () {
 
-     return gulp.src(scripts.src)
 
-         .pipe(plugins.replace(/@\w+/g, function (placeholder) {
 
-             switch (placeholder) {
 
-                 case '@VERSION':
 
-                     placeholder = pkg.version;
 
-                     break;
 
-                 case '@YEAR':
 
-                     placeholder = (new Date()).getFullYear();
 
-                     break;
 
-                 case '@DATE':
 
-                     placeholder = (new Date()).toISOString();
 
-                     break;
 
-             }
 
-             return placeholder;
 
-         }))
 
-         .pipe(gulp.dest(scripts.docs))
 
-         .pipe(gulp.dest(scripts.dest))
 
-         .pipe(plugins.rename({
 
-             suffix: '.min'
 
-         }))
 
-         .pipe(plugins.uglify({
 
-             preserveComments: 'license'
 
-         }))
 
-         .pipe(gulp.dest(scripts.dest));
 
- });
 
- gulp.task('jscopy', function () {
 
-     return gulp.src(scripts.src)
 
-         .pipe(gulp.dest(scripts.docs))
 
-         .pipe(gulp.dest(scripts.dest));
 
- });
 
- gulp.task('csscopy', function () {
 
-     return gulp.src(styles.src)
 
-         .pipe(gulp.dest(styles.docs))
 
-         .pipe(gulp.dest(styles.dest));
 
- });
 
- gulp.task('imagecopy', function () {
 
-     return gulp.src(images.src)
 
-         .pipe(gulp.dest(images.docs))
 
-         .pipe(gulp.dest(images.dest));
 
- });
 
- gulp.task('copy', ['jscopy', 'csscopy', 'imagecopy'], function () {
 
- });
 
- gulp.task('docs', function () {
 
-     return gulp.src('docs/**')
 
-         .pipe(gulp.dest('_gh_pages'));
 
- });
 
- gulp.task('release', ['js', 'docs'], function () {
 
-     return gulp.src('dist/**/*')
 
-         .pipe(gulp.dest('_releases/' + pkg.version));
 
- });
 
- gulp.task('watch', function () {
 
-     gulp.watch(scripts.src, ['jscopy']);
 
-     gulp.watch(styles.src, ['csscopy']);
 
- });
 
- gulp.task('default', ['watch']);
 
 
  |