Module: SiteHealth

Defined in:
lib/site_health.rb,
lib/site_health/link.rb,
lib/site_health/issue.rb,
lib/site_health/nurse.rb,
lib/site_health/timer.rb,
lib/site_health/issues.rb,
lib/site_health/url_map.rb,
lib/site_health/version.rb,
lib/site_health/check_data.rb,
lib/site_health/key_struct.rb,
lib/site_health/null_logger.rb,
lib/site_health/checkers/xml.rb,
lib/site_health/event_emitter.rb,
lib/site_health/issues_report.rb,
lib/site_health/checkers/checker.rb,
lib/site_health/checkers/w3c_css.rb,
lib/site_health/checkers/redirect.rb,
lib/site_health/checkers/w3c_html.rb,
lib/site_health/w3c_journal_builder.rb,
lib/site_health/checkers/json_syntax.rb,
lib/site_health/checkers/html_proofer.rb,
lib/site_health/checkers/missing_title.rb,
lib/site_health/checkers/page_not_found.rb,
lib/site_health/checkers/google_page_speed.rb,
lib/site_health/configuration/configuration.rb,
lib/site_health/checkers/facebook_share_link.rb,
lib/site_health/checkers/missing_description.rb,
lib/site_health/summarizers/page_size_summarizer.rb,
lib/site_health/configuration/html_proofer_configuration.rb,
lib/site_health/configuration/w3c_validators_configuration.rb

Overview

Top-level module/namespace

Defined Under Namespace

Modules: EventEmitter, W3CJournalBuilder Classes: CheckData, Checker, Configuration, FacebookShareLink, GooglePageSpeed, HTMLProofer, HTMLProoferConfiguration, Issue, Issues, IssuesReport, JSONSyntax, KeyStruct, Link, MissingDescription, MissingTitle, NullLogger, Nurse, PageNotFound, PageSpeedSummarizer, Redirect, Timer, UrlMap, W3CCSS, W3CHTML, W3CValidatorsConfiguration, XML

Constant Summary collapse

PATCH =

Patch version

0
MINOR =

Minor version

2
MAJOR =

Major version

0
VERSION =

Current version

[MAJOR, MINOR, PATCH].join('.').freeze
W3CJournal =

Holds WC3Validator errors/warnings data

KeyStruct.new(
  :message,
  :value,
  :source,
  :type,
  :explanation,
  :parent,
  :line,
  :context,
  :element,
  :error?,
  :warning?,
  :col,
  :message_id,
  :message_count,
  :skipped_string
)

Class Method Summary collapse

Class Method Details

.check(site, config: SiteHealth.config) {|nurse| ... } ⇒ Hash

Returns journal data.

Parameters:

  • site (String)

    to be checked

  • config (SiteHealth::Configuration) (defaults to: SiteHealth.config)

    the configuration to use

Yield Parameters:

Returns:

  • (Hash)

    journal data

See Also:



58
59
60
61
62
63
64
65
66
67
68
# 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| ... } ⇒ Hash

Returns journal data.

Parameters:

  • urls (Array<String>, String)

    to be checked

  • config (SiteHealth::Configuration) (defaults to: SiteHealth.config)

    the configuration to use

Yield Parameters:

Returns:

  • (Hash)

    journal data

See Also:



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# 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

.configConfiguration

Returns the current configuration.

Returns:



109
110
111
# File 'lib/site_health.rb', line 109

def self.config
  configure
end

.configure {|the| ... } ⇒ Configuration

Returns the current configuration.

Yield Parameters:

Returns:



102
103
104
105
106
# File 'lib/site_health.rb', line 102

def self.configure
  @configuration ||= Configuration.new
  yield(@configuration) if block_given?
  @configuration
end

.load_checker(name) ⇒ Checker

Returns loaded class that should inherits from Checker.

Parameters:

  • name (Symbol, String)

    of the checker to be loaded

Returns:

  • (Checker)

    loaded class that should inherits from Checker



45
46
47
48
49
50
51
# 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

.loggerObject



96
97
98
# File 'lib/site_health.rb', line 96

def self.logger
  config.logger
end

.register_checker(klass) ⇒ see SiteHealth#registered_checkers

Parameters:

  • klass (Checker)

    that inherits from Checker

Returns:



33
34
35
36
# File 'lib/site_health.rb', line 33

def self.register_checker(klass)
  registered_checkers[klass.name.to_sym] = klass
  registered_checkers
end

.registered_checkersHash

Returns all registered checkers.

Returns:

  • (Hash)

    all registered checkers



39
40
41
# File 'lib/site_health.rb', line 39

def self.registered_checkers
  @checkers ||= {}
end

.require_optional_dependency(path, gem_name: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# 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