pre-commit 0.16.3 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ead94f635a0c2076f5fd0da0ab7e1f213c277a1b
4
- data.tar.gz: 51aefe85b5da3dffe34ebcc85f0172ea06f235cf
3
+ metadata.gz: c7c3a12b035bf764791d70ec6cb4fba9fd3778d6
4
+ data.tar.gz: ec677fe164684322255b950dd125571c202dcd72
5
5
  SHA512:
6
- metadata.gz: 359b92afaf52ecaf39248786b5bec278ab21ddc433a9422e354e5a0ab77c77e5cf2f496c7fba684e4e29ab1c9b07f5c5feaddd4593b406364a791fc8c3757c38
7
- data.tar.gz: 9e38eb04a1f31c6ff2dbf4ece1600da7d8fd72da5042f00493a9b73f27e600b9f28471c6dd2de107c83c354530621ee7ddd0064148415edcc471ed4b965bcf42
6
+ metadata.gz: 025a3bc6ada1545472d509af763ae76151c7506fe417165392cdea1589b349a7b3cd3e9a2a77ff43f904ac4761528b83d5c5ddedb62ce97c953c6a4ee1125663
7
+ data.tar.gz: b7891532e91f04eda649a830e341ceab2ef01c7f831119be762e88241357c30efaa22789b0f480777a7aea83aad08acb16b5a2f31af6eb10f65bf7c4a84b3447
data/README.md CHANGED
@@ -87,6 +87,16 @@ Example `config/pre_commit.yml`:
87
87
  - :tabs
88
88
  ```
89
89
 
90
+ ## Running test manually
91
+
92
+ This functionality was added in version `0.17.0`
93
+
94
+ ```bash
95
+ pre-commit run # run on the files added to index not yet commited
96
+ pre-commit run all # run on all files in current directory
97
+ pre-commit run <file-list> # run on the list of files, patterns not supported
98
+ ```
99
+
90
100
  ## Configuration providers
91
101
 
92
102
  `pre-commit` comes with 4 configuration providers:
@@ -13,7 +13,7 @@ module PreCommit
13
13
  end
14
14
 
15
15
  def pattern
16
- 'debugger'
16
+ '-e "^[ ]*debugger"'
17
17
  end
18
18
 
19
19
  def self.description
@@ -16,6 +16,10 @@ module PreCommit
16
16
  "'path:|:path\\s*=>'"
17
17
  end
18
18
 
19
+ def extra_grep
20
+ " | grep -v '#'"
21
+ end
22
+
19
23
  def self.description
20
24
  "Checks 'Gemfile' for local paths."
21
25
  end
@@ -31,6 +31,11 @@ module PreCommit
31
31
  args.empty? # return status, it's ok if user requested help
32
32
  end
33
33
 
34
+ def execute_run(*args)
35
+ require 'pre-commit/runner'
36
+ PreCommit::Runner.new.run(*args)
37
+ end
38
+
34
39
  def execute_install(key = nil, *args)
35
40
  PreCommit::Installer.new(key).install
36
41
  end
@@ -26,6 +26,7 @@ module PreCommit
26
26
  if
27
27
  hook
28
28
  then
29
+ FileUtils.mkdir_p(File.dirname(target))
29
30
  FileUtils.cp(hook, target)
30
31
  FileUtils.chmod(0755, target)
31
32
  puts "Installed #{hook} to #{target}"
@@ -16,7 +16,8 @@ module PreCommit
16
16
  @staged_files = staged_files
17
17
  end
18
18
 
19
- def run
19
+ def run(*args)
20
+ set_staged_files(*args)
20
21
  run_single(:warnings)
21
22
  run_single(:checks ) or return false
22
23
  true
@@ -2,18 +2,26 @@ module PreCommit
2
2
  module Utils
3
3
  module StagedFiles
4
4
 
5
- def staged_files
6
- @staged_files ||= begin
7
- files = `git diff --cached --name-only --diff-filter=ACM`.split
8
- files.reject do |f|
9
- size = File.size(f);
10
- File.directory?(f) ||
11
- size > 1_000_000 ||
12
- (size > 20 && binary?(f))
13
- end
5
+ def set_staged_files(*args)
6
+ case args[0].to_s
7
+ when "all" then staged_files_all
8
+ when "" then staged_files
9
+ else staged_files=args
14
10
  end
15
11
  end
16
12
 
13
+ def staged_files=(args)
14
+ @staged_files = args
15
+ end
16
+
17
+ def staged_files
18
+ @staged_files ||= filter_files(staged_from_git)
19
+ end
20
+
21
+ def staged_files_all
22
+ @staged_files = filter_files(staged_from_dir)
23
+ end
24
+
17
25
  private
18
26
  # from https://github.com/djberg96/ptools/blob/master/lib/ptools.rb#L90
19
27
  def binary?(file)
@@ -21,6 +29,24 @@ module PreCommit
21
29
  ((s.size - s.grep(" ".."~").size) / s.size.to_f) > 0.30
22
30
  end
23
31
 
32
+ def filter_files(files)
33
+ files.reject do |f|
34
+ File.directory?(f) ||
35
+ (
36
+ size = File.size(f)
37
+ size > 1_000_000 || (size > 20 && binary?(f))
38
+ )
39
+ end
40
+ end
41
+
42
+ def staged_from_git
43
+ `git diff --cached --name-only --diff-filter=ACM`.split(/\n/)
44
+ end
45
+
46
+ def staged_from_dir
47
+ Dir["**/*"]
48
+ end
49
+
24
50
  end
25
51
  end
26
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pre-commit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.3
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shajith Chacko, Josh Lubaway
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-05 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pluginator
@@ -16,30 +16,30 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: guard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: guard
42
+ name: guard-minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
@@ -53,47 +53,61 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: guard-minitest
56
+ name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '4.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '4.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: minitest
70
+ name: minitest-reporters
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '4.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest-reporters
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '10.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.23'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.23'
97
111
  description: A git pre-commit hook written in ruby with a few more tricks up its sleeve
98
112
  email: dontneedmoreemail@example.com
99
113
  executables: