class Onboard::Prepare

Attributes

codebase[R]
found[R]
options[R]
projects[R]

Public Class Methods

new(codebase, found, options) click to toggle source
# File lib/onboard/prepare.rb, line 13
def initialize(codebase, found, options)
  @codebase = codebase
  @found = found
  @options = options
  @projects = Hash[options['projects'].map { |k, v| [k, v] }]
end

Public Instance Methods

add(proj) click to toggle source
# File lib/onboard/prepare.rb, line 60
def add(proj)
  say('Ready to add the following projects:', :green)
  proj.each do |x, _|
    puts '  ' + "#{codebase}/#{options[:destination]}/#{x}"
  end
  puts ''
end
answer() click to toggle source
# File lib/onboard/prepare.rb, line 30
def answer
  if options['no'] == 'no'
    return 'n'
  elsif options['yes'] == 'yes'
    return 'y'
  else
    ''
  end
end
confirm(proj) click to toggle source
# File lib/onboard/prepare.rb, line 68
def confirm(proj)
  add(proj)
  ans = answer
  Confirm.new('Proceed?', true).q(ans)
end
delete(proj) click to toggle source
# File lib/onboard/prepare.rb, line 40
def delete(proj)
  # TODO: check for patches before delete
  return proj unless options[:delete] == 'delete'
  say('Ready to delete existing projects:', :yellow)
  Confirm.new('Proceed?', true).q(answer)
  found.each do |x, _|
    Project.new.clean(x)
    proj[File.basename(x)] = ''
  end
  proj
end
do() click to toggle source
# File lib/onboard/prepare.rb, line 79
def do
  if found.empty? == false
    proj = report
    proj = delete(proj)
  else
    proj = projects
  end
  proj = force(proj)
  confirm(proj) unless proj.empty?
  return proj, answer unless proj.empty?
  void
end
force(proj) click to toggle source
# File lib/onboard/prepare.rb, line 52
def force(proj)
  return proj if options[:force] == 'force' || proj.empty?
  found.each do |x, _|
    proj.delete(File.basename(x))
  end
  proj
end
report() click to toggle source
# File lib/onboard/prepare.rb, line 20
def report
  say('Projects exist at the following locations:', :yellow)
  found.each do |x, y|
    puts '  ' + x
    projects[File.basename(x)] = y
  end
  puts ''
  projects
end
void() click to toggle source
# File lib/onboard/prepare.rb, line 74
def void
  say('All projects already in codebase.', :yellow)
  exit
end