class GitCloner::Core
Constants
- GIT_CLONER_FILE
- GIT_CLONER_TEMPLATE
Public Instance Methods
clone()
click to toggle source
Private Instance Methods
back_to_base_dir(base_dir)
click to toggle source
# File lib/git_cloner_core.rb, line 119 def back_to_base_dir(base_dir) Dir.chdir(base_dir) end
check_repos(repos)
click to toggle source
# File lib/git_cloner_core.rb, line 69 def check_repos(repos) return if repos.is_a? Array fail ArgumentError, 'invalid repos. repos must be Array.' end
check_repos_hash(repo)
click to toggle source
# File lib/git_cloner_core.rb, line 85 def check_repos_hash(repo) return if repo.is_a?(Hash) fail ArgumentError, 'invalid repos. repos-Array must have Hash' end
check_repos_hash_key(repo)
click to toggle source
# File lib/git_cloner_core.rb, line 90 def check_repos_hash_key(repo) return if repo.key?(:place) fail ArgumentError, 'invalid key. Hash must contain :place key' end
clone_repositories(default_output, repos, base_dir)
click to toggle source
# File lib/git_cloner_core.rb, line 64 def clone_repositories(default_output, repos, base_dir) check_repos(repos) repos.each { |repo|clone_repository(default_output, repo, base_dir) } end
clone_repository(default_output, repo, base_dir)
click to toggle source
# File lib/git_cloner_core.rb, line 74 def clone_repository(default_output, repo, base_dir) check_repos_hash(repo) check_repos_hash_key(repo) output_dir = get_output_dir(repo[:output], default_output) make_output_dir(output_dir) move_to_output_dir(output_dir) execute_git_clone(repo[:place]) back_to_base_dir(base_dir) Copier.copy(repo[:copies]) end
execute_git_clone(url)
click to toggle source
# File lib/git_cloner_core.rb, line 112 def execute_git_clone(url) result = system("git clone #{url} --depth=1") repo_name = get_repo_name(url) remove_dot_git_directory repo_name show_result_message(result, repo_name) end
get_output_dir(output, default_output)
click to toggle source
# File lib/git_cloner_core.rb, line 100 def get_output_dir(output, default_output) output.nil? ? default_output : output end
get_repo_name(place)
click to toggle source
# File lib/git_cloner_core.rb, line 95 def get_repo_name(place) uri = URI(place) uri.path.gsub(/.*\//, '').gsub('.git', '') end
make_output_dir(output_dir)
click to toggle source
# File lib/git_cloner_core.rb, line 104 def make_output_dir(output_dir) FileUtils.mkdir_p(output_dir) unless Dir.exist?(output_dir) end
move_to_output_dir(output_dir)
click to toggle source
# File lib/git_cloner_core.rb, line 108 def move_to_output_dir(output_dir) Dir.chdir(output_dir) end
read_dsl()
click to toggle source
# File lib/git_cloner_core.rb, line 60 def read_dsl File.open(GIT_CLONER_FILE) { |f|f.read } end
read_settings()
click to toggle source
# File lib/git_cloner_core.rb, line 53 def read_settings src = read_dsl dsl = GitCloner::Dsl.new dsl.instance_eval src dsl.git_cloner end
remove_dot_git_directory(repo_name)
click to toggle source
# File lib/git_cloner_core.rb, line 123 def remove_dot_git_directory(repo_name) Dir.chdir("./#{repo_name}") FileUtils.rm_rf('.git') if Dir.exist?('.git') end
show_result_message(result, repo_name)
click to toggle source
# File lib/git_cloner_core.rb, line 128 def show_result_message(result, repo_name) result_msg = result ? 'complete' : 'fail' puts("clone #{Dir.pwd}/#{repo_name} #{result_msg}") end