class Git

TODO: Move to another repository (e.g.: ‘SimpleGit`)

Attributes

working_directory[R]

Public Class Methods

git(method_name, cmd = nil) click to toggle source
# File lib/git.rb, line 5
def self.git(method_name, cmd = nil)
  define_method(method_name) do |args|
    if cmd
      git("#{cmd} #{args}")
    else
      git("#{method_name} #{args}")
    end
  end
end
new(working_directory) click to toggle source
# File lib/git.rb, line 25
def initialize(working_directory)
  @working_directory ||= File.absolute_path(working_directory)
end
verbose!(is_verbose = true) click to toggle source
# File lib/git.rb, line 15
def self.verbose!(is_verbose = true)
  @verbose = is_verbose
end
verbose?() click to toggle source
# File lib/git.rb, line 19
def self.verbose?
  !!@verbose
end

Private Instance Methods

git(cmd) click to toggle source
# File lib/git.rb, line 40
def git(cmd)
  run "git #{cmd}"
end
run(cmd) click to toggle source
# File lib/git.rb, line 48
  def run(cmd)
    puts "$: #{cmd}" if verbose?

    cmd = <<-CMD
      cd #{working_directory} &&
      #{cmd}
    CMD

    # NOTE: Logging and debugging is writte to stderr
    _stdin, stdout, stderr = Open3.popen3(cmd)
    print stderr.read if verbose?
    stdout.read
  end
verbose?() click to toggle source
# File lib/git.rb, line 44
def verbose?
  self.class.verbose?
end