Sha256: 469c184bce42407ef509743a5e7a5ff4b9f468c8dbce380ce7741196e6f7536f

Contents?: true

Size: 712 Bytes

Versions: 8

Compression:

Stored size: 712 Bytes

Contents

module RailsCoreExtensions
  module ActiveRecordLiquidExtensions
    def self.included(base)
      base.extend ClassMethods
    end
  end

  module ClassMethods
    def validates_liquid(field)
      field = field.to_sym
      before_validation do |record|
        begin
          Liquid::Template.parse(record.send(field))
        rescue Liquid::SyntaxError => e
          record.errors.add(field, "Liquid Syntax Error: #{e}")
        end
      end
    end

    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
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rails_core_extensions-0.6.1 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.6.0 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.4.0 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.3.0 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.2.0 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.1.1 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.1.0 lib/rails_core_extensions/active_record_liquid_extensions.rb
rails_core_extensions-0.0.1 lib/rails_core_extensions/active_record_liquid_extensions.rb