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