Sha256: 37f3b748179fc13a59e5f3f4195a41f93fc70e3254a89139a0b9d2681d907252
Contents?: true
Size: 814 Bytes
Versions: 2
Compression:
Stored size: 814 Bytes
Contents
module ActiveRecord module StrictValidations class Validation < Struct.new(:model, :field) # Inject validations into an ActiveRecord model def self.inject_validations(model, options = {}) except = options[:except] || [] model_columns = model.columns.dup.reject { |c| except.include?(c.name.to_sym) } if only = options[:only] model_columns = model_columns.select { |c| only.include?(c.name.to_sym) } end model_columns.each do |field| validation = "#{field.type.to_s.camelize}Validation" if ActiveRecord::StrictValidations::Validation.const_defined?(validation) "ActiveRecord::StrictValidations::Validation::#{validation}".constantize.new(model, field).apply end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activerecord_strict_validations-0.3.1 | lib/active_record/strict_validations/validation.rb |
activerecord_strict_validations-0.3 | lib/active_record/strict_validations/validation.rb |