adding eslint
This commit is contained in:
		
							
								
								
									
										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 "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
 | 
			
		||||
RUN curl -L --progress https://github.com/postmodern/ruby-install/archive/v0.6.0.tar.gz | tar xz \
 | 
			
		||||
  && cd ruby-install-0.6.0 \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							@@ -21,10 +21,10 @@ gem 'neat'
 | 
			
		||||
gem 'bitters'
 | 
			
		||||
 | 
			
		||||
group :development do
 | 
			
		||||
  gem 'better_errors'
 | 
			
		||||
  gem 'rack-livereload'
 | 
			
		||||
  gem 'rails-erd'
 | 
			
		||||
  gem 'web-console'
 | 
			
		||||
  gem 'better_errors'
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
group :development, :test do
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								Guardfile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								Guardfile
									
									
									
									
									
								
							@@ -23,7 +23,7 @@ guard :minitest, spring: true do # , all_after_pass: true
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
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/controllers/.+\.rb})
 | 
			
		||||
  watch(%r{app/helpers/.+\.rb})
 | 
			
		||||
@@ -31,7 +31,7 @@ guard 'livereload' do
 | 
			
		||||
  watch(%r{config/locales/.+\.yml})
 | 
			
		||||
 | 
			
		||||
  # 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]}"
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -41,3 +41,10 @@ guard :rubocop do
 | 
			
		||||
  watch(/Rakefile/)
 | 
			
		||||
  watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
 | 
			
		||||
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_tree ./channels
 | 
			
		||||
 | 
			
		||||
(function() {
 | 
			
		||||
  this.App || (this.App = {});
 | 
			
		||||
 | 
			
		||||
  App.cable = ActionCable.createConsumer();
 | 
			
		||||
 | 
			
		||||
}).call(this);
 | 
			
		||||
// (function() {
 | 
			
		||||
//   this.App || (this.App = {});
 | 
			
		||||
//
 | 
			
		||||
//   App.cable = ActionCable.createConsumer();
 | 
			
		||||
//
 | 
			
		||||
// }).call(this);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
/**
 | 
			
		||||
 * NOTE: MARK MOSER EDITED COPY. DO NOT USE BOWER.
 | 
			
		||||
 *
 | 
			
		||||
 * jQuery Lined Textarea Plugin
 | 
			
		||||
 *   http://alan.blog-city.com/jquerylinedtextarea.htm
 | 
			
		||||
 *
 | 
			
		||||
@@ -29,13 +30,11 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
(function($) {
 | 
			
		||||
 | 
			
		||||
  $.fn.linedtextarea = function(options) {
 | 
			
		||||
 | 
			
		||||
    // Get the Options
 | 
			
		||||
    var opts = $.extend({}, $.fn.linedtextarea.defaults, options);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Helper function to make sure the line numbers are always
 | 
			
		||||
     * kept up to the current system
 | 
			
		||||
@@ -52,7 +51,6 @@
 | 
			
		||||
      return lineNo;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * 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 */
 | 
			
		||||
      textarea.attr("wrap", "off");
 | 
			
		||||
      textarea.css({resize:'none'});
 | 
			
		||||
			var originalTextAreaWidth	= textarea.outerWidth();
 | 
			
		||||
      // var originalTextAreaWidth	= textarea.outerWidth();
 | 
			
		||||
 | 
			
		||||
      /* Wrap the text area in the elements we need */
 | 
			
		||||
      textarea.wrap("<div class='linedtextarea'></div>");
 | 
			
		||||
@@ -101,7 +99,7 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      /* React to the scroll event */
 | 
			
		||||
			textarea.scroll( function(tn){
 | 
			
		||||
      textarea.scroll( function(){
 | 
			
		||||
        var domTextArea		= $(this)[0];
 | 
			
		||||
        var scrollTop 		= domTextArea.scrollTop;
 | 
			
		||||
        var clientHeight 	= domTextArea.clientHeight;
 | 
			
		||||
@@ -111,7 +109,7 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      /* Should the textarea get resized outside of our control */
 | 
			
		||||
			textarea.resize( function(tn){
 | 
			
		||||
      textarea.resize( function(){
 | 
			
		||||
        var domTextArea	= $(this)[0];
 | 
			
		||||
        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 codeCss = $(elem).find('.code-css')[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");
 | 
			
		||||
  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);
 | 
			
		||||
 | 
			
		||||
  var codeStyle = document.createElement("style");
 | 
			
		||||
@@ -92,7 +95,7 @@ function indentSelection(e){
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
timer = 0;
 | 
			
		||||
var timer = 0;
 | 
			
		||||
$(function(){
 | 
			
		||||
  // wait a half second before updating results
 | 
			
		||||
  // 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>');
 | 
			
		||||
  } else {
 | 
			
		||||
    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({
 | 
			
		||||
      type: "POST",
 | 
			
		||||
      url: url,
 | 
			
		||||
      url: postUrl,
 | 
			
		||||
      data: ({
 | 
			
		||||
        'answer': $.extend(data, {'question_id': questionId, 'answer_id': answerId}),
 | 
			
		||||
        'submit': true
 | 
			
		||||
      }),
 | 
			
		||||
      success: function(data){
 | 
			
		||||
      success: function(){ //unused data
 | 
			
		||||
        executeQuery = true;
 | 
			
		||||
      },
 | 
			
		||||
      error: function(data){
 | 
			
		||||
      error: function(){ //unused data
 | 
			
		||||
        executeQuery = false;
 | 
			
		||||
      }
 | 
			
		||||
    }).done(function() {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ function setTextAreaLimit() {
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        function setCount(src, elem) {
 | 
			
		||||
                	if(src != undefined) {
 | 
			
		||||
          if(src !== undefined) {
 | 
			
		||||
            var chars = src.value.length;
 | 
			
		||||
            if (chars > limit) {
 | 
			
		||||
              src.value = src.value.substr(0, limit);
 | 
			
		||||
@@ -21,10 +21,8 @@ function setTextAreaLimit() {
 | 
			
		||||
        setCount($(this)[0], elem);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    var elem = $(".chars span");
 | 
			
		||||
    $('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
 | 
			
		||||
  cd /usr/app
 | 
			
		||||
  bundle
 | 
			
		||||
  npm install
 | 
			
		||||
  bower install
 | 
			
		||||
  cd vendor/assets/ && bitters install && cd /usr/app
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
if [ -d '/usr/app' ]; then
 | 
			
		||||
  cd /usr/app
 | 
			
		||||
  bundle
 | 
			
		||||
  npm install
 | 
			
		||||
  bower install
 | 
			
		||||
  cd vendor/assets/ && bitters install && cd /usr/app
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user