rabbitt-githooks 1.2.7 → 1.3.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 +13 -5
- data/{hooks → .hooks}/commit-messages.rb +0 -0
- data/{hooks → .hooks}/formatting.rb +6 -15
- data/.rubocop.yml +18 -4
- data/Gemfile.lock +20 -14
- data/README.md +109 -3
- data/bin/githooks +1 -1
- data/bin/githooks-runner +1 -0
- data/lib/githooks.rb +11 -11
- data/lib/githooks/action.rb +20 -11
- data/lib/githooks/cli.rb +15 -6
- data/lib/githooks/core_ext/process.rb +7 -5
- data/lib/githooks/hook.rb +24 -7
- data/lib/githooks/repository.rb +35 -18
- data/lib/githooks/repository/config.rb +122 -115
- data/lib/githooks/repository/diff_index_entry.rb +60 -62
- data/lib/githooks/repository/file.rb +77 -75
- data/lib/githooks/repository/limiter.rb +34 -25
- data/lib/githooks/runner.rb +17 -19
- data/lib/githooks/section.rb +17 -4
- data/lib/githooks/system_utils.rb +1 -1
- data/lib/githooks/terminal_colors.rb +5 -6
- data/lib/githooks/version.rb +1 -1
- data/rabbitt-githooks.gemspec +2 -1
- metadata +35 -21
data/lib/githooks/section.rb
CHANGED
@@ -23,16 +23,23 @@ module GitHooks
|
|
23
23
|
class Section < DelegateClass(Array)
|
24
24
|
include TerminalColors
|
25
25
|
|
26
|
-
attr_reader :name, :hook, :success, :actions
|
26
|
+
attr_reader :name, :hook, :success, :actions, :benchmark
|
27
27
|
alias_method :title, :name
|
28
28
|
alias_method :success?, :success
|
29
29
|
alias_method :all, :actions
|
30
30
|
|
31
|
+
class << self
|
32
|
+
def key_from_name(name)
|
33
|
+
name.to_s.downcase.gsub(/[\W\s]+/, '_').to_sym
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
31
37
|
def initialize(name, hook, &block)
|
32
|
-
@name
|
33
|
-
@success
|
38
|
+
@name = name.to_s.titleize
|
39
|
+
@success = true
|
34
40
|
@actions = []
|
35
|
-
@hook
|
41
|
+
@hook = hook
|
42
|
+
@benchmark = 0
|
36
43
|
|
37
44
|
instance_eval(&block)
|
38
45
|
|
@@ -68,6 +75,10 @@ module GitHooks
|
|
68
75
|
"#{phase} :: #{@name}"
|
69
76
|
end
|
70
77
|
|
78
|
+
def key_name
|
79
|
+
self.class.key_from_name(@name)
|
80
|
+
end
|
81
|
+
|
71
82
|
def colored_name(phase = GitHooks::HOOK_NAME)
|
72
83
|
status_colorize name(phase)
|
73
84
|
end
|
@@ -89,8 +100,10 @@ module GitHooks
|
|
89
100
|
def run
|
90
101
|
running!
|
91
102
|
begin
|
103
|
+
time_start = Time.now
|
92
104
|
actions.collect { |action| @success &= action.run }.all?
|
93
105
|
ensure
|
106
|
+
@benchmark = Time.now - time_start
|
94
107
|
finished!
|
95
108
|
end
|
96
109
|
end
|
@@ -37,7 +37,7 @@ module GitHooks
|
|
37
37
|
light = !!name.match(/(light|bright)/) ? '1' : '0'
|
38
38
|
blink = !!name.match(/blink/) ? ';5' : ''
|
39
39
|
|
40
|
-
color_code = REGEX_COLOR_MAP.find { |key,
|
40
|
+
color_code = REGEX_COLOR_MAP.find { |key, _| name =~ key }
|
41
41
|
color_code = color_code ? color_code.last : NORMAL
|
42
42
|
|
43
43
|
"\033[#{light}#{blink};#{color_code}m"
|
@@ -50,11 +50,10 @@ module GitHooks
|
|
50
50
|
name1 = "color_#{style}_#{shade}_#{color}".gsub(/(^_+|_+$)/, '').gsub(/_{2,}/, '_')
|
51
51
|
name2 = "color_#{style}_#{shade}#{color}".gsub(/(^_+|_+$)/, '').gsub(/_{2,}/, '_')
|
52
52
|
[name1, name2].each do |name|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
53
|
+
next if const_defined? name.upcase
|
54
|
+
const_set(name.upcase, color(name))
|
55
|
+
define_method(name) { |text| "#{color(name)}#{text}#{color(:normal)}" }
|
56
|
+
module_function name.to_sym
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
data/lib/githooks/version.rb
CHANGED
data/rabbitt-githooks.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.version = GitHooks::VERSION
|
28
28
|
spec.authors = GitHooks::AUTHOR.scan(/,?\s*([^<]+)<([^>]+)>\s*,?/).collect(&:first).collect(&:strip)
|
29
29
|
spec.email = GitHooks::AUTHOR.scan(/,?\s*([^<]+)<([^>]+)>\s*,?/).collect(&:last).collect(&:strip)
|
30
|
-
spec.description = "
|
30
|
+
spec.description = "GitHooks provides a framework for building tests that can be used with git hooks"
|
31
31
|
spec.homepage = "http://github.com/rabbitt/githooks"
|
32
32
|
spec.summary = "framework for building git hooks tests"
|
33
33
|
spec.license = "GPLv2"
|
@@ -46,4 +46,5 @@ Gem::Specification.new do |spec|
|
|
46
46
|
spec.add_development_dependency 'rspec', '~> 2.14'
|
47
47
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
48
48
|
spec.add_development_dependency 'rubocop', '~> 0.18'
|
49
|
+
spec.add_development_dependency 'ruby-lint', '~> 2.0.1'
|
49
50
|
end
|
metadata
CHANGED
@@ -1,100 +1,114 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbitt-githooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carl P. Corliss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.5.8
|
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
26
|
version: 0.5.8
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.18'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.18'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '10.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2.14'
|
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
68
|
version: '2.14'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.3'
|
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
82
|
version: '1.3'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0.18'
|
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
96
|
version: '0.18'
|
97
|
-
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: ruby-lint
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.0.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.0.1
|
111
|
+
description: GitHooks provides a framework for building tests that can be used with
|
98
112
|
git hooks
|
99
113
|
email:
|
100
114
|
- rabbitt@gmail.com
|
@@ -106,8 +120,10 @@ extra_rdoc_files:
|
|
106
120
|
- README.md
|
107
121
|
- LICENSE.txt
|
108
122
|
files:
|
109
|
-
-
|
110
|
-
-
|
123
|
+
- .gitignore
|
124
|
+
- .hooks/commit-messages.rb
|
125
|
+
- .hooks/formatting.rb
|
126
|
+
- .rubocop.yml
|
111
127
|
- Gemfile
|
112
128
|
- Gemfile.lock
|
113
129
|
- LICENSE.txt
|
@@ -115,8 +131,6 @@ files:
|
|
115
131
|
- Rakefile
|
116
132
|
- bin/githooks
|
117
133
|
- bin/githooks-runner
|
118
|
-
- hooks/commit-messages.rb
|
119
|
-
- hooks/formatting.rb
|
120
134
|
- lib/githooks.rb
|
121
135
|
- lib/githooks/action.rb
|
122
136
|
- lib/githooks/cli.rb
|
@@ -158,12 +172,12 @@ require_paths:
|
|
158
172
|
- lib
|
159
173
|
required_ruby_version: !ruby/object:Gem::Requirement
|
160
174
|
requirements:
|
161
|
-
- -
|
175
|
+
- - ! '>='
|
162
176
|
- !ruby/object:Gem::Version
|
163
177
|
version: '0'
|
164
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
179
|
requirements:
|
166
|
-
- -
|
180
|
+
- - ! '>='
|
167
181
|
- !ruby/object:Gem::Version
|
168
182
|
version: '0'
|
169
183
|
requirements: []
|