module SiteHealth

Top-level module/namespace

Constants

MAJOR

Major version

MINOR

Minor version

PATCH

Patch version

VERSION

Current version

W3CJournal

Holds WC3Validator errors/warnings data

Public Class Methods

check(site, config: SiteHealth.config) { |nurse| ... } click to toggle source

@param [String] site to be checked @param config [SiteHealth::Configuration] the configuration to use @yieldparam [SiteHealth::Nurse] nurse (a.k.a agent) @return [Hash] journal data @see Nurse#journal

# File lib/site_health.rb, line 58
def self.check(site, config: SiteHealth.config)
  nurse = Nurse.new(config: config)
  yield(nurse) if block_given?

  Spidr.site(site) do |spider|
    spider.every_failed_url { |url| nurse.check_failed_url(url) }
    spider.every_page { |page| nurse.check_page(page) }
  end

  nurse.punch_out!
end
check_urls(urls, config: SiteHealth.config) { |nurse| ... } click to toggle source

@param [Array<String>, String] urls to be checked @param config [SiteHealth::Configuration] the configuration to use @yieldparam [SiteHealth::Nurse] nurse (a.k.a agent) @return [Hash] journal data @see Nurse#journal

# File lib/site_health.rb, line 75
def self.check_urls(urls, config: SiteHealth.config)
  nurse = Nurse.new(config: config)
  yield(nurse) if block_given?

  agent = Spidr::Agent.new

  Array(urls).each do |url|
    page = agent.get_page(url)

    if page.nil?
      nurse.check_failed_url(url)
      next
    end

    nurse.check_page(page)
  end

  nurse.punch_out!
end
config() click to toggle source

@return [Configuration] the current configuration

# File lib/site_health.rb, line 109
def self.config
  configure
end
configure() { |configuration| ... } click to toggle source

@return [Configuration] the current configuration @yieldparam [Configuration] the current configuration

# File lib/site_health.rb, line 102
def self.configure
  @configuration ||= Configuration.new
  yield(@configuration) if block_given?
  @configuration
end
load_checker(name) click to toggle source

@param [Symbol, String] name of the checker to be loaded @return [Checker] loaded class that should inherits from Checker

# File lib/site_health.rb, line 45
def self.load_checker(name)
  name_key = name.to_sym
  registered_checkers.fetch(name_key) do
    require "site_health/checkers/#{name}"
    registered_checkers[name_key]
  end
end
logger() click to toggle source

@see Configuration#logger

# File lib/site_health.rb, line 96
def self.logger
  config.logger
end
register_checker(klass) click to toggle source

@param [Checker] klass that inherits from Checker @return [see SiteHealth#registered_checkers]

# File lib/site_health.rb, line 33
def self.register_checker(klass)
  registered_checkers[klass.name.to_sym] = klass
  registered_checkers
end
registered_checkers() click to toggle source

@return [Hash] all registered checkers

# File lib/site_health.rb, line 39
def self.registered_checkers
  @checkers ||= {}
end
require_optional_dependency(path, gem_name: nil) click to toggle source
# File lib/site_health.rb, line 19
def self.require_optional_dependency(path, gem_name: nil)
  gem_name ||= path
  require path
rescue LoadError => e
  message_parts = [
    e.message,
    "unable to require file from '#{gem_name}' gem",
    'please install it',
  ]
  raise(LoadError, message_parts.join(' -- '))
end