Class: Crawlscope::Rules::Links
- Inherits:
-
Object
- Object
- Crawlscope::Rules::Links
- Defined in:
- lib/crawlscope/rules/links.rb
Defined Under Namespace
Classes: LinkTarget
Constant Summary collapse
- LINK_SELECTORS =
"a[href]"- INTERNAL_PATH_PREFIXES_TO_SKIP =
["/rails/", "/cdn-cgi/"].freeze
- LINK_SCHEMES_TO_SKIP =
["mailto:", "tel:", "javascript:", "data:"].freeze
- MAX_SOURCES_IN_ERROR =
3- MIN_INBOUND_ANCHOR_LINKS =
1- MIN_DOFOLLOW_INBOUND_LINKS =
2
Instance Attribute Summary collapse
-
#code ⇒ Object
readonly
Returns the value of attribute code.
Instance Method Summary collapse
- #call(urls:, pages:, issues:, context:) ⇒ Object
-
#initialize ⇒ Links
constructor
A new instance of Links.
Constructor Details
#initialize ⇒ Links
Returns a new instance of Links.
17 18 19 |
# File 'lib/crawlscope/rules/links.rb', line 17 def initialize @code = :links end |
Instance Attribute Details
#code ⇒ Object (readonly)
Returns the value of attribute code.
15 16 17 |
# File 'lib/crawlscope/rules/links.rb', line 15 def code @code end |
Instance Method Details
#call(urls:, pages:, issues:, context:) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/crawlscope/rules/links.rb', line 21 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) validate_url_hygiene(urls, links, issues) resolved_links = resolve_links(links, issues) validate_nofollow_outgoing_links(links, issues) validate_http_internal_links(links, issues) validate_pages_with_no_outgoing_links(urls, pages, links, issues) validate_indexable_pages_missing_from_sitemap(urls, resolved_links, issues) validate_inbound_counts(urls, pages, resolved_links, issues) validate_canonical_targets(urls, pages, resolved_links, issues) end |