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