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, line 239 def skip_auto_validations(*types) types << :all if types.empty? @_skip_auto_validations = types yield ensure @_skip_auto_validations = nil end
validate()
click to toggle source
Validate the model's auto validations columns
Calls superclass method
# File lib/sequel/plugins/auto_validations.rb, line 248 def validate super skip = @_skip_auto_validations || EMPTY_ARRAY return if skip.include?(:all) opts = model.auto_validate_options unless skip.include?(:no_null_byte) || (no_null_byte_columns = model.auto_validate_no_null_byte_columns).empty? validates_no_null_byte(no_null_byte_columns, opts[:no_null_byte]) end unless skip.include?(:not_null) not_null_method = model.auto_validate_presence? ? :validates_presence : :validates_not_null unless (not_null_columns = model.auto_validate_not_null_columns).empty? public_send(not_null_method, not_null_columns, opts[:not_null]) end unless (not_null_columns = model.auto_validate_explicit_not_null_columns).empty? public_send(not_null_method, not_null_columns, opts[:explicit_not_null]) end end unless skip.include?(:max_length) || (max_length_columns = model.auto_validate_max_length_columns).empty? max_length_columns.each do |col, len| validates_max_length(len, col, opts[:max_length]) end end unless skip.include?(:types) || !model.auto_validate_types? validates_schema_types(keys, opts[:schema_types]) unless skip.include?(:max_value) || ((max_value_columns = model.auto_validate_max_value_columns).empty?) max_value_columns.each do |col, max| validates_max_value(max, col, opts[:max_value]) end end unless skip.include?(:min_value) || ((min_value_columns = model.auto_validate_min_value_columns).empty?) min_value_columns.each do |col, min| validates_min_value(min, col, opts[:min_value]) end end end unless skip.include?(:unique) unique_opts = Hash[opts[:unique]] if model.respond_to?(:sti_dataset) unique_opts[:dataset] = model.sti_dataset end model.auto_validate_unique_columns.each{|cols| validates_unique(cols, unique_opts)} end end