class PreCommit::Checks::Jshint

Public Class Methods

description() click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 19
def self.description
  "Checks javascript files with JSHint."
end

Public Instance Methods

alternate_config_file() click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 15
def alternate_config_file
  ".jshintrc"
end
linter_src() click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 11
def linter_src
  File.expand_path("../../../../pre-commit/support/jshint/jshint.js", __FILE__)
end
run_check(file) click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 7
def run_check(file)
  context.call("JSHINT._getErrors", File.read(file), js_config, js_config["globals"])
end

Private Instance Methods

context() click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 25
      def context
        @context ||= ExecJS.compile("global = this;" << File.read(linter_src) << <<-JAVASCRIPT)
          ;JSHINT._getErrors = function(source, options, globals) {
            JSHINT(source, options, globals);
            return JSHINT.errors;
          }
        JAVASCRIPT
      end
js_config() click to toggle source
# File lib/plugins/pre_commit/checks/jshint.rb, line 34
def js_config
  @js_config ||= if config_file
    ExecJS.exec("return (#{File.read(config_file)});")
  else
    {}
  end
end