in lib/between_meals/repo.rb [34:75]
def self.get(type, repo_path, logger)
case type
when 'auto'
unless File.directory?(repo_path)
logger.warn("#{repo_path} does not point to a repo")
exit(1)
end
logger.info('Trying to detect repo type')
require 'between_meals/repo/git'
require 'between_meals/repo/hg'
require 'between_meals/repo/svn'
[
BetweenMeals::Repo::Git,
BetweenMeals::Repo::Hg,
BetweenMeals::Repo::Svn,
].each do |klass|
begin
r = klass.new(repo_path, logger)
if r.exists?
logger.info("Repo found to be #{klass.to_s.split('::').last}")
return r
end
rescue StandardError
logger.debug("Skipping #{klass}")
end
end
logger.warn("Failed detecting repo type at #{repo_path}")
exit(1)
when 'svn'
require 'between_meals/repo/svn'
BetweenMeals::Repo::Svn.new(repo_path, logger)
when 'git'
require 'between_meals/repo/git'
BetweenMeals::Repo::Git.new(repo_path, logger)
when 'hg'
require 'between_meals/repo/hg'
BetweenMeals::Repo::Hg.new(repo_path, logger)
else
fail "Do not know repo type #{type}"
end
end