class SitemapCheck::Page
Attributes
error[R]
exists[R]
logger[RW]
request[RW]
uri[RW]
Public Class Methods
new(url, logger = Logger.new)
click to toggle source
# File lib/sitemap_check/page.rb, line 10 def initialize(url, logger = Logger.new) self.uri = URI(url) self.logger = logger replace_host self.request = Typhoeus::Request.new( self.url, method: request_method, followlocation: true, ) setup_callbacks end
Public Instance Methods
url()
click to toggle source
# File lib/sitemap_check/page.rb, line 27 def url uri.to_s end
Protected Instance Methods
replace_host()
click to toggle source
# File lib/sitemap_check/page.rb, line 36 def replace_host return unless (host = ENV["REPLACEMENT_HOST"]) uri.host = host end
request_method()
click to toggle source
# File lib/sitemap_check/page.rb, line 59 def request_method validate? ? :get : :head end
setup_callbacks()
click to toggle source
# File lib/sitemap_check/page.rb, line 41 def setup_callbacks # rubocop:disable Metrics/AbcSize request.on_complete do |response| if response.success? validate(response) @exists = true elsif response.timed_out? @exists = true logger.log " warning: request to #{url} timed out".magenta elsif response.code == 404 @exists = false logger.log " missing: #{url}".magenta else @error = true logger.log " error: (#{response.code}) while connecting to #{url}".magenta end end end
validate(response)
click to toggle source
# File lib/sitemap_check/page.rb, line 63 def validate(response) Validator.new(response, logger).validate if validate? end
validate?()
click to toggle source
# File lib/sitemap_check/page.rb, line 67 def validate? ENV["VALIDATE"] end