Class: SpreeCmCommissioner::UrlEmbed::YoutubeEmbed

Inherits:
Object
  • Object
show all
Defined in:
app/services/spree_cm_commissioner/url_embed/youtube_embed.rb

Constant Summary collapse

PATTERNS =
[
  %r{youtube\.com/watch\?v=([a-zA-Z0-9_-]+)},
  %r{youtu\.be/([a-zA-Z0-9_-]+)},
  %r{youtube\.com/embed/([a-zA-Z0-9_-]+)},
  %r{youtube\.com/shorts/([a-zA-Z0-9_-]+)},
  %r{youtube\.com/live/([a-zA-Z0-9_-]+)},
  %r{youtube\.com/v/([a-zA-Z0-9_-]+)}
].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ YoutubeEmbed

Returns a new instance of YoutubeEmbed.



19
20
21
# File 'app/services/spree_cm_commissioner/url_embed/youtube_embed.rb', line 19

def initialize(url)
  @url = url
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



4
5
6
# File 'app/services/spree_cm_commissioner/url_embed/youtube_embed.rb', line 4

def url
  @url
end

Class Method Details

.call(url) ⇒ Object



15
16
17
# File 'app/services/spree_cm_commissioner/url_embed/youtube_embed.rb', line 15

def self.call(url)
  new(url).call
end

Instance Method Details

#callObject



23
24
25
26
27
28
29
30
# File 'app/services/spree_cm_commissioner/url_embed/youtube_embed.rb', line 23

def call
  return nil if url.blank?

  video_id = extract_video_id(url.strip)
  return nil unless video_id

  "https://www.youtube.com/embed/#{video_id}"
end