Sha256: 5ea8f52397d7a286eee488b8e589509fc453bc4519d3fcfe499125818135d716

Contents?: true

Size: 893 Bytes

Versions: 33

Compression:

Stored size: 893 Bytes

Contents

#
# Support an email template for an account
#
class EmailTemplate < Template
  #
  # Fields
  #
  field :subject, type: String
  #
  # Callbacks
  #
  before_save :htmlize_template
  #
  # Validations
  #
  validates :subject, presence: true

  #
  # Make sure the template is wrapped in html
  #
  def htmlize_template
    self.template = "<body><pre>#{template}</pre></body>" if template.present? && !template.strip.start_with?('<')
  end

  def valid_liquid_template
    super && Liquid::Template.parse(subject).nil?
  rescue StandardError => error
    errors.add(:subject, "Invalid liquid text in subject: #{error.message}")
    false
  end

  #
  # Copy the default from disk
  #
  def self.copy_default(name)
    template = EmailTemplate.new
    template.name = name
    template.template = from_file name
    template.subject = from_file name, prefix: 'subject'
    template
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
web47core-3.2.20 lib/app/models/email_template.rb
web47core-3.2.19 lib/app/models/email_template.rb
web47core-3.2.18 lib/app/models/email_template.rb
web47core-3.2.17 lib/app/models/email_template.rb
web47core-3.2.16 lib/app/models/email_template.rb
web47core-3.2.15 lib/app/models/email_template.rb
web47core-3.2.14 lib/app/models/email_template.rb
web47core-3.2.13 lib/app/models/email_template.rb
web47core-3.2.12 lib/app/models/email_template.rb
web47core-3.2.9 lib/app/models/email_template.rb
web47core-3.2.8 lib/app/models/email_template.rb
web47core-3.2.7 lib/app/models/email_template.rb
web47core-3.2.6 lib/app/models/email_template.rb
web47core-3.2.5 lib/app/models/email_template.rb
web47core-3.2.4 lib/app/models/email_template.rb
web47core-2.2.20 lib/app/models/email_template.rb
web47core-2.2.19 lib/app/models/email_template.rb
web47core-3.2.3 lib/app/models/email_template.rb
web47core-3.2.2 lib/app/models/email_template.rb
web47core-2.2.15 lib/app/models/email_template.rb