Sha256: 6eda8dfbc87aae2d48513d09ddd84d17bb7c197ccc6df29a6913c056699c2efb
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
module UrlToMediaTag VERSION = File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip DEFAULTS = { :width => 640, :height => 480 } def self.video_iframe(url, options) options = {:src => url, :class => "url-to-media-tag-video", :frameborder => 0}.merge(options) tag(:iframe, options) end def self.tag(name, options) options = options.map{|k,v| "#{k}=\"#{v}\"" }.sort.join(" ") %{<#{name} #{options}></#{name}>} end def self.convert(url, options={}) options = DEFAULTS.merge(options) # prevent any kind of html or xss return if url.include?('>') or url.include?('<') result = case url # youtube when /http:\/\/(www.)?youtube\.com\/watch\?v=([A-Za-z0-9._%-]*)(\&\S+)?|http:\/\/(www.)?youtu\.be\/([A-Za-z0-9._%-]*)?/ youtube_id = $2 || $5 video_iframe "http://www.youtube.com/embed/#{youtube_id}", options # vimeo when /http:\/\/(www.)?vimeo\.com\/([A-Za-z0-9._%-]*)((\?|#)\S+)?/ vimeo_id = $2 show_title = "title=0" unless options.delete(:show_title) show_byline = "byline=0" unless options.delete(:show_byline) show_portrait = "portrait=0" unless options.delete(:show_portrait) query_string_variables = [show_title, show_byline, show_portrait].compact.join("&") query_string = "?" + query_string_variables unless query_string_variables.empty? video_iframe "http://player.vimeo.com/video/#{vimeo_id}#{query_string}", options # image when /https?:\/\/\S+\.(jpe?g|gif|png|bmp|tif)(\?\S+)?/i tag(:img, options.merge(:src => $&)) end result = result.html_safe if result.respond_to?(:html_safe) result end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
url_to_media_tag-0.1.2 | lib/url_to_media_tag.rb |