class GitHubPages::HealthCheck::Error

def self.inherited(base)

def self.inherited(base)
  subclasses << base
end

def self.subclasses

def self.subclasses
  @subclasses ||= []
end

def documentation_url

def documentation_url
  URI.join(Error::DOCUMENTATION_BASE, self.class::DOCUMENTATION_PATH).to_s
end

def initialize(repository: nil, domain: nil)

def initialize(repository: nil, domain: nil)
  super
  @repository = repository
  @domain     = domain
end

def message

def message
  "Something's wrong with your GitHub Pages site."
end

def message_with_url

Error message, with get more info URL appended
def message_with_url
  msg = message.gsub(/\s+/, " ").squeeze(" ").strip
  msg << "." unless msg.end_with?(".") # add trailing period if not there
  "#{msg} #{more_info}"
end

def more_info

def more_info
  "For more information, see #{documentation_url}."
end

def name

def name
  self.class.name.split("::").last
end

def to_s

def to_s
  "#{message_with_url} (#{name})".tr("\n", " ").squeeze(" ").strip
end

def username

def username
  if repository.nil?
    "[YOUR USERNAME]"
  else
    repository.owner
  end
end