Class: FindArt::Scraper

Inherits:
Object show all
Defined in:
lib/FindArt/scraper.rb

Direct Known Subclasses

AlbumArtExchange, JunoDownload, WalMart

Constant Summary collapse

@@scrapers =
{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register_scraper(name) ⇒ Object

class method for registering scrapers



21
22
23
# File 'lib/FindArt/scraper.rb', line 21

def self.register_scraper(name)
  @@scrapers[name] = self
end

.registerd_sitesObject



30
31
32
# File 'lib/FindArt/scraper.rb', line 30

def self.registerd_sites
  @@scrapers.map {|scraper_name,klass| URI(klass.url).host}
end

.unregister_scrapers!Object

clears all registerd scapers



35
36
37
# File 'lib/FindArt/scraper.rb', line 35

def self.unregister_scrapers!
  @@scrapers = {}
end

Instance Method Details

#find_art(artist, title, opts = nil) ⇒ Object

all registerd scrapers are used to find album art returns an array of urls



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/FindArt/scraper.rb', line 41

def find_art(artist,title,opts=nil)
  threads = []       
  @@scrapers.each do |scraper_name,klass|  
    scraper = klass.new    
    threads << Thread.new { Thread.current["results"] = scraper.scrape(artist,title,opts)}                  
  end  
  results = []                
  begin
  threads.each {|t| t.join;  results << t["results"] unless t['results'].nil? }           
  rescue
  end
  results
end

#scrapersObject

hash of all registerd scrapers



26
27
28
# File 'lib/FindArt/scraper.rb', line 26

def scrapers
   @@scrapers
end