Sha256: 79181ae556a1e7da5093d4695a3b929cc9282850bbd625359a87c7a045c7f16d

Contents?: true

Size: 680 Bytes

Versions: 4

Compression:

Stored size: 680 Bytes

Contents

require "film_snob/version"
require "film_snob/url_to_video"
require "film_snob/exceptions"

class FilmSnob
  attr_reader :url, :video

  def initialize(url)
    @url = url
    @video = FilmSnob::UrlToVideo.new(url).video
  end

  def site
    complain_about_bad_urls!(:site)
    video.site
  end

  def id
    complain_about_bad_urls!(:id)
    video.id
  end

  def clean_url
    complain_about_bad_urls!(:clean_url)
    video.clean_url
  end

  def watchable?
    !video.nil?
  end

  private

    def complain_about_bad_urls!(method)
      raise NotSupportedURLError.new("Can not call FilmSnob##{method} because #{url} is not a supported URL.") unless watchable?
    end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
film_snob-0.1.4 lib/film_snob.rb
film_snob-0.1.3 lib/film_snob.rb
film_snob-0.1.2 lib/film_snob.rb
film_snob-0.1.1 lib/film_snob.rb