Sha256: ef3c726670dab9ec84a1d5c2e683937521cf5f15644423d45f9a6560e66b1d76

Contents?: true

Size: 1013 Bytes

Versions: 3

Compression:

Stored size: 1013 Bytes

Contents

class Tabs

  attr_accessor :staged_files, :error_message

  # Maintaining the functionality of `call` for backwards compatibility
  # Currently, the call method is expected to:
  # * run a check
  # * print any corresponding error messages if the check fails
  def self.call
    check = new
    check.staged_files = Utils.staged_files('*')
    result = check.run

    if !result
      $stderr.puts check.error_message
      $stderr.puts
      $stderr.puts 'pre-commit: You can bypass this check using `git commit -n`'
      $stderr.puts
    end

    result
  end

  def run
    # There is nothing to check
    if staged_files.empty?
      return true
    end

    if detected_bad_code?
      @error_message = "pre-commit: detected tab before initial space:\n"
      @error_message += violations

      @passed = false
    else
      @passed = true
    end
  end

  def detected_bad_code?
    system("grep -PnIH -q '^\t' #{staged_files}")
  end

  def violations
    `grep -PnIH '^\t' #{staged_files}`
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pre-commit-0.1.15 lib/pre-commit/checks/tabs.rb
pre-commit-0.1.14 lib/pre-commit/checks/tabs.rb
pre-commit-0.1.13 lib/pre-commit/checks/tabs.rb