hookspec 1.0.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 +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +27 -0
- data/LICENSE +20 -0
- data/README.md +91 -0
- data/Rakefile +5 -0
- data/bin/hookspec +3 -0
- data/hookspec.gemspec +23 -0
- data/lib/hookspec.rb +4 -0
- data/lib/hookspec/.git_env.rb.swp +0 -0
- data/lib/hookspec/all.rb +11 -0
- data/lib/hookspec/application.rb +21 -0
- data/lib/hookspec/git_env.rb +88 -0
- data/lib/hookspec/install.rb +1 -0
- data/lib/hookspec/matchers.rb +2 -0
- data/lib/hookspec/matchers/be_branch.rb +6 -0
- data/lib/hookspec/matchers/include_file.rb +6 -0
- data/lib/hookspec/tasks/install.rake +61 -0
- data/lib/hookspec/templates/applypatch-msg.sh +2 -0
- data/lib/hookspec/templates/applypatch-msg/sample.rb +7 -0
- data/lib/hookspec/templates/commit-msg.sh +2 -0
- data/lib/hookspec/templates/commit-msg/sample.rb +7 -0
- data/lib/hookspec/templates/post-push.sh +2 -0
- data/lib/hookspec/templates/post-push/sample.rb +7 -0
- data/lib/hookspec/templates/post-update.sh +2 -0
- data/lib/hookspec/templates/post-update/sample.rb +7 -0
- data/lib/hookspec/templates/pre-applypatch.sh +2 -0
- data/lib/hookspec/templates/pre-applypatch/sample.rb +7 -0
- data/lib/hookspec/templates/pre-commit.sh +2 -0
- data/lib/hookspec/templates/pre-commit/sample.rb +12 -0
- data/lib/hookspec/templates/pre-push.sh +2 -0
- data/lib/hookspec/templates/pre-push/sample.rb +7 -0
- data/lib/hookspec/templates/pre-rebase.sh +2 -0
- data/lib/hookspec/templates/pre-rebase/sample.rb +7 -0
- data/lib/hookspec/templates/prepare-commit-msg.sh +2 -0
- data/lib/hookspec/templates/prepare-commit-msg/sample.rb +17 -0
- data/lib/hookspec/templates/update.sh +2 -0
- data/lib/hookspec/templates/update/sample.rb +7 -0
- data/lib/hookspec/version.rb +3 -0
- metadata +125 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6249c3de2e45bc9b03ac662f1927cf10cec74af8
|
4
|
+
data.tar.gz: 36aae9238098865dd1ef77a8d89d6e6ab5fef90e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7918e9880cae12db1e6f2228404359558721e78f928878685b36086f622d499b883bae47926179b7c232dbde3487bec3d3d2ab35b25f807468cc5721f461f74a
|
7
|
+
data.tar.gz: 9b9fcbf6ec39c7bc73b51e2015e5977a9e4461b3828509ac2aaad3b18de7156b72141c64d45e58273fdbbc39050db4b2c940d6ae898b6efa1954d89cf1c88695
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
hookspec (0.0.2)
|
5
|
+
rspec (>= 2.13.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.2.5)
|
11
|
+
rake (10.1.0)
|
12
|
+
rspec (2.14.1)
|
13
|
+
rspec-core (~> 2.14.0)
|
14
|
+
rspec-expectations (~> 2.14.0)
|
15
|
+
rspec-mocks (~> 2.14.0)
|
16
|
+
rspec-core (2.14.7)
|
17
|
+
rspec-expectations (2.14.4)
|
18
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
19
|
+
rspec-mocks (2.14.4)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler (~> 1.3)
|
26
|
+
hookspec!
|
27
|
+
rake
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 fdwills
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
+
subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
hookspec
|
2
|
+
====================
|
3
|
+
|
4
|
+
## Lastest version
|
5
|
+
|
6
|
+
v1.0.0(beta)
|
7
|
+
|
8
|
+
## About
|
9
|
+
|
10
|
+
As the name, hookspec is an git hook test tool. Write hooks like test!
|
11
|
+
|
12
|
+
## Install
|
13
|
+
|
14
|
+
gem install hookspec
|
15
|
+
|
16
|
+
or include in Gemfile
|
17
|
+
|
18
|
+
gem 'hookspec'
|
19
|
+
|
20
|
+
After hookspec gem is installed, you can use 'hookspec' command. Execute the command to initialize hookspec:
|
21
|
+
|
22
|
+
bundle exec hookspec install
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
New a spec file under git\_hooks/[hook\_type]/ named like _FILENAME_\_spec.rb
|
27
|
+
|
28
|
+
# assert branch is not master branch
|
29
|
+
require 'hookspec'
|
30
|
+
|
31
|
+
describe "push" do
|
32
|
+
let (:git_env) {HookSpec::GitEnv.new}
|
33
|
+
it 'master branch can not be pushed' do
|
34
|
+
expect(git_env).not_to be_branch('master')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
## Supported hook\_type
|
39
|
+
|
40
|
+
* applypatch-msg
|
41
|
+
* pre-commit
|
42
|
+
* post-update
|
43
|
+
* prepare-commit-msg
|
44
|
+
* commit-msg
|
45
|
+
* pre-push
|
46
|
+
* pre-applypatch
|
47
|
+
* update
|
48
|
+
* post-push
|
49
|
+
* pre-rebase
|
50
|
+
|
51
|
+
## Samples
|
52
|
+
|
53
|
+
#### how to new get a git envirnment install
|
54
|
+
|
55
|
+
git_env = HookSpec::GitEnv.new
|
56
|
+
|
57
|
+
#### how to validate branch name
|
58
|
+
|
59
|
+
it 'master branch can not be pushed' do
|
60
|
+
expect(git_env).not_to be_branch('master')
|
61
|
+
end
|
62
|
+
|
63
|
+
#### how to validate include certain file or not
|
64
|
+
|
65
|
+
it 'show not include certain files' do
|
66
|
+
expect(git_env.diffs_of_local[:D]).not_to include_file('README.md')
|
67
|
+
end
|
68
|
+
|
69
|
+
Provide three diff type of diffs:
|
70
|
+
|
71
|
+
* git\_env.diffs\_of\_local: unstaged files hashed by status types(A|C|D|M|R|T|U|X|B)
|
72
|
+
* git\_env.diffs\_of\_cached: cached files hashed by status types(A|C|D|M|R|T|U|X|B)
|
73
|
+
* git\_env.diffs\_of\_commited: last commited files hashed by status types(A|C|D|M|R|T|U|X|B)
|
74
|
+
|
75
|
+
#### how to get git configure
|
76
|
+
|
77
|
+
it 'pull rebase must be setted' do
|
78
|
+
expect(git_env.conf_of("pull.rebase")).to eql 'true'
|
79
|
+
end
|
80
|
+
|
81
|
+
#### how to execute git commands
|
82
|
+
|
83
|
+
git_env.exec("git status")
|
84
|
+
|
85
|
+
#### More...
|
86
|
+
|
87
|
+
_More features_ are to be continued...
|
88
|
+
|
89
|
+
## commit
|
90
|
+
|
91
|
+
fork and send pull-request
|
data/Rakefile
ADDED
data/bin/hookspec
ADDED
data/hookspec.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path(File.join(File.dirname(__FILE__),'lib/'))
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
require 'hookspec/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'hookspec'
|
9
|
+
s.version = HookSpec::VERSION
|
10
|
+
s.date = '2014-03-06'
|
11
|
+
s.summary = "git hooks by spec"
|
12
|
+
s.description = "write git hooks like spec"
|
13
|
+
s.authors = ["wills"]
|
14
|
+
s.email = 'weirenzhong@gmail.com'
|
15
|
+
s.files = `git ls-files`.split($/)
|
16
|
+
s.homepage = 'https://github.com/fdwills/hookspec'
|
17
|
+
s.license = 'MIT'
|
18
|
+
s.executables << 'hookspec'
|
19
|
+
|
20
|
+
s.add_runtime_dependency "rspec", ">= 2.13.0"
|
21
|
+
s.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
s.add_development_dependency "rake"
|
23
|
+
end
|
data/lib/hookspec.rb
ADDED
Binary file
|
data/lib/hookspec/all.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module HookSpec
|
2
|
+
class Application < Rake::Application
|
3
|
+
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
@branch = `git rev-parse --abbrev-ref HEAD`.chomp!
|
7
|
+
@diffs_info = {}
|
8
|
+
@all_files = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def run
|
12
|
+
Rake.application = self
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
def load_rakefile
|
17
|
+
load File.expand_path(File.join(File.dirname(__FILE__),'tasks/install.rake'))
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module HookSpec
|
2
|
+
class GitEnv
|
3
|
+
#an empty tree object hash
|
4
|
+
AGAINST = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@current_branch = nil
|
8
|
+
@cached_diffs_info = nil
|
9
|
+
@commit_diffs_info = nil
|
10
|
+
@local_diffs_info = nil
|
11
|
+
@all_files = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def current_branch
|
15
|
+
return @current_branch unless @current_branch.nil?
|
16
|
+
@current_branch = `git rev-parse --abbrev-ref HEAD`.chomp!
|
17
|
+
end
|
18
|
+
|
19
|
+
def files
|
20
|
+
return @all_files unless @all_files.nil?
|
21
|
+
@all_files = `git ls-files`.chomp!.split
|
22
|
+
end
|
23
|
+
|
24
|
+
# diff files with status
|
25
|
+
def diffs_of_commit
|
26
|
+
return @commit_diffs_info unless @commit_diffs_info.nil?
|
27
|
+
|
28
|
+
against = get_against
|
29
|
+
|
30
|
+
diff = `git diff HEAD^ HEAD --name-status`.chomp!
|
31
|
+
@commit_diffs_info = classify(diff)
|
32
|
+
end
|
33
|
+
|
34
|
+
def diffs_of_cached
|
35
|
+
return @cached_diffs_info unless @cached_diffs_info.nil?
|
36
|
+
|
37
|
+
diff = `git diff --cached --name-status`.chomp!
|
38
|
+
@cached_diffs_info = classify(diff)
|
39
|
+
end
|
40
|
+
|
41
|
+
def diffs_of_local
|
42
|
+
return @local_diffs_info unless @local_diffs_info.nil?
|
43
|
+
|
44
|
+
diff = `git diff --name-status`.chomp!
|
45
|
+
@local_diffs_info = classify(diff)
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
# git confs
|
50
|
+
def conf_of conf_name
|
51
|
+
return `git config #{conf_name}`.chomp!
|
52
|
+
end
|
53
|
+
|
54
|
+
def white_spaces
|
55
|
+
against = get_against
|
56
|
+
|
57
|
+
return `git diff-index --check --cached #{against} --`.chomp!
|
58
|
+
end
|
59
|
+
|
60
|
+
def exec cmd
|
61
|
+
return `#{cmd}`.chomp!
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def classify diffs
|
67
|
+
classified = {}
|
68
|
+
diffs.each_line(separator = $/) do |line|
|
69
|
+
Hash[*line.split].each_pair do |key, value|
|
70
|
+
if classified[key.to_sym].nil?
|
71
|
+
classified[key.to_sym] = [value]
|
72
|
+
else
|
73
|
+
classified[key.to_sym] << value
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
return classified
|
78
|
+
end
|
79
|
+
|
80
|
+
def get_against
|
81
|
+
if `git rev-parse --verify HEAD >/dev/null 2>&1`
|
82
|
+
return 'HEAD'
|
83
|
+
else
|
84
|
+
return AGAINST
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
load File.expand_path(File.join(File.dirname(__FILE__),'tasks/install.rake'))
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'pathname'
|
3
|
+
|
4
|
+
desc 'Install hookspec...'
|
5
|
+
task :install do
|
6
|
+
|
7
|
+
unless File.exist?('.git') && File.directory?('.git')
|
8
|
+
puts '''
|
9
|
+
Current dirctory is not in a git repo Or
|
10
|
+
Current dirctory is not git repo root dirctory!
|
11
|
+
'''
|
12
|
+
exit 1
|
13
|
+
end
|
14
|
+
|
15
|
+
hooks = %w{
|
16
|
+
applypatch-msg
|
17
|
+
pre-applypatch
|
18
|
+
prepare-commit-msg
|
19
|
+
commit-msg
|
20
|
+
pre-commit
|
21
|
+
update
|
22
|
+
post-update
|
23
|
+
pre-rebase
|
24
|
+
pre-push
|
25
|
+
post-push
|
26
|
+
}
|
27
|
+
|
28
|
+
hook_dir = Pathname.new('git_hooks')
|
29
|
+
hook_bk_dir = Pathname.new('.git/hooks/bak')
|
30
|
+
|
31
|
+
mkdir_p hook_dir
|
32
|
+
mkdir_p hook_bk_dir
|
33
|
+
|
34
|
+
hooks.each do |hook|
|
35
|
+
# copy hook.sh
|
36
|
+
mv(".git/hooks/#{hook}", ".git/hooks/#{hook}.bk")
|
37
|
+
sh_template = File.read (File.expand_path("../../templates/" + hook + ".sh", __FILE__) )
|
38
|
+
File.open(".git/hooks/#{hook}", 'w+') do |f|
|
39
|
+
f.write(ERB.new(sh_template).result(binding))
|
40
|
+
f.close
|
41
|
+
end
|
42
|
+
chmod(0755, ".git/hooks/#{hook}")
|
43
|
+
|
44
|
+
# mkdir hook/
|
45
|
+
sub_dir = Pathname.new("git_hooks/" + hook + "/")
|
46
|
+
mkdir_p sub_dir
|
47
|
+
|
48
|
+
# copy hook/sample.rb.erb
|
49
|
+
template = File.read( File.expand_path("../../templates/" + hook + "/sample.rb", __FILE__) )
|
50
|
+
file = sub_dir.join('sample.rb.erb')
|
51
|
+
File.open(file, 'w+') do |f|
|
52
|
+
f.write(ERB.new(template).result(binding))
|
53
|
+
f.close
|
54
|
+
end
|
55
|
+
end
|
56
|
+
puts '''
|
57
|
+
=================
|
58
|
+
install done !
|
59
|
+
installed to git_hooks/ !
|
60
|
+
'''
|
61
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'hookspec'
|
2
|
+
describe "push messages" do
|
3
|
+
let (:git_env) {HookSpec::GitEnv.new}
|
4
|
+
it 'out put all diffs' do
|
5
|
+
git_env.diffs_of_commit.each do |key, value|
|
6
|
+
case key
|
7
|
+
when :A, :a
|
8
|
+
puts "add file"
|
9
|
+
when :M, :m
|
10
|
+
puts "modify file"
|
11
|
+
when :D, :d
|
12
|
+
puts "delete file"
|
13
|
+
end
|
14
|
+
values.each { |file_name| puts file_name }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hookspec
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- wills
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.13.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.13.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: write git hooks like spec
|
56
|
+
email: weirenzhong@gmail.com
|
57
|
+
executables:
|
58
|
+
- hookspec
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Gemfile.lock
|
65
|
+
- LICENSE
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- bin/hookspec
|
69
|
+
- hookspec.gemspec
|
70
|
+
- lib/hookspec.rb
|
71
|
+
- lib/hookspec/.git_env.rb.swp
|
72
|
+
- lib/hookspec/all.rb
|
73
|
+
- lib/hookspec/application.rb
|
74
|
+
- lib/hookspec/git_env.rb
|
75
|
+
- lib/hookspec/install.rb
|
76
|
+
- lib/hookspec/matchers.rb
|
77
|
+
- lib/hookspec/matchers/be_branch.rb
|
78
|
+
- lib/hookspec/matchers/include_file.rb
|
79
|
+
- lib/hookspec/tasks/install.rake
|
80
|
+
- lib/hookspec/templates/applypatch-msg.sh
|
81
|
+
- lib/hookspec/templates/applypatch-msg/sample.rb
|
82
|
+
- lib/hookspec/templates/commit-msg.sh
|
83
|
+
- lib/hookspec/templates/commit-msg/sample.rb
|
84
|
+
- lib/hookspec/templates/post-push.sh
|
85
|
+
- lib/hookspec/templates/post-push/sample.rb
|
86
|
+
- lib/hookspec/templates/post-update.sh
|
87
|
+
- lib/hookspec/templates/post-update/sample.rb
|
88
|
+
- lib/hookspec/templates/pre-applypatch.sh
|
89
|
+
- lib/hookspec/templates/pre-applypatch/sample.rb
|
90
|
+
- lib/hookspec/templates/pre-commit.sh
|
91
|
+
- lib/hookspec/templates/pre-commit/sample.rb
|
92
|
+
- lib/hookspec/templates/pre-push.sh
|
93
|
+
- lib/hookspec/templates/pre-push/sample.rb
|
94
|
+
- lib/hookspec/templates/pre-rebase.sh
|
95
|
+
- lib/hookspec/templates/pre-rebase/sample.rb
|
96
|
+
- lib/hookspec/templates/prepare-commit-msg.sh
|
97
|
+
- lib/hookspec/templates/prepare-commit-msg/sample.rb
|
98
|
+
- lib/hookspec/templates/update.sh
|
99
|
+
- lib/hookspec/templates/update/sample.rb
|
100
|
+
- lib/hookspec/version.rb
|
101
|
+
homepage: https://github.com/fdwills/hookspec
|
102
|
+
licenses:
|
103
|
+
- MIT
|
104
|
+
metadata: {}
|
105
|
+
post_install_message:
|
106
|
+
rdoc_options: []
|
107
|
+
require_paths:
|
108
|
+
- lib
|
109
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - '>='
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
requirements: []
|
120
|
+
rubyforge_project:
|
121
|
+
rubygems_version: 2.0.3
|
122
|
+
signing_key:
|
123
|
+
specification_version: 4
|
124
|
+
summary: git hooks by spec
|
125
|
+
test_files: []
|