Sha256: dd46d2cee99264329efab0d146c0f6dd60649b338250db89d3b1dc12b222e8a5

Contents?: true

Size: 1.51 KB

Versions: 14

Compression:

Stored size: 1.51 KB

Contents

# frozen_string_literal: true

module GitHubPages
  module HealthCheck
    class Error < StandardError
      DOCUMENTATION_BASE = "https://help.github.com".freeze
      DOCUMENTATION_PATH = "/categories/github-pages-basics/".freeze
      LOCAL_ONLY = false # Error is only used when running locally

      attr_reader :repository, :domain

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

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

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

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

      # 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
      alias message_formatted message_with_url

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

      private

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

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

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

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

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
github-pages-health-check-1.16.1 lib/github-pages-health-check/error.rb
github-pages-health-check-1.16.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.15.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.14.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.13.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.12.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.11.1 lib/github-pages-health-check/error.rb
github-pages-health-check-1.11.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.10.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.9.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.8.1 lib/github-pages-health-check/error.rb
github-pages-health-check-1.8.0 lib/github-pages-health-check/error.rb
github-pages-health-check-1.7.4 lib/github-pages-health-check/error.rb
github-pages-health-check-1.7.3 lib/github-pages-health-check/error.rb