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