Class: Html2rss::LinkDestination::NoisePolicy
- Inherits:
-
Object
- Object
- Html2rss::LinkDestination::NoisePolicy
- Defined in:
- lib/html2rss/link_destination/noise_policy.rb
Overview
Noise / junk chrome eligibility for SST anchors (port of LinkHeuristics#noise_anchor?).
Constant Summary collapse
- ICON_NAMES =
Child tag names that mark icon-only anchors as noise.
%i[img svg].freeze
Instance Method Summary collapse
-
#initialize(link_resolver:) ⇒ NoisePolicy
constructor
A new instance of NoisePolicy.
-
#noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false, utility_landmark_ancestor: false) ⇒ Boolean
rubocop:disable Metrics/CyclomaticComplexity, Metrics/ParameterLists, Metrics/PerceivedComplexity, Lint/UnusedMethodArgument.
Constructor Details
#initialize(link_resolver:) ⇒ NoisePolicy
Returns a new instance of NoisePolicy.
12 13 14 |
# File 'lib/html2rss/link_destination/noise_policy.rb', line 12 def initialize(link_resolver:) @link_resolver = link_resolver end |
Instance Method Details
#noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false, utility_landmark_ancestor: false) ⇒ Boolean
rubocop:disable Metrics/CyclomaticComplexity, Metrics/ParameterLists, Metrics/PerceivedComplexity, Lint/UnusedMethodArgument
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/html2rss/link_destination/noise_policy.rb', line 25 def noise_anchor?(text:, destination_facts:, anchor: nil, container: nil, heading_anchor: false, utility_landmark_ancestor: false) return true unless destination_facts destination_facts.taxonomy_path || short_utility_label?(text, destination_facts) || recommended_chrome?(text, destination_facts, heading_anchor:) || (@link_resolver.utility_prefix_text?(text) && destination_facts.high_confidence_utility_destination) || (@link_resolver.utility_text?(text) && destination_facts.vanity_path) || utility_text_chrome?(text, destination_facts, heading_anchor:) || icon_only_anchor?(anchor, text) || utility_landmark_ancestor end |