Module: BadLinkFinder

Defined in:
lib/bad_link_finder/result_cache.rb,
lib/bad_link_finder.rb,
lib/bad_link_finder/link.rb,
lib/bad_link_finder/page.rb,
lib/bad_link_finder/site.rb,
lib/bad_link_finder/version.rb,
lib/bad_link_finder/csv_builder.rb,
lib/bad_link_finder/page_checker.rb,
lib/bad_link_finder/site_checker.rb

Overview

If/when the bad link finder is converted to a set of parallel processes this cache will need to be backed by something threadsafe.

Defined Under Namespace

Classes: CSVBuilder, EnvironmentVariableError, Link, NullLogger, Page, PageChecker, ResultCache, Site, SiteChecker

Constant Summary collapse

VERSION =
"0.3.3"

Class Method Summary collapse

Class Method Details

.run(logger = NullLogger.new) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/bad_link_finder.rb', line 7

def self.run(logger = NullLogger.new)
  ['MIRROR_DIR', 'REPORT_OUTPUT_FILE', 'SITE_HOST'].each do |var|
    raise EnvironmentVariableError.new("Missing environment variable #{var}") unless ENV.has_key?(var)
  end

  raise EnvironmentVariableError.new("MIRROR_DIR '#{ENV['MIRROR_DIR']}' does not exist") unless Dir.exist?(ENV['MIRROR_DIR'])

  report_path = Pathname.new(ENV['REPORT_OUTPUT_FILE'])
  report_path.parent.mkpath

  csv_file = report_path.open('w')
  csv_builder = BadLinkFinder::CSVBuilder.new(csv_file)

  BadLinkFinder::SiteChecker.new(ENV['MIRROR_DIR'], ENV['SITE_HOST'], csv_builder, ENV['START_FROM'], logger).run

  csv_file.close

  nil
end