Sha256: db956f173278a601619c903aed1b1df1667c88ea1a88f3e34ca3cc70f7742351
Contents?: true
Size: 567 Bytes
Versions: 1
Compression:
Stored size: 567 Bytes
Contents
module SlimValidation end require 'slim' class SlimValidator < ActiveModel::EachValidator def validate_each(record, attr_name, value) result = Slim::Template.new(options[:options]) { value }.render(options[:scope] == :record ? record : options[:scope]) rescue => e if (error_storer = options[:error]).present? record.send("#{error_storer}=", e) end record.errors.add(attr_name, :invalid_slim, options) ensure if (to = options[:to]).present? to.is_a?(Proc) ? to.(record, result) : record.send("#{to}=", result) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slim_validation-0.0.3 | lib/slim_validation.rb |