module RailsCoreExtensions::ActiveRecordLiquidExtensions::ClassMethods

Public Instance Methods

liquid_field(field) click to toggle source
# File lib/rails_core_extensions/active_record_liquid_extensions.rb, line 17
      def liquid_field(field)
        class_eval <<-CODE
          def parsed_#{field}
            Liquid::Template.parse(#{field})
          end

          def render_#{field}(*args)
            parsed_#{field}.render!(*args)
          end
        CODE
      end
validates_liquid(field) click to toggle source
# File lib/rails_core_extensions/active_record_liquid_extensions.rb, line 6
def validates_liquid(field)
  field = field.to_sym
  before_validation do |record|
    begin
      Liquid::Template.parse(record.send(field), error_mode: :strict)
    rescue Liquid::SyntaxError => e
      record.errors.add(field, "Liquid Syntax Error: #{e}")
    end
  end
end