Sha256: d5e0ee41f9bba880045811eae8de8e4189d0e1c93e0e6629b979aa6ac094979d

Contents?: true

Size: 875 Bytes

Versions: 2

Compression:

Stored size: 875 Bytes

Contents

require 'action_view'

class Videos::Video
  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::TextHelper
  include ActionView::Context
  attr_reader :uri
  attr_accessor :options

  DEFAULTS = {
    width: 640,
    height: 360,
    controls: true
  }
  def initialize(uri,options={})
    @uri = uri
    @options = DEFAULTS.merge(options)
  end

  def embed_code
    content_tag(:video, '', controls: controls) do
      concat(tag(:source, src: @uri.to_s, type: @uri.content_type))
      concat(content_tag(:span, sorry_message, class: 'sorry'))
    end
  end
  alias_method :to_html, :embed_code

  def sorry_message
    "I'm sorry; your browser doesn't support HTML5 video."
  end

  def width
    @options[:width]
  end

  def height
    @options[:height]
  end

  def controls
    @options[:controls]
  end

  def provider
    @uri.provider
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rb42-videos-1.0.4 lib/videos/video.rb
rb42-videos-1.0.3 lib/videos/video.rb