Sha256: 2653ecbde5ab075fdfedf2152e92be46391478c58f1610e511ae8fe3ac6c9495

Contents?: true

Size: 601 Bytes

Versions: 14

Compression:

Stored size: 601 Bytes

Contents

# frozen_string_literal: true

module Decidim
  class IframeDisabler
    def initialize(text, _options = {})
      @text = text
    end

    def perform
      @document = Nokogiri::HTML::DocumentFragment.parse(@text)
      disable_iframes(@document)
      document.to_html
    end

    private

    attr_reader :document

    def disable_iframes(node)
      if node.name == "iframe"
        orig_node = node.to_s
        node.replace(%(<div class="disabled-iframe"><!-- #{orig_node} --></div>))
      end

      node.children.each do |child|
        disable_iframes(child)
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
decidim-core-0.27.9 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.8 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.7 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.6 app/services/decidim/iframe_disabler.rb
decidim-core-0.28.0 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.5 app/services/decidim/iframe_disabler.rb
decidim-core-0.28.0.rc5 app/services/decidim/iframe_disabler.rb
decidim-core-0.28.0.rc4 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.4 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.3 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.2 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.1 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.0 app/services/decidim/iframe_disabler.rb
decidim-core-0.27.0.rc2 app/services/decidim/iframe_disabler.rb