class SLA::Checker
Attributes
check_external[R]
ignore[R]
max_depth[R]
Public Class Methods
new(max_depth: 5, ignore: nil, check_external: false)
click to toggle source
# File lib/sla/checker.rb, line 5 def initialize(max_depth: 5, ignore: nil, check_external: false) @max_depth = max_depth @ignore = ignore @check_external = check_external end
Public Instance Methods
check(page) { |:source, page| ... }
click to toggle source
# File lib/sla/checker.rb, line 11 def check(page, &block) return if skip? page yield [:source, page] if block_given? pages = page_list page pages.each do |page| if checked.has_key? page.url or ignore? page yield [:skip, page] if block_given? else checked[page.url] = true yield [:check, page] if block_given? end end pages.each do |page| next if deeply_checked.has_key? page.url deeply_checked[page.url] = true next if page.external? check page, &block end end
Private Instance Methods
checked()
click to toggle source
# File lib/sla/checker.rb, line 63 def checked @checked ||= {} end
deeply_checked()
click to toggle source
# File lib/sla/checker.rb, line 59 def deeply_checked @deeply_checked ||= {} end
ignore?(page)
click to toggle source
# File lib/sla/checker.rb, line 49 def ignore?(page) return false unless ignore ignore.each do |text| return true if page.url.include? text end false end
page_list(page)
click to toggle source
# File lib/sla/checker.rb, line 37 def page_list(page) if check_external page.pages else page.pages.reject { |page| page.external? } end end
skip?(page)
click to toggle source
# File lib/sla/checker.rb, line 45 def skip?(page) ignore?(page) or page.depth >= max_depth or !page.valid? end