Making the Ruby server just a little smarter :D

This commit is contained in:
Chris Cowan 2014-09-11 15:37:23 -07:00
parent f6c5853e3c
commit 3634558835
4 changed files with 58 additions and 57 deletions

View file

@ -1,16 +1,4 @@
module.exports = function (grunt) {
var kibana_server_tasks = [];
if (grunt.option('use-jruby')) {
kibana_server_tasks = [
'stop:mri_server',
'run:mri_server'
];
} else {
kibana_server_tasks = [
'stop:jruby_server',
'run:jruby_server'
];
}
var config = {
test: {
files: [
@ -37,16 +25,6 @@ module.exports = function (grunt) {
'<%= testUtilsDir %>/istanbul_reporter/report.clientside.jade'
],
tasks: ['jade:clientside']
},
kibana_server: {
files: [
'src/server/**/*.rb',
'src/server/**/*.yml'
],
tasks: kibana_server_tasks,
options: {
spawn: false
}
}
};
@ -55,5 +33,22 @@ module.exports = function (grunt) {
delete config.test;
}
var ruby_server = grunt.config.get('ruby_server');
if (ruby_server) {
config.kibana_server = {
files: [
'src/server/**/*.rb',
'src/server/**/*.yml'
],
tasks: [
'stop:' + ruby_server,
'run:' + ruby_server
],
options: {
spawn: false
}
};
}
return config;
};

View file

@ -1,21 +1,9 @@
module.exports = function (grunt) {
var useJRuby = grunt.option('use-jruby');
var tasks = [
grunt.registerTask('dev', [
'less',
'jade'
];
if (useJRuby) {
tasks = tasks.concat([
'download_jruby',
'install_gems',
'run:jruby_server',
'wait_for_jruby'
]);
} else {
tasks = tasks.concat(['run:mri_server']);
}
grunt.registerTask('dev', tasks.concat([
'jade',
'ruby_server',
'maybe_start_server',
'watch'
]));
]);
};

28
tasks/ruby_server.js Normal file
View file

@ -0,0 +1,28 @@
var request = require('request');
module.exports = function (grunt) {
grunt.registerTask('ruby_server', function () {
var done = this.async();
request.get('http://localhost:5601/config', function (err, resp, body) {
if (err) {
var tasks = ['run:mri_server'];
grunt.config.set('ruby_server', 'mri_server');
if (grunt.option('use-jruby')) {
tasks = [
'download_jruby',
'install_gems',
'run:jruby_server',
'wait_for_jruby'
];
grunt.config.set('ruby_server', 'jruby_server');
}
grunt.task.run(tasks);
} else {
grunt.log.error('Another ruby server is running on localhost:5601.');
}
done();
});
});
};

View file

@ -1,34 +1,24 @@
var _ = require('lodash');
module.exports = function (grunt) {
/* jshint scripturl:true */
var rubyTasks;
if (grunt.option('use-mri')) {
rubyTasks = [
'run:mri_server',
];
} else {
rubyTasks = [
'download_jruby',
'install_gems',
'run:jruby_server',
'wait_for_jruby'
];
}
grunt.registerTask('test', rubyTasks.concat([
grunt.registerTask('test', [
'ruby_server',
'maybe_start_server',
'jade',
'mocha:unit',
'jshint'
]));
]);
grunt.registerTask('coverage', rubyTasks.concat([
grunt.registerTask('coverage', [
'blanket',
'ruby_server',
'maybe_start_server',
'mocha:coverage'
]));
]);
grunt.registerTask('test:watch', rubyTasks.concat([
grunt.registerTask('test:watch', [
'ruby_server',
'maybe_start_server',
'watch:test'
]));
]);
};