Skip to content

Commit

Permalink
Added first version of the player
Browse files Browse the repository at this point in the history
  • Loading branch information
carpasse committed May 20, 2015
1 parent cba4c42 commit 6a6edd0
Show file tree
Hide file tree
Showing 75 changed files with 9,369 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .bowerrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"registry": {
"search": ["http://bower.anglb.com", "https://bower.herokuapp.com/"],
"register": "http://bower.anglb.com"
}
}
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.DS_Store
node_modules
bower_components
/dev
.idea/
/dist
*.swp
*.swo
Empty file added .npmignore
Empty file.
26 changes: 26 additions & 0 deletions bower.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "videojs-vast-plugin",
"version": "0.0.0",
"authors": [
"Carlos Serrano <carlos.pastor@mailonline.co.uk>"
],
"description": "VAST plugin to use with video.js",
"main": [
"dist/videojs-vast-plugin.min.js",
"dist/videojs-vast-plugin.min.css"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests",
"build",
"frontend/demo/*"
],
"dependencies": {
"video.js": "4.11.4",
"videojs-contrib-ads": "^1.0.2"
}
}
5 changes: 5 additions & 0 deletions build/BuildTaskDoc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = function BuildTaskDoc(name, description, order) {
this.name = name;
this.description = description;
this.order = order || 100;
};
16 changes: 16 additions & 0 deletions build/COLORS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
var colors = require('colors');

colors.setTheme({
silly: 'rainbow',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
debug: 'blue',
error: 'red'
});

module.exports = colors;
78 changes: 78 additions & 0 deletions build/build-demo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
var gulp = require('gulp');
var runSequence = require('run-sequence');
var path = require('path');
var config = require('./config');
var template = require('gulp-template');
var globUtils = require('./globUtils');
var flatten = require('gulp-flatten');
var less = require('gulp-less');
var BuildTaskDoc = require('./BuildTaskDoc');


gulp.task('build-demo', function (callback) {
runSequence(
'build',
[
'build-demo-scripts',
'build-demo-assets',
'build-demo-page'
],
function (error) {
if (error) {
console.log(error.message.red);
}
console.log('BUILD DEMO FINISHED SUCCESSFULLY'.green);
callback();
});
});


gulp.task('build-demo-assets', function () {
var assetsPath = path.join(config.DEV, '/assets');

return gulp.src(config.demo.assets)
.pipe(gulp.dest(assetsPath));
});


gulp.task('build-demo-page', function () {
var scripts, styles;

if (config.env === 'production') {
scripts = [
config.prodfile.scripts
];

scripts = globUtils.flattenFiles(scripts, 'scripts');

} else {
scripts = config.vendor.scripts
.concat(config.plugin.scripts);

scripts = globUtils.syncGlobArray(scripts, {}, true, 'scripts');
}

styles = [
config.prodfile.styles
];

styles = globUtils.flattenFiles(styles, 'styles');

return gulp.src(config.demo.pages)
.pipe(template({
scripts: scripts,
styles: styles
}))
.pipe(gulp.dest(config.DEV));
});


gulp.task('build-demo-scripts', function () {
var scriptsDistPath = path.join(config.DEV, '/scripts');

return gulp.src(config.demo.scripts)
.pipe(flatten())
.pipe(gulp.dest(scriptsDistPath));
});

module.exports = new BuildTaskDoc("build-demo", "Builds the demo", 5);
72 changes: 72 additions & 0 deletions build/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
var gulp = require('gulp');
var runSequence = require('run-sequence');
var config = require('./config');
var path = require('path');
var mergeStream = require('merge-stream');
var gulpif = require('gulp-if');
var minifyCSS = require('gulp-minify-css');
var concat = require('gulp-concat');
var header = require('gulp-header');
var footer = require('gulp-footer');
var uglify = require("gulp-uglify");
var flatten = require('gulp-flatten');
var rename = require('gulp-rename');
var del = require('del');
var BuildTaskDoc = require('./BuildTaskDoc');

gulp.task('build', function (callback) {
var tasks = [
'clean',
[
'build-scripts',
'build-styles'
]
];

tasks.push(function (error) {
if (error) {
console.log(error.message.red);
}
console.log('BUILD FINISHED SUCCESSFULLY'.green);
callback();
});

runSequence.apply(this, tasks);
});


gulp.task('clean', function (cb) {
del([config.DEV], {force: true}, cb);
});


