190 lines
4.4 KiB
Ruby
190 lines
4.4 KiB
Ruby
class DirectoryMaker
|
|
attr_accessor :directory_queue
|
|
|
|
def initialize(directory_queue)
|
|
@directory_queue = directory_queue
|
|
end
|
|
|
|
def add_directory
|
|
puts "\nEnter directory name: "
|
|
name = gets.chomp
|
|
if name.include? "/"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{name} is invalid.\n\n"
|
|
add_directory
|
|
elsif directory_queue.include?(name)
|
|
system "clear"
|
|
puts "\n#{name} already exists in directory queue.\n\n"
|
|
add_directory
|
|
else
|
|
directory_queue.push name
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\nAdded #{name} to directory queue. Add another? (y/n)\n"
|
|
|
|
chosen_action = gets.chomp
|
|
puts "\n"
|
|
|
|
case chosen_action
|
|
when "y"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
add_directory
|
|
when "n"
|
|
system "clear"
|
|
start
|
|
else
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{chosen_action} is an invalid selection.\n\n"
|
|
choose_action
|
|
end
|
|
end
|
|
system "clear"
|
|
choose_action
|
|
end
|
|
|
|
def view_directory_queue
|
|
if directory_queue.empty?
|
|
puts "---------------Directory Queue (Empty)----------------\n\n"
|
|
puts " (Add some directories to the queue!) \n\n"
|
|
puts "-------------------------------------------------------\n"
|
|
else
|
|
puts "--------------------Directory Queue--------------------\n\n"
|
|
puts directory_queue
|
|
puts "\n-------------------------------------------------------\n"
|
|
end
|
|
end
|
|
|
|
def remove_directory
|
|
puts "\nPlease enter the name of the directory you'd like to remove from the queue:\n"
|
|
name = gets.chomp
|
|
if directory_queue.include?(name)
|
|
directory_queue.delete(name)
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{name} has been deleted from the directory queue.\n\n"
|
|
choose_action
|
|
else
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{name} does not exist.\n\n"
|
|
choose_action
|
|
end
|
|
end
|
|
|
|
def edit_directory
|
|
puts "\nPlease enter the name of the directory you'd like to edit:\n"
|
|
puts "\n"
|
|
name = gets.chomp
|
|
puts "\n"
|
|
if directory_queue.include?(name)
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\nPlease enter new name for #{name}:\n"
|
|
new_name = gets.chomp
|
|
directory_queue[directory_queue.find_index(name)] = new_name
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{name} has been changed to #{new_name}.\n\n"
|
|
choose_action
|
|
else
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{name} does not exist.\n\n"
|
|
choose_action
|
|
end
|
|
end
|
|
|
|
def create_directories
|
|
puts "\nWhere would you like to put your new directories?\n"
|
|
location = gets.chomp
|
|
if Dir.exists?(location)
|
|
Dir.chdir(location)
|
|
system "clear"
|
|
print_header
|
|
puts "\nCreating directories..."
|
|
puts "-------------------------------------------------------\n\n"
|
|
for directory in directory_queue
|
|
if Dir.exists?(directory)
|
|
puts "- #{directory} exists, skipping...\n"
|
|
else
|
|
puts "- Creating #{directory}...\n"
|
|
Dir.mkdir(directory)
|
|
end
|
|
end
|
|
puts "\n-------------------------------------------------------\n\n"
|
|
puts "\nDone! Thank you for using Directomatic!\n\n"
|
|
exit 0
|
|
else
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{location} does not exist. Please try again:\n\n"
|
|
choose_action
|
|
end
|
|
end
|
|
|
|
def choose_action
|
|
puts "\n1) Add 2) Edit 3) Remove 4) Generate Directories\n\n"
|
|
chosen_action = gets.chomp
|
|
|
|
case chosen_action
|
|
when "1"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
add_directory
|
|
when "2"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
edit_directory
|
|
when "3"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
remove_directory
|
|
when "4"
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
create_directories
|
|
else
|
|
system "clear"
|
|
print_header
|
|
view_directory_queue
|
|
puts "\n#{chosen_action} is an invalid selection. Please try again:\n"
|
|
choose_action
|
|
end
|
|
end
|
|
|
|
def print_header
|
|
puts "|=====================================================|"
|
|
puts "| DIRECTOMATIC |"
|
|
puts "| Generate multiple directories in a flash! |"
|
|
puts "|=====================================================|\n\n"
|
|
end
|
|
|
|
def start
|
|
print_header
|
|
view_directory_queue
|
|
choose_action
|
|
end
|
|
end
|
|
|
|
directories = DirectoryMaker.new([])
|
|
system "clear"
|
|
directories.start
|
|
|