pre-commit 0.16.3 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: