Class: YouTubeAddy

Inherits:
Object
  • Object
show all
Defined in:
lib/youtube_addy.rb

Constant Summary collapse

URL_Formats =
{
    regular: /^(https?:\/\/)?(www\.)?youtube.com\/watch\?v=([^&]+)/,
    shortened: /^(https?:\/\/)?(www\.)?youtu.be\/([^&]+)/,
    invalid_chars: /[^a-zA-Z0-9\:\/\?\=\&\$\-\_\.\+\!\*\'\(\)\,]/
}

Class Method Summary collapse

Class Method Details

.extract_video_id(youtube_url) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/youtube_addy.rb', line 12

def self.extract_video_id(youtube_url)
  return nil if has_invalid_chars?(youtube_url)

  if match = URL_Formats[:regular].match(youtube_url)
    return match[3]
  elsif match = URL_Formats[:shortened].match(youtube_url)
    return match[3]
  end

  nil
end

.has_invalid_chars?(youtube_url) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/youtube_addy.rb', line 8

def self.has_invalid_chars?(youtube_url)
  !URL_Formats[:invalid_chars].match(youtube_url).nil?
end

.youtube_embed_url(youtube_url, width = 420, height = 315) ⇒ Object



24
25
26
27
# File 'lib/youtube_addy.rb', line 24

def self.youtube_embed_url(youtube_url, width = 420, height = 315)
  vid_id = extract_video_id(youtube_url)
  %(<iframe width="#{width}" height="#{height}" src="http://www.youtube.com/embed/#{vid_id}" frameborder="0" allowfullscreen></iframe>)
end