module RailsCoreExtensions::ClassMethods

Public Instance Methods

liquid_field(field) click to toggle source
# File lib/rails_core_extensions/active_record_liquid_extensions.rb, line 20
    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 9
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