2016-09-02 5 views
0

ルビーがここで何をしているのか誰かが分かりますか?YouTubeの埋め込みリンク - コードでは何が起こっていますか?

私はこのコードを理解したいので、今後これを適応させることができます。 私がしたいことのひとつは、Vimeoにそれを適用することでしたが、何が起こっているのか理解する必要があるので、もっと学ぶことができます。

module ApplicationHelper 
    def youtube_embed(youtube_url) 
    if youtube_url[/youtu\.be\/([^\?]*)/] 
     youtube_id = $1 
    else 
     # Regex from # http://stackoverflow.com/questions/3452546/javascript-regex-how-to-get-youtube-video-id-from-url/4811367#4811367 
     youtube_url[/^.*((v\/)|(embed\/)|(watch\?))\??v?=?([^\&\?]*).*/] 
     youtube_id = $5 
    end 

    %Q{<iframe title="YouTube video player" src="https://www.youtube.com/embed/#{ youtube_id }?rel=0&enablejsapi=1" frameborder="0" allowfullscreen></iframe>} 
    end 
end 

答えて

0

このコードは、ビデオのYouTubeリンクからembet youtube playerのコードを作成しようとします。 このif youtube_url[/youtu\.be\/([^\?]*)/]は、指定されたURLに "youtu.be/...."形式があるかどうかを確認してから、ビデオIDを抽出します。

文字列は「youtu.be」で始まるしていない場合は、コードはいくつかのトリッキーな正規表現を使用しています($1/.../間(表現)正規表現の評価結果が含まれています)(以下のリンクは、コード内でのStackOverflowする場合はその説明ypuは見つけることができます) $5からもビデオIDを取得します。

そして、それはそのビデオの埋め込みyoutubeプレーヤーのhtmlコードである文字列を返します。この文字列の最後にビデオIDを挿入します。#{youtube_id}

関連する問題