class PreCommit::Installer
Constants
- TARGET_GIT_PATH
- TARGET_HOOKS_PATH
- TEMPLATE_DIR
Attributes
key[R]
Public Class Methods
new(key = nil)
click to toggle source
# File lib/pre-commit/installer.rb, line 13 def initialize(key = nil) @key = key || "automatic" end
Public Instance Methods
hook()
click to toggle source
# File lib/pre-commit/installer.rb, line 17 def hook templates[key.sub(/^--/, "")] end
install()
click to toggle source
# File lib/pre-commit/installer.rb, line 30 def install if hook then FileUtils.mkdir_p(File.dirname(target)) FileUtils.cp(hook, target) FileUtils.chmod(0755, target) puts "Installed #{hook} to #{target}" true else warn "Could not find template #{key}" false end end
target()
click to toggle source
# File lib/pre-commit/installer.rb, line 21 def target target_git_path = if File.directory?(TARGET_GIT_PATH) then TARGET_GIT_PATH else File.readlines('.git').first.match(/gitdir: (.*)$/)[1] end File.join(target_git_path, TARGET_HOOKS_PATH) end
templates()
click to toggle source
# File lib/pre-commit/installer.rb, line 45 def templates @templates ||= begin pattern = File.join(TEMPLATE_DIR, "*") Dir.glob(pattern).inject({}) do |hash, file| key = file.match(/\/([^\/]+?)$/)[1] hash[key] = file hash end end end