Sha256: 03cfd36674241c0ca41611f8d8bd69495e35d75e29993ef814eb966822f4428b

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

module Embeddable::ViewHelpers
  def embed_video(embeddable, width, height, options = {})
    if options[:name] && !embeddable.respond_to?("#{options[:name]}_id")
      raise "Can't find embeddable name. Did you mean: \"#{embeddable.class.embeddables.last.inspect}\"?"
    end
    name = options[:name] || embeddable.class.embeddables.first
    source = embeddable.send("#{name}_source")
    render_embeddable_partial(embeddable, name, source, width, height)
  end

  def render_embeddable_partial(embeddable, name, source, width, height)
    attributes = { id: embeddable.send("#{name}_id"), width: width, height: height }
    if embeddable.send("#{name}_on_youtube?")
      render 'embeddable/partials/youtube', attributes
    elsif embeddable.send("#{name}_on_vimeo?")
      render 'embeddable/partials/vimeo', attributes
    elsif embeddable.send("#{name}_on_dailymotion?")
      render 'embeddable/partials/dailymotion', attributes
    elsif embeddable.send("#{name}_on_veoh?")
      render 'embeddable/partials/veoh', attributes
    elsif embeddable.send("#{name}_on_vippy?")
      render 'embeddable/partials/vippy', attributes
    elsif embeddable.send("#{name}_on_liveleak?")
      # not supported
      link_to embeddable.send(source), embeddable.send(source)
    elsif embeddable.send("#{name}_on_brightcove?")
      render 'embeddable/partials/brightcove', attributes
    else
      link_to embeddable.send(source), embeddable.send(source)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embeddable-0.0.8 lib/embeddable/view_helpers.rb