Module: Html2rss::Html::ArticleRules::Enclosure
- Defined in:
- lib/html2rss/html/article_rules/enclosure.rb
Overview
DOM-agnostic enclosure URL/type normalization.
Constant Summary collapse
- ARCHIVE_HREF_SUFFIXES =
Href path suffixes treated as download/archive enclosure links.
%w[.pdf .zip .tar.gz .tgz].freeze
Class Method Summary collapse
- .archive_href?(href) ⇒ Boolean
- .from_anchor(href, base_url) ⇒ Hash{Symbol => Object}?
- .from_iframe(src, base_url) ⇒ Hash{Symbol => Object}?
- .from_image(src, base_url) ⇒ Hash{Symbol => Object}?
- .from_media(src, type, base_url) ⇒ Hash{Symbol => Object}?
Class Method Details
.archive_href?(href) ⇒ Boolean
16 17 18 |
# File 'lib/html2rss/html/article_rules/enclosure.rb', line 16 def archive_href?(href) ARCHIVE_HREF_SUFFIXES.any? { |suffix| href.to_s.end_with?(suffix) } end |
.from_anchor(href, base_url) ⇒ Hash{Symbol => Object}?
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/html2rss/html/article_rules/enclosure.rb', line 57 def from_anchor(href, base_url) return if href.to_s.empty? abs = Url.from_relative(href, base_url) type = if href.end_with?('.pdf') Article::Enclosure.guess_content_type_from_url(abs) else 'application/zip' end { url: abs, type: } end |
.from_iframe(src, base_url) ⇒ Hash{Symbol => Object}?
46 47 48 49 50 51 |
# File 'lib/html2rss/html/article_rules/enclosure.rb', line 46 def from_iframe(src, base_url) return if src.to_s.empty? abs = Url.from_relative(src, base_url) { url: abs, type: Article::Enclosure.guess_content_type_from_url(abs, default: 'text/html') } end |
.from_image(src, base_url) ⇒ Hash{Symbol => Object}?
24 25 26 27 28 29 |
# File 'lib/html2rss/html/article_rules/enclosure.rb', line 24 def from_image(src, base_url) return if src.to_s.empty? abs = Url.from_relative(src, base_url) { url: abs, type: Article::Enclosure.guess_content_type_from_url(abs, default: 'image/jpeg') } end |
.from_media(src, type, base_url) ⇒ Hash{Symbol => Object}?
36 37 38 39 40 |
# File 'lib/html2rss/html/article_rules/enclosure.rb', line 36 def from_media(src, type, base_url) return if src.to_s.empty? { url: Url.from_relative(src, base_url), type: } end |