Module: HTMLProofer::Configuration
- Defined in:
- lib/html_proofer/configuration.rb
Constant Summary collapse
- DEFAULT_TESTS =
["Links", "Images", "Scripts"].freeze
- PROOFER_DEFAULTS =
{ allow_hash_href: true, allow_missing_href: false, assume_extension: ".html", check_external_hash: true, check_internal_hash: true, checks: DEFAULT_TESTS, directory_index_file: "index.html", disable_external: false, ignore_empty_alt: true, ignore_empty_mailto: false, ignore_files: [], ignore_missing_alt: false, ignore_status_codes: [], ignore_urls: [], enforce_https: true, extensions: [".html"], log_level: :info, only_4xx: false, swap_attributes: {}, swap_urls: {}, }.freeze
- TYPHOEUS_DEFAULTS =
{ followlocation: true, headers: { "User-Agent" => "Mozilla/5.0 (compatible; HTML Proofer/#{HTMLProofer::VERSION}; +https://github.com/gjtorikian/html-proofer)", "Accept" => "application/xml,application/xhtml+xml,text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5", }, connecttimeout: 10, timeout: 30, }.freeze
- HYDRA_DEFAULTS =
{ max_concurrency: 50, }.freeze
- PARALLEL_DEFAULTS =
{ enable: true, }.freeze
- CACHE_DEFAULTS =
{}.freeze
Class Method Summary collapse
- .generate_defaults(opts) ⇒ Object
- .parse_json_option(option_name, config, symbolize_names: true) ⇒ Object
- .to_regex?(item) ⇒ Boolean
Class Method Details
.generate_defaults(opts) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/html_proofer/configuration.rb', line 51 def generate_defaults(opts) = PROOFER_DEFAULTS.merge(opts) [:typhoeus] = HTMLProofer::Configuration::TYPHOEUS_DEFAULTS.merge(opts[:typhoeus] || {}) [:hydra] = HTMLProofer::Configuration::HYDRA_DEFAULTS.merge(opts[:hydra] || {}) [:parallel] = HTMLProofer::Configuration::PARALLEL_DEFAULTS.merge(opts[:parallel] || {}) [:cache] = HTMLProofer::Configuration::CACHE_DEFAULTS.merge(opts[:cache] || {}) .delete(:src) end |
.parse_json_option(option_name, config, symbolize_names: true) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/html_proofer/configuration.rb', line 73 def parse_json_option(option_name, config, symbolize_names: true) raise ArgumentError, "Must provide an option name in string format." unless option_name.is_a?(String) raise ArgumentError, "Must provide an option name in string format." if option_name.strip.empty? return {} if config.nil? raise ArgumentError, "Must provide a JSON configuration in string format." unless config.is_a?(String) return {} if config.strip.empty? begin JSON.parse(config, { symbolize_names: symbolize_names }) rescue StandardError raise ArgumentError, "Option '#{option_name} did not contain valid JSON." end end |
.to_regex?(item) ⇒ Boolean
65 66 67 68 69 70 71 |
# File 'lib/html_proofer/configuration.rb', line 65 def to_regex?(item) if item.start_with?("/") && item.end_with?("/") Regexp.new(item[1...-1]) else item end end |