class Sendmark::Mail

Attributes

css_parser[R]

Public Class Methods

new(args = {}, &block) click to toggle source
# File lib/sendmark/mail.rb, line 21
def initialize(args = {}, &block)
  args.each do |k, v|
    setter = "#{k}="
    send(setter, v) if respond_to?(setter)
  end

  if block_given?
    instance_eval(&block)
  end

  unless css.nil?
    @css_parser = CssParser.new
    @css_parser.load_string! css
  end
end

Public Instance Methods

deliver() click to toggle source
# File lib/sendmark/mail.rb, line 43
def deliver
  delivery_mail = mail
  delivery_mail.delivery_method(@method, @settings)
  delivery_mail.deliver
end
delivery_method(method, settings = {}) click to toggle source
# File lib/sendmark/mail.rb, line 37
def delivery_method(method, settings = {})
  @method = method
  @settings = settings
  self
end
mail() click to toggle source
# File lib/sendmark/mail.rb, line 49
def mail
  html = rendered_html
  mail = ::Mail.new(to: to, from: from, subject: subject)

  html_part = ::Mail::Part.new do
    content_type "text/html; charset=UTF-8"
    body html
  end

  mail.html_part = html_part
  mail
end
rendered_html() click to toggle source
# File lib/sendmark/mail.rb, line 62
def rendered_html
  render = Markdown.new(@css_parser)
  text = @markdown.nil? ? "" : @markdown
  render.render(text)
end