Class: Inkcite::Renderer::InBrowser

Inherits:
Base
  • Object
show all
Defined in:
lib/inkcite/renderer/in_browser.rb

Constant Summary

Constants inherited from Base

Base::BACKGROUND_COLOR, Base::BACKGROUND_GRADIENT, Base::BACKGROUND_IMAGE, Base::BACKGROUND_POSITION, Base::BACKGROUND_REPEAT, Base::BACKGROUND_SIZE, Base::BORDER_BOTTOM, Base::BORDER_COLLAPSE, Base::BORDER_LEFT, Base::BORDER_RADIUS, Base::BORDER_RIGHT, Base::BORDER_SPACING, Base::BORDER_TOP, Base::BOX_SHADOW, Base::DIMENSIONS, Base::DIRECTIONS, Base::FONT_FAMILY, Base::FONT_SIZE, Base::FONT_WEIGHT, Base::LETTER_SPACING, Base::LINE_HEIGHT, Base::LINK_COLOR, Base::MARGIN, Base::MARGIN_BOTTOM, Base::MARGIN_LEFT, Base::MARGIN_RIGHT, Base::MARGIN_TOP, Base::MAX_WIDTH, Base::NONE, Base::PADDING_X, Base::PADDING_Y, Base::POUND_SIGN, Base::TEXT_ALIGN, Base::TEXT_DECORATION, Base::TEXT_SHADOW, Base::TEXT_SHADOW_BLUR, Base::TEXT_SHADOW_OFFSET, Base::VERTICAL_ALIGN, Base::WEBKIT_ANIMATION, Base::WHITE_SPACE, Base::ZERO_WIDTH_NON_BREAKING_SPACE, Base::ZERO_WIDTH_SPACE

Instance Method Summary collapse

Instance Method Details

#render(tag, opt, ctx) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/inkcite/renderer/in_browser.rb', line 6

def render tag, opt, ctx

  # You can only view in-browser if we're viewing an email.
  return nil unless ctx.email?

  url = ctx[Inkcite::Email::VIEW_IN_BROWSER_URL]
  return nil if url.blank?

  browser_view = ctx.email.view(ctx.environment, :browser, ctx.version)

  # Make sure we're converting any embedded values in the host URL
  url = Renderer.render(url, browser_view)

  # Optional link override color.
  color = opt[:color]

  # Optional call-to-action override - otherwise defaults to view in browser.
  cta = opt[:cta] || ctx.production?? 'View in Browser' : 'Preview in Browser'

  id = opt[:id] || 'in-browser'

  html = "{a id=\"#{id}\" href=\"#{url}\""
  html << " color=\"#{color}\"" unless color.blank?
  html << '}'
  html << cta
  html << '{/a}'

  html
end