Sha256: 8dc378887eab8a93b10c3733f00f814b3e38a5d954c6b4192c0d48580e1dbefd
Contents?: true
Size: 1.23 KB
Versions: 37
Compression:
Stored size: 1.23 KB
Contents
# # Base template object for managing all communications templates # class Template include StandardModel # # Fields # field :name, type: String field :template, type: String # # Relationships # belongs_to :account, inverse_of: :templates # # Validations # validates :name, uniqueness: { scope: :account_id } validates :name, presence: true validates :template, presence: true validate :valid_liquid_template private # # Ensure that the template is correct from a liquid statement # def valid_liquid_template Liquid::Template.parse(self.template).nil? rescue Exception => error self.errors.add(:template, "Invalid liquid text in template: #{error.message}") false end # # Retrieve the template out of the project # def self.from_file(template_name, format: 'liquid', prefix: nil, delivery_channel: 'email') file_name = [template_name, prefix, format].compact.join('.') if File.exist?(Rails.root.join('lib/templates', delivery_channel, file_name)) File.open(Rails.root.join('lib/templates', delivery_channel, file_name)) else File.read(File.join(__dir__, '../../lib/templates', delivery_channel, file_name)) end.read rescue StandardError nil end end
Version data entries
37 entries across 37 versions & 1 rubygems