Class: Html2rss::Selectors::PostProcessors::HtmlTransformers::TransformUrlsToAbsoluteOnes
- Inherits:
-
Object
- Object
- Html2rss::Selectors::PostProcessors::HtmlTransformers::TransformUrlsToAbsoluteOnes
- Defined in:
- lib/html2rss/selectors/post_processors/html_transformers/transform_urls_to_absolute_ones.rb
Overview
Transformer that converts relative URLs to absolute URLs within specified HTML elements.
Constant Summary collapse
- URL_ELEMENTS_WITH_URL_ATTRIBUTE =
{ 'a' => :href, # Visible link 'img' => :src, # Visible image 'iframe' => :src, # Embedded frame (visible content) 'audio' => :src, # Can show controls, so potentially visible 'video' => :src # Video player is visible }.freeze
Instance Method Summary collapse
-
#call(node_name:, node:, **_env) ⇒ Object
Transforms URLs to absolute ones.
-
#initialize(channel_url) ⇒ TransformUrlsToAbsoluteOnes
constructor
A new instance of TransformUrlsToAbsoluteOnes.
Constructor Details
#initialize(channel_url) ⇒ TransformUrlsToAbsoluteOnes
Returns a new instance of TransformUrlsToAbsoluteOnes.
18 19 20 |
# File 'lib/html2rss/selectors/post_processors/html_transformers/transform_urls_to_absolute_ones.rb', line 18 def initialize(channel_url) @channel_url = channel_url end |
Instance Method Details
#call(node_name:, node:, **_env) ⇒ Object
Transforms URLs to absolute ones.
24 25 26 27 28 29 30 |
# File 'lib/html2rss/selectors/post_processors/html_transformers/transform_urls_to_absolute_ones.rb', line 24 def call(node_name:, node:, **_env) return unless URL_ELEMENTS_WITH_URL_ATTRIBUTE.key?(node_name) url_attribute = URL_ELEMENTS_WITH_URL_ATTRIBUTE[node_name] url = node[url_attribute] node[url_attribute] = Url.from_relative(url, @channel_url).to_s end |