Sha256: cda300d51e58e39c0bd69267d952759c6c5a03efdfe053c8cb6e9a96cf672447
Contents?: true
Size: 745 Bytes
Versions: 5
Compression:
Stored size: 745 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, options={}) @url = url @video = UrlToVideo.new(url, options).video end def watchable? !video.nil? end def method_missing(message) if delegated_video_methods.include?(message) complain_about_bad_urls!(message) video.send(message) else super end end private def delegated_video_methods [:site, :id, :clean_url, :title, :html] end 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
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
film_snob-0.3.4 | lib/film_snob.rb |
film_snob-0.3.3 | lib/film_snob.rb |
film_snob-0.3.2 | lib/film_snob.rb |
film_snob-0.3.1 | lib/film_snob.rb |
film_snob-0.3.0 | lib/film_snob.rb |