module Embeddable::ViewHelpers

Public Instance Methods

embed_video(embeddable, width, height, options = {}) click to toggle source
# File lib/embeddable/view_helpers.rb, line 2
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
render_embeddable_partial(embeddable, name, source, width, height) click to toggle source
# File lib/embeddable/view_helpers.rb, line 11
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