hookspec 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +27 -0
  5. data/LICENSE +20 -0
  6. data/README.md +91 -0
  7. data/Rakefile +5 -0
  8. data/bin/hookspec +3 -0
  9. data/hookspec.gemspec +23 -0
  10. data/lib/hookspec.rb +4 -0
  11. data/lib/hookspec/.git_env.rb.swp +0 -0
  12. data/lib/hookspec/all.rb +11 -0
  13. data/lib/hookspec/application.rb +21 -0
  14. data/lib/hookspec/git_env.rb +88 -0
  15. data/lib/hookspec/install.rb +1 -0
  16. data/lib/hookspec/matchers.rb +2 -0
  17. data/lib/hookspec/matchers/be_branch.rb +6 -0
  18. data/lib/hookspec/matchers/include_file.rb +6 -0
  19. data/lib/hookspec/tasks/install.rake +61 -0
  20. data/lib/hookspec/templates/applypatch-msg.sh +2 -0
  21. data/lib/hookspec/templates/applypatch-msg/sample.rb +7 -0
  22. data/lib/hookspec/templates/commit-msg.sh +2 -0
  23. data/lib/hookspec/templates/commit-msg/sample.rb +7 -0
  24. data/lib/hookspec/templates/post-push.sh +2 -0
  25. data/lib/hookspec/templates/post-push/sample.rb +7 -0
  26. data/lib/hookspec/templates/post-update.sh +2 -0
  27. data/lib/hookspec/templates/post-update/sample.rb +7 -0
  28. data/lib/hookspec/templates/pre-applypatch.sh +2 -0
  29. data/lib/hookspec/templates/pre-applypatch/sample.rb +7 -0
  30. data/lib/hookspec/templates/pre-commit.sh +2 -0
  31. data/lib/hookspec/templates/pre-commit/sample.rb +12 -0
  32. data/lib/hookspec/templates/pre-push.sh +2 -0
  33. data/lib/hookspec/templates/pre-push/sample.rb +7 -0
  34. data/lib/hookspec/templates/pre-rebase.sh +2 -0
  35. data/lib/hookspec/templates/pre-rebase/sample.rb +7 -0
  36. data/lib/hookspec/templates/prepare-commit-msg.sh +2 -0
  37. data/lib/hookspec/templates/prepare-commit-msg/sample.rb +17 -0
  38. data/lib/hookspec/templates/update.sh +2 -0
  39. data/lib/hookspec/templates/update/sample.rb +7 -0
  40. data/lib/hookspec/version.rb +3 -0
  41. 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
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hookspec.gemspec
4
+ gemspec
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
@@ -0,0 +1,5 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ task :default => :spec
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new
data/bin/hookspec ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'hookspec/all'
3
+ HookSpec::Application.new.run
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
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'hookspec/all'
4
+
Binary file
@@ -0,0 +1,11 @@
1
+ require 'rake'
2
+
3
+ Rake.application.options.trace = true
4
+
5
+ require 'hookspec/version'
6
+ require 'hookspec/application'
7
+ require 'hookspec/matchers'
8
+ require 'hookspec/git_env'
9
+
10
+ module HookSpec
11
+ end
@@ -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,2 @@
1
+ require 'hookspec/matchers/be_branch'
2
+ require 'hookspec/matchers/include_file'
@@ -0,0 +1,6 @@
1
+ require 'rspec'
2
+ RSpec::Matchers.define :be_branch do |branch|
3
+ match do |git_env|
4
+ git_env.current_branch.eql?(branch)
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'rspec'
2
+ RSpec::Matchers.define :include_file do |file_name|
3
+ match do |files|
4
+ files.empty? || files.any?{ |f| f.eql? file_name }
5
+ end
6
+ end
@@ -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,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/applypatch-msg/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/commit-msg/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/post-push/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/post-update/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/pre-applypatch/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/pre-commit/
@@ -0,0 +1,12 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+
5
+ it 'master branch can not be pushed' do
6
+ expect(git_env).not_to be_branch('master')
7
+ end
8
+
9
+ it 'show white spaces errors' do
10
+ puts git_env.white_spaces
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/pre-push/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/pre-rebase/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/prepare-commit-msg/
@@ -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
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ bundle exec rspec git_hooks/update/
@@ -0,0 +1,7 @@
1
+ require 'hookspec'
2
+ describe "push" do
3
+ let (:git_env) {HookSpec::GitEnv.new}
4
+ it 'master branch can not be pushed' do
5
+ expect(git_env).not_to be_branch('master')
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module HookSpec
2
+ VERSION = "1.0.0"
3
+ 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: []