Class: FindArt::Scraper
Direct Known Subclasses
Constant Summary collapse
- @@scrapers =
{}
Class Method Summary collapse
-
.register_scraper(name) ⇒ Object
class method for registering scrapers.
- .registerd_sites ⇒ Object
-
.unregister_scrapers! ⇒ Object
clears all registerd scapers.
Instance Method Summary collapse
-
#find_art(artist, title, opts = nil) ⇒ Object
all registerd scrapers are used to find album art returns an array of urls.
-
#scrapers ⇒ Object
hash of all registerd scrapers.
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_sites ⇒ Object
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 |
#scrapers ⇒ Object
hash of all registerd scrapers
26 27 28 |
# File 'lib/FindArt/scraper.rb', line 26 def scrapers @@scrapers end |