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
#