module Sequel::Plugins::AutoValidations::InstanceMethods

Public Instance Methods

skip_auto_validations(*types) { || ... } click to toggle source

Skip the given types of auto validations on this instance inside the block.

    # File lib/sequel/plugins/auto_validations.rb
183 def skip_auto_validations(*types)
184   types << :all if types.empty?
185   @_skip_auto_validations = types
186   yield
187 ensure
188   @_skip_auto_validations = nil
189 end
validate() click to toggle source

Validate the model's auto validations columns

Calls superclass method
    # File lib/sequel/plugins/auto_validations.rb
192 def validate
193   super
194   skip = @_skip_auto_validations || EMPTY_ARRAY
195   return if skip.include?(:all)
196   opts = model.auto_validate_options
197 
198 
199   unless skip.include?(:not_null)
200     not_null_method = model.auto_validate_presence? ? :validates_presence : :validates_not_null
201     unless (not_null_columns = model.auto_validate_not_null_columns).empty?
202       public_send(not_null_method, not_null_columns, opts[:not_null])
203     end
204     unless (not_null_columns = model.auto_validate_explicit_not_null_columns).empty?
205       public_send(not_null_method, not_null_columns, opts[:explicit_not_null])
206     end
207   end
208 
209   unless skip.include?(:max_length) || (max_length_columns = model.auto_validate_max_length_columns).empty?
210     max_length_columns.each do |col, len|
211       validates_max_length(len, col, opts[:max_length])
212     end
213   end
214 
215   unless skip.include?(:types) || !model.auto_validate_types?
216     validates_schema_types(keys, opts[:schema_types])
217   end
218 
219   unless skip.include?(:unique)
220     unique_opts = Hash[opts[:unique]]
221     if model.respond_to?(:sti_dataset)
222       unique_opts[:dataset] = model.sti_dataset
223     end
224     model.auto_validate_unique_columns.each{|cols| validates_unique(cols, unique_opts)}
225   end
226 end