class SitemapCheck

Constants

VERSION

Attributes

exit_code[RW]
logger[RW]
sitemaps[RW]
start_time[RW]

Public Class Methods

check(url) click to toggle source
# File lib/sitemap_check.rb, line 9
def self.check(url)
  $stdout.sync = true
  new(url).check
end
new(check_url) click to toggle source
# File lib/sitemap_check.rb, line 14
def initialize(check_url)
  self.start_time = Time.now
  self.exit_code = 0
  check_url = check_url
  puts "Expanding Sitemaps from #{check_url}"
  self.sitemaps = Sitemap.new(check_url).sitemaps
  Typhoeus::Config.user_agent = "SitemapCheckbot/#{VERSION} (+https://github.com/reevoo/sitemap_check)"
end

Public Instance Methods

check() click to toggle source
# File lib/sitemap_check.rb, line 23
def check
  check_indexes
  check_pages
  stats
  exit exit_code
end

Private Instance Methods

a_ok(sitemap) click to toggle source
# File lib/sitemap_check.rb, line 89
def a_ok(sitemap)
  puts "  checked #{sitemap.checked} pages and everything was ok".green.bold
end
check_indexes() click to toggle source
# File lib/sitemap_check.rb, line 53
def check_indexes
  sitemaps.reject(&:exists?).each do |sitemap|
    puts "  #{sitemap.url} does not exist".red.bold
    self.exit_code = 1
  end
  puts ""
end
check_pages() click to toggle source
# File lib/sitemap_check.rb, line 65
def check_pages
  good_sitemaps.each { |sitemap| check_pages_in(sitemap) }
end
check_pages_in(sitemap) click to toggle source
# File lib/sitemap_check.rb, line 69
def check_pages_in(sitemap)
  puts "Checking #{sitemap.url}"
  sitemap.check_pages
  if sitemap.missing_pages.any?
    missing_pages(sitemap)
  else
    if sitemap.checked > 0
      a_ok(sitemap)
    else
      nothing_doing
    end
  end
  puts ""
end
checked_pages() click to toggle source
# File lib/sitemap_check.rb, line 49
def checked_pages
  sitemaps.map(&:checked).reduce(&:+)
end
good_sitemaps() click to toggle source
# File lib/sitemap_check.rb, line 61
def good_sitemaps
  sitemaps.select(&:exists?)
end
missing_pages(sitemap) click to toggle source
# File lib/sitemap_check.rb, line 84
def missing_pages(sitemap)
  self.exit_code = 1
  puts "  checked #{sitemap.checked} pages and #{sitemap.missing_pages.count} were missing".red.bold
end
nothing_doing() click to toggle source
# File lib/sitemap_check.rb, line 93
def nothing_doing
  puts "  this sitemap did not contain any pages".green
end
pages_per_second() click to toggle source
# File lib/sitemap_check.rb, line 41
def pages_per_second
  checked_pages / time_taken
end
stats() click to toggle source
# File lib/sitemap_check.rb, line 36
def stats
  puts "checked #{sitemaps.count} sitemaps and #{checked_pages} pages in #{time_taken} seconds"
  puts "thats #{pages_per_second} pages per second"
end
time_taken() click to toggle source
# File lib/sitemap_check.rb, line 45
def time_taken
  Time.now - start_time
end