class Object
Public Instance Methods
addBook()
click to toggle source
Inventory manipulation methods
# File lib/bookstoretest.rb, line 67 def addBook puts ">> Adding a new book..." print "Enter book name : " name = gets.chomp print "Enter book rating: " rating = gets.chomp if $books.include?(name) puts "Already exsits: { '#{name}', #{rating} }" else $books[ name.to_s ] = rating.to_i puts "Added: { '#{name}', #{rating} }" end puts end
deleteBook()
click to toggle source
# File lib/bookstoretest.rb, line 86 def deleteBook puts ">> Deleting an existing book..." if $books.empty? puts ">> Inventory is empty! Nothing to search!" else print "Enter book name: " name = gets.chomp if !$books.include?(name) puts "'#{name}' does not exist!" else $books.delete(name) puts "Deleted: { '#{name}' }" end end puts end
displayBooks()
click to toggle source
# File lib/bookstoretest.rb, line 125 def displayBooks puts ">> Displaying all the books..." if $books.empty? puts ">> Inventory is empty! Nothing to display!" else puts "TOTAL BOOKS: #{$books.length}" $books.each { |name, rating| puts "{ '#{name}': #{rating} }" } puts end end
invalidChoice(choice)
click to toggle source
# File lib/bookstoretest.rb, line 188 def invalidChoice(choice) puts ">> ERORR! Invalid choice! [#{choice}]" end
loadBooks()
click to toggle source
# File lib/bookstoretest.rb, line 137 def loadBooks puts ">> Loading existing books from #{$BOOKS_DB_NAME}..." if !File.exist?($BOOKS_DB_NAME) puts "Books database `#{$BOOKS_DB_NAME}` not found! Nothing to load!" else puts "Books database '#{$BOOKS_DB_NAME}' found! Loading..." $books.clear file = File.open($BOOKS_DB_NAME, "r") file.each { |line| book_entry = line.split(",") name = book_entry[0] rating = book_entry[1].to_i puts "Loaded: { '#{name}', #{rating} }" $books[ name ] = rating } file.close end puts end
quit()
click to toggle source
# File lib/bookstoretest.rb, line 184 def quit puts ">> Quitting... Bye... :)" end
saveBooks()
click to toggle source
# File lib/bookstoretest.rb, line 164 def saveBooks puts ">> Saving current inventory..." if File.exist?($BOOKS_DB_NAME) File.truncate($BOOKS_DB_NAME, 0) end file = File.open($BOOKS_DB_NAME, "w") $books.each { |name, rating| puts "Saved: { '#{name}', #{rating} }" book_entry = name + "," + rating.to_s file.write( book_entry + "\n" ) } file.close puts end
searchBooks()
click to toggle source
# File lib/bookstoretest.rb, line 106 def searchBooks puts ">> Searching existing books..." if $books.empty? puts ">> Inventory is empty! Nothing to search!" else print "Enter substring to search: " substring = gets.chomp $books.each { |name, rating| if name.to_s.include? substring puts "Found: { '#{name}', #{rating} }" end } puts end end
showMenuAndPrompt()
click to toggle source
# File lib/bookstoretest.rb, line 25 def showMenuAndPrompt puts "==================================" puts " Bookstore Inventory System " puts "==================================" puts " (#{$ADD}) : Add a book" puts " (#{$DELETE}) : Delete a book" puts " (#{$SEARCH}) : Search a book" puts "(#{$DISPLAY}) : Display all books" puts " (#{$SAVE}) : Save books information" puts " (#{$QUIT}) : Quit the application" puts "==================================" print "Enter your choice: " choice = gets.chomp choice end
start()
click to toggle source
# File lib/bookstoretest.rb, line 42 def start puts "Starting..." loadBooks loop do choice = showMenuAndPrompt puts case choice when $ADD then addBook when $DELETE then deleteBook when $SEARCH then searchBooks when $DISPLAY then displayBooks when $SAVE then saveBooks when $QUIT then quit else invalidChoice(choice) end break if choice == $QUIT end end