Sha256: bbd587e8996edee85f9b0cc7468488b53af96fab41b2115f42d239a2048a32c7
Contents?: true
Size: 844 Bytes
Versions: 2
Compression:
Stored size: 844 Bytes
Contents
require 'base64' require 'open-uri' module SignatureGenerator class Inliner IMG_TAG = /<img[^>]+src\s*=\s*"(https?:\/\/[^"]+\.(?:png|jpg|jpeg))"/ attr_reader :original_content def initialize(content) @original_content = content end def inlined result = original_content.dup url_candidates = result.scan(IMG_TAG).flatten url_candidates.each do |url| content64 = load_file url result.gsub! url, content64 end result end private def load_file(url) content = open(url) {|f| f.read } ext = url.gsub /^.*\.([^\.]+)\s*$/, '\1' content64 = Base64.strict_encode64 content 'data:image/%s;base64,%s' % [ext, content64] rescue EasyAppHelper.logger.warn SignatureGenerator::Error, "Cannot load file '#{file}'" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
signature_generator-0.1.6 | lib/signature_generator/inliner.rb |
signature_generator-0.1.5 | lib/signature_generator/inliner.rb |