class Franklin::ThreadedSearch

Attributes

searchers[RW]

Public Class Methods

new(libraries) click to toggle source
# File lib/franklin/threaded_search.rb, line 8
def initialize(libraries)
  @searchers = libraries.map { |library| Search.new(library) }
end

Public Instance Methods

perform(search_terms) click to toggle source
# File lib/franklin/threaded_search.rb, line 12
def perform(search_terms)
  fail ArgumentError, "Please provide at least one search_term" if search_terms.empty?
  threads = searchers.map { |search| Thread.new { search.perform(search_terms) } }
  Collate.new.perform(threads.map(&:value))
end