class SitemapCheck::Validator
Constants
- LIMIT
Attributes
message_count[RW]
logger[RW]
response[RW]
Public Class Methods
new(response, logger = Logger.new)
click to toggle source
# File lib/sitemap_check/validator.rb, line 14 def initialize(response, logger = Logger.new) self.logger = logger self.response = response self.class.message_count ||= 0 end
Public Instance Methods
validate()
click to toggle source
# File lib/sitemap_check/validator.rb, line 20 def validate validator = W3CValidators::NuValidator.new result = validator.validate_text(response.body) return if result.errors.empty? && result.warnings.empty? log_url log_errors(result) log_warnings(result) fail_if_too_many_messages end
Private Instance Methods
fail_if_too_many_messages()
click to toggle source
# File lib/sitemap_check/validator.rb, line 56 def fail_if_too_many_messages error = "Stopping because there are more than #{LIMIT} messages." fail error if self.class.message_count > LIMIT end
log_errors(result)
click to toggle source
# File lib/sitemap_check/validator.rb, line 38 def log_errors(result) result.errors.each do |e| logger.log " ERROR: #{e.message}".red logger.log " #{e.source.inspect}" self.class.message_count += 1 end end
log_url()
click to toggle source
# File lib/sitemap_check/validator.rb, line 33 def log_url logger.log "-" * 80 logger.log response.effective_url.cyan end
log_warnings(result)
click to toggle source
# File lib/sitemap_check/validator.rb, line 47 def log_warnings(result) result.warnings.each do |w| logger.log " WARNING: #{w.message}".yellow logger.log " #{w.source.inspect}" self.class.message_count += 1 end end