gulp.task('build-scripts', function () {
var scriptsDistPath = path.join(config.DEV, '/scripts');
var appScriptsStream = gulp.src(config.plugin.scripts)
.pipe(gulpif(config.env === 'production', concat('temp.plugin.scripts.js', {newLine: '\n;\n'})))
.pipe(gulpif(config.env === 'production', header('(function () {')))
.pipe(gulpif(config.env === 'production', footer('})();')))
.pipe(flatten());

var vendorScriptsStream = gulp.src(config.vendor.scripts)
.pipe(gulpif(config.env === 'production', concat('temp.plugin.vendor.scripts.js', {newLine: '\n;\n'})));

return mergeStream(vendorScriptsStream, appScriptsStream)
.pipe(gulpif(config.env === 'production', concat(config.prodfile.scripts, {newLine: '\n;\n'})))
.pipe(gulp.dest(scriptsDistPath))
.pipe(gulpif(config.env === 'production', uglify()))
.pipe(gulpif(config.env === 'production', rename({suffix: ".min"})))
.pipe(gulpif(config.env === 'production', gulp.dest(scriptsDistPath)));
});


gulp.task('build-styles', function () {
var distCssPath = path.join(config.DEV, 'styles');

return gulp.src(config.plugin.styles)
.pipe(flatten())
.pipe(gulpif(config.env === 'production', concat(config.prodfile.styles, {newLine: '\n;\n'})))
.pipe(gulpif(config.env === 'production', minifyCSS({keepBreaks: false})))
.pipe(gulp.dest(distCssPath));
});
module.exports = new BuildTaskDoc("build", "This task builds the plugin", 4);
78 changes: 78 additions & 0 deletions build/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
var path = require('path');
var pkg = require('../package.json');
var parseArgs = require('minimist');

var knownOptions = {
string: 'env',
default: {env: process.env.NODE_ENV || 'development'}
};

var options = parseArgs(process.argv.slice(2), knownOptions);
module.exports = {
env: options.env,

//Files needed to build the demo
demo: {
pages: [
'demo/tpls/demo.html'
],
styles: [
'bower_components/video.js/dist/video-js/video-js.css',
'demo/styles/*.less'
],

assets: [
'demo/assets/*'
],

scripts: [
'node_modules/es5-shim/es5-shim.js', //Required for the player to work on old browsers
'bower_components/video.js/dist/video-js/video.dev.js',
'demo/scripts/**/*.js'
]
},

//Vendor files
vendor: {
scripts: [
'bower_components/videojs-contrib-ads/src/videojs.ads.js'
],
styles: [
//Empty for the moment
],
assets: [
//Empty for the moment
],
fonts: [
//Empty for the moment
]
},

plugin: {
scripts: [
'src/utils/pollyfill.js',
'src/utils/utilityFunctions.js',
'src/utils/**/*.js',
'src/**/*.js'
],
styles: [
'src/**/*.css'
],
tests: {
unit: [
'test/test-utils.js',
'test/**/*.js'
]
}
},

//App files for production
prodfile: {
scripts: pkg.name + '.js',
styles: pkg.name + '.css'
},

//Dist folder
DIST: path.normalize('__dirname/../dist'),
DEV: path.normalize('__dirname/../dev')
};
10 changes: 10 additions & 0 deletions build/dev-server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
var gulp = require( "gulp" );
var supervisor = require( "gulp-supervisor" );
var BuildTaskDoc = require('./BuildTaskDoc');

gulp.task( "dev-server", ['build-demo'], function() {
console.log('STARTING DEVELOPMENT SERVER'.blue);
supervisor( "demo/server/index.js" );
});

module.exports = new BuildTaskDoc("dev-server", "Starts a server pointing to DEV folder", 2);
49 changes: 49 additions & 0 deletions build/globUtils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
var path = require('path');
var glob = require("glob");


function syncGlobArray(patterns, options, flatten, prefix) {
var fileMatches = [];
patterns = patterns || [];
options = options || {};
prefix = prefix || '';

patterns.forEach(function (pattern) {
var patternMatches = glob.sync(pattern, options);

if (pattern.substr(0, 1) !== '!') {
fileMatches = fileMatches.concat(patternMatches);
} else {
filterNegative(patternMatches, fileMatches);
}
});

if(flatten) {
fileMatches = flattenFiles(fileMatches, prefix);
}
return fileMatches;
}

function filterNegative(negativeMatches, allMatches) {
negativeMatches.forEach(function (match) {
var index = allMatches.indexOf(match);

if (index > -1) {
allMatches.splice(index, 1);
}
})
}

function flattenFiles(files, prefix){
var flattenedFiles = [];
files.forEach(function(file){
var fileName = file.replace(/^.*[\\\/]/, '');
flattenedFiles.push(path.join(prefix, fileName));
});
return flattenedFiles;
}

module.exports = {
syncGlobArray:syncGlobArray,
flattenFiles: flattenFiles
};
Loading

1 comment on commit 6a6edd0

@rati592
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please send me a working link.

Please sign in to comment.