adding eslint
This commit is contained in:
parent
5f395dcf41
commit
084a1a2326
19
.eslintrc.yml
Normal file
19
.eslintrc.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# http://eslint.org/docs/user-guide/configuring
|
||||||
|
# http://eslint.org/docs/2.0.0/rules/
|
||||||
|
env:
|
||||||
|
browser: true
|
||||||
|
jquery: true
|
||||||
|
extends: 'eslint:recommended'
|
||||||
|
rules:
|
||||||
|
indent:
|
||||||
|
- error
|
||||||
|
- 2
|
||||||
|
linebreak-style:
|
||||||
|
- error
|
||||||
|
- unix
|
||||||
|
no-trailing-spaces:
|
||||||
|
- warn
|
||||||
|
quotes: off
|
||||||
|
semi:
|
||||||
|
- error
|
||||||
|
- always
|
@ -19,6 +19,10 @@ RUN apt-get update \
|
|||||||
&& echo "alias la='ls -ahl'" >> /root/.bashrc \
|
&& echo "alias la='ls -ahl'" >> /root/.bashrc \
|
||||||
&& echo "export HISTCONTROL=ignoredups" >> /root/.bashrc
|
&& echo "export HISTCONTROL=ignoredups" >> /root/.bashrc
|
||||||
|
|
||||||
|
# RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
|
||||||
|
# RUN apt-get update\
|
||||||
|
# && apt-get install --yes nodejs
|
||||||
|
|
||||||
# install current Ruby
|
# install current Ruby
|
||||||
RUN curl -L --progress https://github.com/postmodern/ruby-install/archive/v0.6.0.tar.gz | tar xz \
|
RUN curl -L --progress https://github.com/postmodern/ruby-install/archive/v0.6.0.tar.gz | tar xz \
|
||||||
&& cd ruby-install-0.6.0 \
|
&& cd ruby-install-0.6.0 \
|
||||||
|
2
Gemfile
2
Gemfile
@ -21,10 +21,10 @@ gem 'neat'
|
|||||||
gem 'bitters'
|
gem 'bitters'
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
gem 'better_errors'
|
||||||
gem 'rack-livereload'
|
gem 'rack-livereload'
|
||||||
gem 'rails-erd'
|
gem 'rails-erd'
|
||||||
gem 'web-console'
|
gem 'web-console'
|
||||||
gem 'better_errors'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
|
11
Guardfile
11
Guardfile
@ -23,7 +23,7 @@ guard :minitest, spring: true do # , all_after_pass: true
|
|||||||
end
|
end
|
||||||
|
|
||||||
guard 'livereload' do
|
guard 'livereload' do
|
||||||
watch(%r{app/assets/.+\.(scss|css|js)})
|
watch(%r{app/assets/.+\.(scss|css|js|erb)})
|
||||||
watch(%r{app/views/.+\.(erb|haml|slim)$})
|
watch(%r{app/views/.+\.(erb|haml|slim)$})
|
||||||
watch(%r{app/controllers/.+\.rb})
|
watch(%r{app/controllers/.+\.rb})
|
||||||
watch(%r{app/helpers/.+\.rb})
|
watch(%r{app/helpers/.+\.rb})
|
||||||
@ -31,7 +31,7 @@ guard 'livereload' do
|
|||||||
watch(%r{config/locales/.+\.yml})
|
watch(%r{config/locales/.+\.yml})
|
||||||
|
|
||||||
# Rails Assets Pipeline
|
# Rails Assets Pipeline
|
||||||
watch(%r{(app|vendor)(/assets/\w+/(.+\.(scss|css|js|html|png|jpg))).*}) do |m|
|
watch(%r{(app|vendor)(/assets/\w+/(.+\.(scss|css|js|erb|html|png|jpg))).*}) do |m|
|
||||||
"/assets/#{m[3]}"
|
"/assets/#{m[3]}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -41,3 +41,10 @@ guard :rubocop do
|
|||||||
watch(/Rakefile/)
|
watch(/Rakefile/)
|
||||||
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# ESLint
|
||||||
|
guard :shell, all_on_start: true do
|
||||||
|
watch %r{app/assets/javascripts/*/.*} do |file|
|
||||||
|
`eslint #{file[0]}`
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
//= require_self
|
//= require_self
|
||||||
//= require_tree ./channels
|
//= require_tree ./channels
|
||||||
|
|
||||||
(function() {
|
// (function() {
|
||||||
this.App || (this.App = {});
|
// this.App || (this.App = {});
|
||||||
|
//
|
||||||
App.cable = ActionCable.createConsumer();
|
// App.cable = ActionCable.createConsumer();
|
||||||
|
//
|
||||||
}).call(this);
|
// }).call(this);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* NOTE: MARK MOSER EDITED COPY. DO NOT USE BOWER.
|
* NOTE: MARK MOSER EDITED COPY. DO NOT USE BOWER.
|
||||||
|
*
|
||||||
* jQuery Lined Textarea Plugin
|
* jQuery Lined Textarea Plugin
|
||||||
* http://alan.blog-city.com/jquerylinedtextarea.htm
|
* http://alan.blog-city.com/jquerylinedtextarea.htm
|
||||||
*
|
*
|
||||||
@ -29,13 +30,11 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
$.fn.linedtextarea = function(options) {
|
$.fn.linedtextarea = function(options) {
|
||||||
|
|
||||||
// Get the Options
|
// Get the Options
|
||||||
var opts = $.extend({}, $.fn.linedtextarea.defaults, options);
|
var opts = $.extend({}, $.fn.linedtextarea.defaults, options);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Helper function to make sure the line numbers are always
|
* Helper function to make sure the line numbers are always
|
||||||
* kept up to the current system
|
* kept up to the current system
|
||||||
@ -52,7 +51,6 @@
|
|||||||
return lineNo;
|
return lineNo;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Iterate through each of the elements are to be applied to
|
* Iterate through each of the elements are to be applied to
|
||||||
*/
|
*/
|
||||||
@ -63,7 +61,7 @@
|
|||||||
/* Turn off the wrapping of as we don't want to screw up the line numbers */
|
/* Turn off the wrapping of as we don't want to screw up the line numbers */
|
||||||
textarea.attr("wrap", "off");
|
textarea.attr("wrap", "off");
|
||||||
textarea.css({resize:'none'});
|
textarea.css({resize:'none'});
|
||||||
var originalTextAreaWidth = textarea.outerWidth();
|
// var originalTextAreaWidth = textarea.outerWidth();
|
||||||
|
|
||||||
/* Wrap the text area in the elements we need */
|
/* Wrap the text area in the elements we need */
|
||||||
textarea.wrap("<div class='linedtextarea'></div>");
|
textarea.wrap("<div class='linedtextarea'></div>");
|
||||||
@ -101,7 +99,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* React to the scroll event */
|
/* React to the scroll event */
|
||||||
textarea.scroll( function(tn){
|
textarea.scroll( function(){
|
||||||
var domTextArea = $(this)[0];
|
var domTextArea = $(this)[0];
|
||||||
var scrollTop = domTextArea.scrollTop;
|
var scrollTop = domTextArea.scrollTop;
|
||||||
var clientHeight = domTextArea.clientHeight;
|
var clientHeight = domTextArea.clientHeight;
|
||||||
@ -111,7 +109,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Should the textarea get resized outside of our control */
|
/* Should the textarea get resized outside of our control */
|
||||||
textarea.resize( function(tn){
|
textarea.resize( function(){
|
||||||
var domTextArea = $(this)[0];
|
var domTextArea = $(this)[0];
|
||||||
linesDiv.height( domTextArea.clientHeight + 4 );
|
linesDiv.height( domTextArea.clientHeight + 4 );
|
||||||
});
|
});
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
function updateResults(elem) { var resultsContainer = $(elem).find('[data-id="results"]')[0];
|
function updateResults(elem) {
|
||||||
|
var resultsContainer = $(elem).find('[data-id="results"]')[0];
|
||||||
var codeHtml = $(elem).find('.code-html')[0].value.trim();
|
var codeHtml = $(elem).find('.code-html')[0].value.trim();
|
||||||
var codeCss = $(elem).find('.code-css')[0].value.trim();
|
var codeCss = $(elem).find('.code-css')[0].value.trim();
|
||||||
var codeJs = $(elem).find('.code-js')[0].value.trim();
|
var codeJs = $(elem).find('.code-js')[0].value.trim();
|
||||||
@ -15,7 +16,9 @@ function updateResults(elem) { var resultsContainer = $(elem).find('[data-id="r
|
|||||||
|
|
||||||
var jqueryNode = document.createElement("script");
|
var jqueryNode = document.createElement("script");
|
||||||
jqueryNode.setAttribute("type", "text/javascript");
|
jqueryNode.setAttribute("type", "text/javascript");
|
||||||
jqueryNode.setAttribute("src", "<%= "//#{ENV['full_app_url']}#{javascript_path "jquery"}" %>");
|
// TODO: fix eslint runner to handle erb snippets
|
||||||
|
// jqueryNode.setAttribute("src", "<%= "//#{ENV['full_app_url']}#{javascript_path "jquery"}" %>");
|
||||||
|
jqueryNode.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js");
|
||||||
iHead.appendChild(jqueryNode);
|
iHead.appendChild(jqueryNode);
|
||||||
|
|
||||||
var codeStyle = document.createElement("style");
|
var codeStyle = document.createElement("style");
|
||||||
@ -92,7 +95,7 @@ function indentSelection(e){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
timer = 0;
|
var timer = 0;
|
||||||
$(function(){
|
$(function(){
|
||||||
// wait a half second before updating results
|
// wait a half second before updating results
|
||||||
// restart the timer if they resume typing
|
// restart the timer if they resume typing
|
||||||
|
@ -137,19 +137,19 @@ var saveClickHandler = function(e) {
|
|||||||
$(thisEd).before('<div class="error">Please select or enter a value.</div>');
|
$(thisEd).before('<div class="error">Please select or enter a value.</div>');
|
||||||
} else {
|
} else {
|
||||||
thisEd.find('textarea:not(.code-answer)').replaceWith('<p class="text-answer answer-container">' + $.trim(thisEd.find('textarea').val()) + '</p>');
|
thisEd.find('textarea:not(.code-answer)').replaceWith('<p class="text-answer answer-container">' + $.trim(thisEd.find('textarea').val()) + '</p>');
|
||||||
url = thisEd.closest('form').attr('action');
|
var postUrl = thisEd.closest('form').attr('action');
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: url,
|
url: postUrl,
|
||||||
data: ({
|
data: ({
|
||||||
'answer': $.extend(data, {'question_id': questionId, 'answer_id': answerId}),
|
'answer': $.extend(data, {'question_id': questionId, 'answer_id': answerId}),
|
||||||
'submit': true
|
'submit': true
|
||||||
}),
|
}),
|
||||||
success: function(data){
|
success: function(){ //unused data
|
||||||
executeQuery = true;
|
executeQuery = true;
|
||||||
},
|
},
|
||||||
error: function(data){
|
error: function(){ //unused data
|
||||||
executeQuery = false;
|
executeQuery = false;
|
||||||
}
|
}
|
||||||
}).done(function() {
|
}).done(function() {
|
||||||
|
@ -9,7 +9,7 @@ function setTextAreaLimit() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function setCount(src, elem) {
|
function setCount(src, elem) {
|
||||||
if(src != undefined) {
|
if(src !== undefined) {
|
||||||
var chars = src.value.length;
|
var chars = src.value.length;
|
||||||
if (chars > limit) {
|
if (chars > limit) {
|
||||||
src.value = src.value.substr(0, limit);
|
src.value = src.value.substr(0, limit);
|
||||||
@ -21,10 +21,8 @@ function setTextAreaLimit() {
|
|||||||
setCount($(this)[0], elem);
|
setCount($(this)[0], elem);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var elem = $(".chars span");
|
var elem = $(".chars span");
|
||||||
$('textarea').limiter(1000, elem);
|
$('textarea').limiter(1000, elem);
|
||||||
//$('input').limiter(1000, elem);
|
|
||||||
//$('.Question-1').addClass('active');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
15
package.json
Normal file
15
package.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"name": "skill-assessment-app",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "This application manages quizzes intended to be used as pre-interview skill assessments.",
|
||||||
|
"dependencies": {
|
||||||
|
"bower": "^1.7.9",
|
||||||
|
"eslint": "^3.2.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git@gitlab.perficientxd.com:pdr/skill-assessment-app.git"
|
||||||
|
},
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
if [ -d '/usr/app' ]; then
|
if [ -d '/usr/app' ]; then
|
||||||
cd /usr/app
|
cd /usr/app
|
||||||
bundle
|
bundle
|
||||||
|
npm install
|
||||||
bower install
|
bower install
|
||||||
cd vendor/assets/ && bitters install && cd /usr/app
|
cd vendor/assets/ && bitters install && cd /usr/app
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
if [ -d '/usr/app' ]; then
|
if [ -d '/usr/app' ]; then
|
||||||
cd /usr/app
|
cd /usr/app
|
||||||
bundle
|
bundle
|
||||||
|
npm install
|
||||||
bower install
|
bower install
|
||||||
cd vendor/assets/ && bitters install && cd /usr/app
|
cd vendor/assets/ && bitters install && cd /usr/app
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user