class Git::Duet::PreCommitCommand

Public Class Methods

new(quiet = false) click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 11
def initialize(quiet = false)
  @quiet = !!quiet
end

Public Instance Methods

execute!() click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 15
def execute!
  in_repo_root do
    explode! if !env_cache_exists? || env_cache_stale?
  end
end

Private Instance Methods

env_cache_exists?() click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 29
def env_cache_exists?
  with_output_quieted do
    exec_check("git config #{Git::Duet::Config.namespace}.mtime")
  end
  true
rescue
  false
end
env_cache_stale?() click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 38
def env_cache_stale?
  Integer(
    exec_check("git config #{Git::Duet::Config.namespace}.mtime")
  ) < stale_cutoff
end
explode!() click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 23
def explode!
  error('Your git duet settings are stale, human!')
  error('Update them with `git duet` or `git solo`.')
  fail Git::Duet::ScriptDieError, 1
end
stale_cutoff() click to toggle source
# File lib/git/duet/pre_commit_command.rb, line 44
def stale_cutoff
  Integer(
    Time.now - Integer(ENV.fetch('GIT_DUET_SECONDS_AGO_STALE', '1200'))
  )
end