Sha256: 9cee963782d665bd70402e4e0ce1abcb6c591b5f50e5333ee70798d0cca21b77

Contents?: true

Size: 696 Bytes

Versions: 1

Compression:

Stored size: 696 Bytes

Contents

require "youtube_images/version"

module YouTubeImages

  class IncorrectYouTubeID < Exception; end

  def self.For(id_or_url, secure=false)
    id = id_or_url[/[\w]+$/]

    raise IncorrectYouTubeID if id.nil? || (id.length < 11)

    url_prefix = url_constructor(secure, id)

    {
      default: "#{url_prefix}/default.jpg",
      medium:  "#{url_prefix}/hqdefault.jpg",
      high:    "#{url_prefix}/mqdefault.jpg",
      maximum: "#{url_prefix}/maxresdefault.jpg"
    }
  end

  private

  def self.uri
    "img.youtube.com/vi"
  end

  def self.protocol(secure)
    secure ? "https" : "http"
  end

  def self.url_constructor(secure, id)
    "#{protocol(secure)}://#{uri}/#{id}"
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
youtube_images-1.0.0 lib/youtube_images.rb