module Sequel::Plugins::AutoValidations::InstanceMethods

  1. lib/sequel/plugins/auto_validations.rb

Methods

Public Instance

  1. skip_auto_validations
  2. validate

Public Instance methods

skip_auto_validations(*types)

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

[show source]
    # File lib/sequel/plugins/auto_validations.rb
242 def skip_auto_validations(*types)
243   types << :all if types.empty?
244   @_skip_auto_validations = types
245   yield
246 ensure
247   @_skip_auto_validations = nil
248 end
validate()

Validate the model’s auto validations columns

[show source]
    # File lib/sequel/plugins/auto_validations.rb
251 def validate
252   super
253   skip = @_skip_auto_validations || EMPTY_ARRAY
254   return if skip.include?(:all)
255   opts = model.auto_validate_options
256 
257   unless skip.include?(:no_null_byte) || (no_null_byte_columns = model.auto_validate_no_null_byte_columns).empty?
258     validates_no_null_byte(no_null_byte_columns, opts[:no_null_byte])
259   end
260 
261   unless skip.include?(:not_null)
262     not_null_method = model.auto_validate_presence? ? :validates_presence : :validates_not_null
263     unless (not_null_columns = model.auto_validate_not_null_columns).empty?
264       public_send(not_null_method, not_null_columns, opts[:not_null])
265     end
266     unless (not_null_columns = model.auto_validate_explicit_not_null_columns).empty?
267       public_send(not_null_method, not_null_columns, opts[:explicit_not_null])
268     end
269   end
270 
271   unless skip.include?(:max_length) || (max_length_columns = model.auto_validate_max_length_columns).empty?
272     max_length_columns.each do |col, len|
273       validates_max_length(len, col, opts[:max_length])
274     end
275   end
276 
277   unless skip.include?(:types) || !model.auto_validate_types?
278     validates_schema_types(keys, opts[:schema_types])
279 
280     unless skip.include?(:max_value) || ((max_value_columns = model.auto_validate_max_value_columns).empty?)
281       max_value_columns.each do |col, max|
282         validates_max_value(max, col, opts[:max_value])
283       end
284     end
285 
286     unless skip.include?(:min_value) || ((min_value_columns = model.auto_validate_min_value_columns).empty?)
287       min_value_columns.each do |col, min|
288         validates_min_value(min, col, opts[:min_value])
289       end
290     end
291   end
292 
293   unless skip.include?(:unique)
294     unique_opts = Hash[opts[:unique]]
295     if model.respond_to?(:sti_dataset)
296       unique_opts[:dataset] = model.sti_dataset
297     end
298     model.auto_validate_unique_columns.each{|cols| validates_unique(cols, unique_opts)}
299   end
300 end