Sha256: 5ff5adc3a94a495f4d3ab948f435ee197eeb1d4afe213d880f0cd52b1ef4117f

Contents?: true

Size: 728 Bytes

Versions: 8

Compression:

Stored size: 728 Bytes

Contents

# frozen_string_literal: true

module Kitchen::Directions::BakeIframes
  class V1
    def bake(outer_element:)
      iframes = outer_element.search('iframe')
      return unless iframes.any?

      iframes.each do |iframe|
        next if iframe.has_class?('os-is-iframe')

        iframe.wrap('<div class="os-has-iframe" data-type="alternatives">')
        iframe.add_class('os-is-iframe')
        link_ref = iframe[:src]
        next unless link_ref

        iframe = iframe.parent
        iframe.add_class('os-has-link')
        iframe.prepend(child:
          <<~HTML
            <a class="os-is-link" href="#{link_ref}" target="_window">#{I18n.t(:iframe_link_text)}</a>
          HTML
        )
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
openstax_kitchen-19.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-18.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-17.1.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-17.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-16.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-15.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-14.0.0 lib/kitchen/directions/bake_iframes/v1.rb
openstax_kitchen-13.0.0 lib/kitchen/directions/bake_iframes/v1.rb