Sha256: ca882b3beb319318912ce391e9be97d5a28e3d81b8061aabf5b28266dc0d5e43

Contents?: true

Size: 718 Bytes

Versions: 4

Compression:

Stored size: 718 Bytes

Contents

module Kms
  class TemplateProcessor
    def initialize(template)
      @template = template
    end

    def process
      template_document = Nokogiri::HTML @template.content
      template_document.search('script, link[rel="stylesheet"]').each do |tag|
        tag.replace "{{ '#{File.basename(tag['src'] || tag['href'])}' | asset_tag }}"
      end
      # can't use Nokogiri for images because of Nokogiri escaping
      template_document.search('img').each do |tag|
        tag.replace %Q(<img src="{{ '#{File.basename(tag['src'])}' | asset_path }}" alt="#{tag['alt']}">)
      end
      template_document.to_html.gsub(/(%7B|%7D|%20|%7C)/,'%7B' => '{', '%7D' => '}', '%20' => ' ', '%7C' => '|')
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kms-1.2.0 app/services/kms/template_processor.rb
kms-1.1.0 app/services/kms/template_processor.rb
kms-1.0.1 app/services/kms/template_processor.rb
kms-1.0.0 app/services/kms/template_processor.rb