class Getinline::Transformer

Public Class Methods

new(raw_text, options = {}, premailer_options = {}) click to toggle source
# File lib/getinline/transformer.rb, line 9
def initialize(raw_text, options = {}, premailer_options = {})
  @raw_text = raw_text
  @options = options
  @premailer_options = premailer_options
end

Public Instance Methods

transform() click to toggle source
# File lib/getinline/transformer.rb, line 15
def transform
  matches = @raw_text.scan(ERB_TAG)
  tokenized_text = @raw_text.dup
  matches.each do |match|
    tokenized_text.sub!(match, TOKEN)
  end

  File.write(TOKENIZED_ERB_FILE_NAME, tokenized_text)

  @premailer = Premailer.new(TOKENIZED_ERB_FILE_NAME, @premailer_options)
  premailed_tokenized_text = @options[:mode] == :txt ?
    @premailer.to_plain_text : @premailer.to_inline_css
  premailed_text = premailed_tokenized_text.dup

  matches.each do |match|
    premailed_text.sub!(TOKEN, match)
  end

  premailed_text
end