Sha256: c6f07b8a18c5e9a6332a64d8a54da5e6c2b1f9cbade6880c67ae64e47d96c92c
Contents?: true
Size: 1.35 KB
Versions: 9
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true require 'rest-client' require 'email_address' # Module for checking parts on a site module Checker class << self # Using Javascript fetch to retrieve URL. See https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch and # https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters for details # @return [Integer] Status code def link_status(href) return unless href init_options = "const myInit = { method: 'GET', credentials: 'same-origin', cache: 'default', mode: 'cors' };" get_js_code = "var url='#{href}'; #{init_options} return fetch(url, myInit).then(res=>{return res.status});" GenericTest.browser.execute_script get_js_code rescue Selenium::WebDriver::Error::JavascriptError return call_via_rest_client(href) unless GenericTest.only_javascript raise GenericTest::Error, "Failed to fetch url '#{href}'" end # @return [Nil, String] Nil if valid, string if error def valid_email?(email_address) EmailAddress.error email_address end # Use rest-client to try and get status of URL def call_via_rest_client(href) RestClient.get(href).code rescue RestClient::Exception => e return e.response&.code if e.respond_to? :response raise e end end end
Version data entries
9 entries across 9 versions & 1 rubygems