Class: Html2rss::Rendering::MediaRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/html2rss/rendering/media_renderer.rb

Overview

Factory: picks the appropriate renderer for a given enclosure or fallback image.

Class Method Summary collapse

Class Method Details

.create_renderer_for_type(type, url:, title:) ⇒ ImageRenderer, ...

Parameters:

  • type (String, nil)

    enclosure MIME type

  • url (String, Html2rss::Url)

    enclosure URL

  • title (String, nil)

    title used by image renderer

Returns:



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/html2rss/rendering/media_renderer.rb', line 23

def self.create_renderer_for_type(type, url:, title:)
  case type
  when %r{^image/}
    ImageRenderer.new(url:, title:)
  when %r{^video/}
    VideoRenderer.new(url:, type:)
  when %r{^audio/}
    AudioRenderer.new(url:, type:)
  when 'application/pdf'
    PdfRenderer.new(url:)
  end
end

.for(enclosure:, image:, title:) ⇒ ImageRenderer, ...

Parameters:

Returns:



11
12
13
14
15
16
# File 'lib/html2rss/rendering/media_renderer.rb', line 11

def self.for(enclosure:, image:, title:)
  return ImageRenderer.new(url: image, title:) if enclosure.nil? && image
  return nil unless enclosure

  create_renderer_for_type(enclosure.type, url: enclosure.url, title:)
end