Sha256: 3238bb277bdfa0006104f42119db49edfcb7d3c22349869164994b722bc43781

Contents?: true

Size: 454 Bytes

Versions: 1

Compression:

Stored size: 454 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
    record.errors.add(attr_name, :invalid_slim, options)
  ensure
    if (to = options[:to]).present?
      to.is_a?(Proc) ? to.(record, result) : record[to] = result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slim_validation-0.0.2 lib/slim_validation.rb