class Flash::Command::Clone
Public Class Methods
new(group)
click to toggle source
# File lib/flash/command/clone.rb, line 5 def initialize(group) @group = group end
Public Instance Methods
execute()
click to toggle source
# File lib/flash/command/clone.rb, line 9 def execute raise(ArgumentError, 'Missing required group parameter.') unless @group unknown_group_and_exit(@group) unless valid_group?(@group) missing_git_clone_url unless has_clone_git_url? clone_projects(@group) end
Private Instance Methods
base_clone_path()
click to toggle source
# File lib/flash/command/clone.rb, line 53 def base_clone_path base_url = config['clone']['git'] base_url.gsub(/\/+$/, '') end
clone_path(project)
click to toggle source
# File lib/flash/command/clone.rb, line 49 def clone_path(project) "#{ base_clone_path }/#{ project }.git" end
clone_projects(group)
click to toggle source
# File lib/flash/command/clone.rb, line 34 def clone_projects(group) projects(group).each do |project| clone_single(project) unless File.exist?(project) puts "\n[#{project}] Done cloning project.\n\n" end end
clone_single(project)
click to toggle source
# File lib/flash/command/clone.rb, line 45 def clone_single(project) system('git', 'clone', clone_path(project)) end
has_clone_git_url?()
click to toggle source
# File lib/flash/command/clone.rb, line 29 def has_clone_git_url? clone_git_url = (config['clone'] && config['clone']['git']) clone_git_url ? true : false end
missing_git_clone_url()
click to toggle source
# File lib/flash/command/clone.rb, line 24 def missing_git_clone_url puts 'Missing clone git URL defined in .flash.yml config.' exit 1 end
projects(group)
click to toggle source
# File lib/flash/command/clone.rb, line 41 def projects(group) config[group] || [] end
unknown_group_and_exit(group)
click to toggle source
# File lib/flash/command/clone.rb, line 19 def unknown_group_and_exit(group) puts "Unknown group \"#{group}\" in .flash.yml config." exit 1 end