Sha256: ba57e5d8261317e2f10e1535f2ca795f29ff9deed9b9303e0812a89ffcf8c9f5

Contents?: true

Size: 742 Bytes

Versions: 6

Compression:

Stored size: 742 Bytes

Contents

module PreCommit
  class Utils

    def self.staged_files
      @staged_files ||= begin
        files = `git diff --cached --name-only --diff-filter=ACM`.split
        files.reject { |f| size = File.size(f); size > 1_000_000 || (size > 20 && binary?(f)) }
      end
    end

    # from https://github.com/djberg96/ptools/blob/master/lib/ptools.rb#L90
    def self.binary?(file)
      s = (File.read(file, File.stat(file).blksize) || "").split(//)
      ((s.size - s.grep(" ".."~").size) / s.size.to_f) > 0.30
    end

    def self.grep
      grep_version = `grep --version | head -n 1 | sed -e 's/^[^0-9.]*\([0-9.]*\)$/\1/'`
      if grep_version =~ /FreeBSD/
        "grep -EnIH"
      else
        "grep -PnIH"
      end
    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pre-commit-0.12.0 lib/pre-commit/utils.rb
pre-commit-0.11.0 lib/pre-commit/utils.rb
pre-commit-0.10.0 lib/pre-commit/utils.rb
pre-commit-0.9.2 lib/pre-commit/utils.rb
pre-commit-0.9.1 lib/pre-commit/utils.rb
pre-commit-0.9.0 lib/pre-commit/utils.rb