Module: AnimateIt::EmbedHelper

Defined in:
lib/animate_it/embed_helper.rb

Instance Method Summary collapse

Instance Method Details

#animate_it_player(composition_id, title: nil, **attributes) ⇒ Object

Raises:

  • (ArgumentError)


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/animate_it/embed_helper.rb', line 3

def animate_it_player(composition_id, title: nil, **attributes)
  AnimateIt.load_compositions!
  composition = AnimateIt.registry.fetch(composition_id)
  raise ArgumentError, "AnimateIt composition #{composition_id.inspect} is not public" unless composition.public_player?

  prefix = respond_to?(:request) && request ? request.script_name.to_s : ""
  source = "#{prefix}#{AnimateIt.config.mount_path}/public/compositions/" \
           "#{ERB::Util.url_encode(composition.id)}/player"
  defaults = {
    src: source,
    title: title || composition.id,
    loading: "lazy",
    allow: "autoplay; fullscreen",
    allowfullscreen: true,
    style: "border:0;width:100%;aspect-ratio:#{composition.width}/#{composition.height}"
  }
  tag.iframe(**defaults, **attributes)
end