Sha256: f5322f1b8e86a7c10c738b1a0ed6dface966ef3094bebb2059e8dfc38d09a3fb

Contents?: true

Size: 763 Bytes

Versions: 8

Compression:

Stored size: 763 Bytes

Contents

module Effective
  class EmailReview
    include ActiveModel::Model

    attr_accessor :email_template
    attr_accessor :template_name
    attr_accessor :body

    def self.build(attributes = {})
      new(attributes).tap do |email_review|
        email_review.body ||= email_review.email_template&.body
        email_review.template_name ||= email_review.email_template&.template_name
      end
    end

    validates :body, presence: true

    validate(if: -> { body.present? }) do
      begin
        Liquid::Template.parse(body)
      rescue Liquid::SyntaxError => e
        errors.add(:body, e.message)
      end
    end

    def email_template
      @email_template ||= Effective::EmailTemplate.where(template_name: template_name).first
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
effective_email_templates-1.0.11 app/models/effective/email_review.rb
effective_email_templates-1.0.10 app/models/effective/email_review.rb
effective_email_templates-1.0.9 app/models/effective/email_review.rb
effective_email_templates-1.0.8 app/models/effective/email_review.rb
effective_email_templates-1.0.7 app/models/effective/email_review.rb
effective_email_templates-1.0.6 app/models/effective/email_review.rb
effective_email_templates-1.0.5 app/models/effective/email_review.rb
effective_email_templates-1.0.4 app/models/effective/email_review.rb