lib/right_scraper/main.rb in right_scraper-5.2.3 vs lib/right_scraper/main.rb in right_scraper-5.2.4

- old
+ new

@@ -36,12 +36,11 @@ # Note that this class was known as Scraper in v1-3 but the name was confusing # due to the Scrapers module performing only a subset of the main Scraper # class functionality. class Main - # (Array):: Scraped resources - attr_reader :resources + attr_reader :logger, :resources # Initialize scrape destination directory # # === Options # <tt>:kind</tt>:: Type of scraper that will traverse directory for resources, one of :cookbook or :workflow @@ -59,11 +58,10 @@ :s3_secret => nil, :s3_bucket => nil, :scanners => nil, :builders => nil, ).merge(options) - @old_logger_callback = nil @temporary = !options.has_key?(:basedir) options[:basedir] ||= Dir.mktmpdir options[:logger] ||= ::RightScraper::Loggers::Default.new @logger = options[:logger] @resources = [] @@ -108,23 +106,24 @@ # false:: If scrape failed, call errors for information on failure # # === Raise # 'Invalid repository type':: If repository type is not known def scrape(repo, incremental=true, &callback) - @old_logger_callback = @logger.callback + old_logger_callback = @logger.callback @logger.callback = callback errorlen = errors.size begin - if retrieved = retrieve(repo, &callback) - scan(retrieved, &callback) + if retrieved = retrieve(repo) + scan(retrieved) end rescue Exception # legacy logger handles communication with the end user and appending # to our error list; we just need to keep going. the new methodology # has no such guaranteed communication so the caller will decide how to # handle errors, etc. ensure + @logger.callback = old_logger_callback cleanup end errors.size == errorlen end @@ -186,11 +185,9 @@ @options[:basedir] end # cleans up temporary files, etc. def cleanup - @logger.callback = @old_logger_callback - @old_logger_callback = nil ::FileUtils.remove_entry_secure(base_dir) rescue nil if @temporary end # Path to directory where given repo should be or was downloaded #