Sha256: 50384836df2fd2b82d335c1ce4d294ab818e08cac7592c665993efe88b264740

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

# Tag for injecting HTML5 audio player. Example tag:
#   {{ cms:audio "path/to/audio", style: "height: 22px; width: 80%" }}
# This expands into:
#   <audio controls src="path/to/audio"></audio>
# To customize your player style, add a 'audioplayer' class to your CSS, e.g
# .audioplayer {
#   border-radius: 6px;
#   height: 22px;
#   width: 60%;
#   margin: 2px 0 2px 8px;
#   padding: 0;
# }
# and/or pass in style overrides with the 'style' parameter, as above

class Occams::Content::Tag::Audio < Occams::Content::Tag
  attr_reader :path, :locals

  def initialize(context:, params: [], source: nil)
    super
    options = params.extract_options!
    @path   = params[0]
    @style = ''
    @style = "<style>.audioplayer {#{options['style']}}</style>" if options['style']
    @style = options['style']

    return if @path.present?

    raise Error, 'Missing path for audio tag'
  end

  def content
    format("#{@style}<audio controls class=\"audioplayer\" src=#{@path}></audio>")
  end
end

Occams::Content::Renderer.register_tag(
  :audio, Occams::Content::Tag::Audio
)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
occams-1.0.4 lib/occams/content/tags/audio.rb