Class: OembedReceiver

Inherits:
Object
  • Object
show all
Defined in:
app/services/oembed_receiver.rb

Overview

Receiver for OEmbed-wrapped content

Constant Summary collapse

PATTERN =
%r{<oembed url="([^"]+)"></oembed>}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url = '') ⇒ OembedReceiver

Returns a new instance of OembedReceiver.

Parameters:

  • url (String) (defaults to: '')


10
11
12
# File 'app/services/oembed_receiver.rb', line 10

def initialize(url = '')
  @url = url
end

Instance Attribute Details

#urlObject

Returns the value of attribute url.



7
8
9
# File 'app/services/oembed_receiver.rb', line 7

def url
  @url
end

Class Method Details

.convert(text) ⇒ Object

Parameters:

  • text (String)


15
16
17
18
19
20
21
# File 'app/services/oembed_receiver.rb', line 15

def self.convert(text)
  receiver = new
  text.gsub(PATTERN) do |fragment|
    receiver.url = fragment.match(PATTERN)[1]
    receiver.code
  end
end

Instance Method Details

#codeObject



23
24
25
26
# File 'app/services/oembed_receiver.rb', line 23

def code
  @host = URI.parse(@url).host
  receive url_for_host
end

#fallbackObject



28
29
30
31
# File 'app/services/oembed_receiver.rb', line 28

def fallback
  attributes = %(rel="external nofollow noopener noreferrer" target="_blank")
  %(<a href="#{@url}" #{attributes}>#{@host}</a>)
end