Module: GitHooks
- Defined in:
- lib/git-hooks.rb,
lib/git_hooks/cli.rb,
lib/git_hooks/git.rb,
lib/git_hooks/version.rb,
lib/git_hooks/pre_commit.rb,
lib/git_hooks/config_file.rb,
lib/git_hooks/configurations.rb,
lib/git_hooks/rspec_executor.rb,
lib/git_hooks/pre_commit/rspec.rb,
lib/git_hooks/rubocop_validator.rb,
lib/git_hooks/pre_commit/rubocop.rb,
lib/git_hooks/exceptions/missing_hooks.rb,
lib/git_hooks/pre_commit/prevent_master.rb
Defined Under Namespace
Modules: Exceptions, PreCommit
Classes: CLI, ConfigFile, Configurations, Git, RspecExecutor, RubocopValidator
Constant Summary
collapse
- HOOK_SAMPLE_FILE =
'hook.sample'
- HOOKS =
[PRE_COMMIT = 'pre-commit']
- VERSION =
'0.1.0'
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.configurations ⇒ Object
28
29
30
|
# File 'lib/git-hooks.rb', line 28
def configurations
@configurations ||= Configurations.new
end
|
Class Method Details
.base_path ⇒ Object
32
33
34
|
# File 'lib/git-hooks.rb', line 32
def base_path
File.absolute_path(File.join(File.expand_path(__FILE__), '..', '..'))
end
|
.execute_pre_commits ⇒ Object
22
23
24
25
26
|
# File 'lib/git-hooks.rb', line 22
def execute_pre_commits
configurations.pre_commits.each do |pre_commit|
GitHooks::PreCommit.const_get(pre_commit).validate
end
end
|
.hook_installed?(hook) ⇒ Boolean
36
37
38
39
40
41
42
|
# File 'lib/git-hooks.rb', line 36
def hook_installed?(hook)
hook_file = File.join(Dir.pwd, '.git', 'hooks', hook)
real_hook_file = File.join(base_path, HOOK_SAMPLE_FILE)
return false unless File.symlink?(hook_file)
File.realpath(hook_file) == real_hook_file
end
|
.install_hook(hook) ⇒ Object
44
45
46
|
# File 'lib/git-hooks.rb', line 44
def install_hook(hook)
File.symlink(real_hook_template_path, ".git/hooks/#{hook}")
end
|
.validate_hooks! ⇒ Object
48
49
50
|
# File 'lib/git-hooks.rb', line 48
def validate_hooks!
fail Exceptions::MissingHook, PRE_COMMIT unless valid_pre_commit_hook?
end
|