Sha256: 5a50150b2c2494da559539c88e55ab11e5aa4c5c819b764d079869b610994c8d

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

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

  LEADING_TAB_PATTERN = '^ *\t'

  def detected_bad_code?
    system("#{Utils.grep} -q '#{LEADING_TAB_PATTERN}' #{staged_files}")
  end

  def violations
    `#{Utils.grep} '#{LEADING_TAB_PATTERN}' #{staged_files}`
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pre-commit-0.6.1 lib/pre-commit/checks/tabs.rb
pre-commit-0.6.0 lib/pre-commit/checks/tabs.rb