Add directomatic.rb
This commit is contained in:
parent
bdec914f56
commit
d58ddb1716
189
directomatic.rb
Normal file
189
directomatic.rb
Normal file
@ -0,0 +1,189 @@
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user