class SignatureGenerator::Inliner

Constants

IMG_TAG

Attributes

original_content[R]

Public Class Methods

new(content) click to toggle source
# File lib/signature_generator/inliner.rb, line 12
def initialize(content)
  @original_content = content
end

Public Instance Methods

inlined() click to toggle source
# File lib/signature_generator/inliner.rb, line 16
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 Instance Methods

load_file(url) click to toggle source
# File lib/signature_generator/inliner.rb, line 28
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