Class: YouTubeAddy
- Inherits:
-
Object
- Object
- YouTubeAddy
- 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
- .extract_video_id(youtube_url) ⇒ Object
- .has_invalid_chars?(youtube_url) ⇒ Boolean
- .youtube_embed_url(youtube_url, width = 420, height = 315) ⇒ Object
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
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_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 |