Class: Crawlscope::Rules::Links

Inherits:
Object
  • Object
show all
Defined in:
lib/crawlscope/rules/links.rb

Constant Summary collapse

"main a[href], article a[href]"
INTERNAL_PATH_PREFIXES_TO_SKIP =
["/rails/", "/cdn-cgi/"].freeze
["mailto:", "tel:", "javascript:", "data:"].freeze
MAX_SOURCES_IN_ERROR =
3
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLinks

Returns a new instance of Links.



16
17
18
# File 'lib/crawlscope/rules/links.rb', line 16

def initialize
  @code = :links
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



14
15
16
# File 'lib/crawlscope/rules/links.rb', line 14

def code
  @code
end

Instance Method Details

#call(urls:, pages:, issues:, context:) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/crawlscope/rules/links.rb', line 20

def call(urls:, pages:, issues:, context:)
  @allowed_statuses = context.fetch(:allowed_statuses)
  @base_url = context.fetch(:base_url)
  @resolve_target = context.fetch(:resolve_target)
  @base_host = URI.parse(@base_url).host

  links = extract_links(pages)
  return if links.empty?

  resolved_links = resolve_links(links, issues)
  validate_inbound_counts(urls, pages, resolved_links, issues)
end