Class: Email::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/email/renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(message, opts = nil) ⇒ Renderer

Returns a new instance of Renderer.



5
6
7
8
# File 'lib/email/renderer.rb', line 5

def initialize(message, opts = nil)
  @message = message
  @opts = opts || {}
end

Instance Method Details

#htmlObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/email/renderer.rb', line 17

def html
  style =
    if @message.html_part
      Email::Styles.new(@message.html_part.body.to_s, @opts)
    else
      unstyled =
        UserNotificationRenderer.render(
          template: "layouts/email_template",
          format: :html,
          locals: {
            html_body: PrettyText.cook(text).html_safe,
          },
        )
      Email::Styles.new(unstyled, @opts)
    end

  style.format_basic
  style.format_html
  style.to_html
end

#textObject



10
11
12
13
14
15
# File 'lib/email/renderer.rb', line 10

def text
  return @text if @text
  @text =
    (+(@message.text_part ? @message.text_part : @message).body.to_s).force_encoding("UTF-8")
  @text = CGI.unescapeHTML(@text)
end