class Lolcommits::Installation
Methods to handle enabling and disabling of lolcommits
Public Class Methods
backend()
click to toggle source
# File lib/lolcommits/installation.rb, line 8 def self.backend if GitInfo.repo_root? InstallationGit elsif MercurialInfo.repo_root? InstallationMercurial else fatal "You don't appear to be in the base directory of a supported vcs project." exit 1 end end
do_disable()
click to toggle source
IF –DISABLE, DO DISABLE
# File lib/lolcommits/installation.rb, line 36 def self.do_disable backend.do_disable end
do_enable(options = {})
click to toggle source
IF –ENABLE, DO ENABLE
# File lib/lolcommits/installation.rb, line 22 def self.do_enable(options = {}) capture_args = extract_capture_args(options) path = backend.do_enable(capture_args) info 'installed lolcommit hook to:' info " -> #{File.expand_path(path)}" info '(to remove later, you can use: lolcommits --disable)' # we dont symlink, but rather install a small stub that calls the one from path # that way, as gem version changes, script updates even if new file thus breaking symlink end
extract_capture_args(options)
click to toggle source
Extract any command line capture args from the parsed options hash, will be appended to the capture command within the commit hook script
@return [String]
# File lib/lolcommits/installation.rb, line 44 def self.extract_capture_args(options) options.map do |k, v| next unless %w(device animate delay stealth fork).include?(k) if k == 'device' "--device '#{v}'" else "--#{k}#{v == true ? '' : " #{v}"}" end end.compact.join(' ') end