class FindReadersNumberForBook

Attributes

book[R]
library[R]

Public Class Methods

new(library, book) click to toggle source
# File lib/find_readers_number_for_book.rb, line 6
def initialize(library, book)
  @library = library
  @book = book
end
perform(library, book) click to toggle source
# File lib/find_readers_number_for_book.rb, line 2
def self.perform(library, book)
  new(library, book).perform
end

Public Instance Methods

perform() click to toggle source
# File lib/find_readers_number_for_book.rb, line 11
def perform
  find_the_number_of_readers
end

Private Instance Methods

find_the_number_of_readers() click to toggle source
# File lib/find_readers_number_for_book.rb, line 17
def find_the_number_of_readers
  book_readers = []
  library.orders.each do |order|
    book_readers.push(order.reader) if new_reader?(book_readers, order)
  end
  book_readers.size
end
new_reader?(found_readers, order) click to toggle source
# File lib/find_readers_number_for_book.rb, line 25
def new_reader?(found_readers, order)
  order.book == book && !found_readers.include?(order.reader)
end