Sha256: db178b32a10e8239c697cd970b262fb44b6875cba9b699547f502a34eb29a42f

Contents?: true

Size: 972 Bytes

Versions: 3

Compression:

Stored size: 972 Bytes

Contents

module PreCommit
  class ConsoleLog

    attr_accessor :staged_files, :error_message

    def self.call(quiet=false)
      check = new
      check.staged_files = Utils.staged_files('public/javascripts')

      result = check.run
      if !quiet && !result
        puts check.error_message
      end
      result
    end

    def run
      return true if staged_js_files.empty?
      if detected_bad_code?
        @error_message = "pre-commit: console.log found:\n"
        @error_message += instances_of_console_log_violations
        false
      else
        true
      end
    end

    def detected_bad_code?
      system("grep -v \/\/ #{staged_js_files} | grep -qe \"console\\.log\"")
    end

    def instances_of_console_log_violations
      `grep -nHe \"console\\.log\" #{staged_js_files}`
    end

    def staged_js_files
      @staged_js_files ||= staged_files.split(" ").select do |file|
        File.extname(file) == ".js"
      end.join(" ")
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pre-commit-0.8.1 lib/pre-commit/checks/console_log.rb
pre-commit-0.8.0 lib/pre-commit/checks/console_log.rb
pre-commit-0.7.0 lib/pre-commit/checks/console_log.rb