class BookStore
BookStore.rb
Public Class Methods
new()
click to toggle source
# File lib/bookstore.rb, line 8 def initialize @books = [] IO.foreach('book_store.txt') do |line| name = line.split('|').first rating = line.split('|').last book = Book.new(name.intern, rating.to_i) @books << book end end
Public Instance Methods
add_book(name, rating)
click to toggle source
# File lib/bookstore.rb, line 21 def add_book(name, rating) book = Book.new(name.intern, rating.to_i) @books << book update_store end
book_exists(title)
click to toggle source
# File lib/bookstore.rb, line 53 def book_exists(title) @books.each do |book| return true if book.title == title end false end
delete_book(name)
click to toggle source
# File lib/bookstore.rb, line 28 def delete_book(name) @books.select! { |book| book.title != name.intern } update_store end
display_books()
click to toggle source
# File lib/bookstore.rb, line 44 def display_books puts 'Books available in store' @books.each do |book| puts "Book Name: #{book.title}" puts "Book Rating: #{book.rating}" puts '' end end
search_book(name)
click to toggle source
# File lib/bookstore.rb, line 34 def search_book(name) result = [] @books.each do |book| next unless book.title.downcase.to_s.include? name.downcase result << Book.new(book.title, book.rating) end result end
Private Instance Methods
update_store()
click to toggle source
# File lib/bookstore.rb, line 62 def update_store book_store = File.open('book_store.txt', 'w') @books.each do |book| book_store.syswrite("#{book.title}|#{book.rating}\n") end book_store.close end