Top Level Namespace

Defined Under Namespace

Modules: Codeqa

Constant Summary collapse

APP_ROOT =
Pathname.new(File.expand_path(File.join(File.dirname(__FILE__),'..','..')))
HOOKS_PATH =
APP_ROOT.join('.codeqa','hooks')

Instance Method Summary collapse

Instance Method Details

#binary?(file) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
# File 'lib/templates/base_hook.rb', line 20

def binary?(file)
  return true if File.ftype(file) != 'file'
  s = (File.read(file, File.stat(file).blksize) || '').split(//)
  ((s.size - s.grep(' '..'~').size) / s.size.to_f) > 0.30
end

#staged_filesObject

running codeqa checks on changes files



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/templates/base_hook.rb', line 5

def staged_files
  @staged_files ||= begin
    files = `git diff --cached --name-only --diff-filter=ACM`.split
    files.reject do |f|
      if File.ftype(f) != 'file'
        true
      else
        size = File.size(f)
        size > 1_000_000 || (size > 20 && binary?(f))
      end
    end
  end
end