Module: Sequel::Plugins::AutoValidations::ClassMethods

Defined in:
lib/sequel/plugins/auto_validations.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#auto_validate_explicit_not_null_columnsObject (readonly)

The columns with automatic not_null validations for columns present in the values.



132
133
134
# File 'lib/sequel/plugins/auto_validations.rb', line 132

def auto_validate_explicit_not_null_columns
  @auto_validate_explicit_not_null_columns
end

#auto_validate_max_length_columnsObject (readonly)

The columns or sets of columns with automatic max_length validations, as an array of pairs, with the first entry being the column name and second entry being the maximum length.



136
137
138
# File 'lib/sequel/plugins/auto_validations.rb', line 136

def auto_validate_max_length_columns
  @auto_validate_max_length_columns
end

#auto_validate_no_null_byte_columnsObject (readonly)

The columns with automatic no_null_byte validations



126
127
128
# File 'lib/sequel/plugins/auto_validations.rb', line 126

def auto_validate_no_null_byte_columns
  @auto_validate_no_null_byte_columns
end

#auto_validate_not_null_columnsObject (readonly)

The columns with automatic not_null validations



129
130
131
# File 'lib/sequel/plugins/auto_validations.rb', line 129

def auto_validate_not_null_columns
  @auto_validate_not_null_columns
end

#auto_validate_optionsObject (readonly)

Inherited options



142
143
144
# File 'lib/sequel/plugins/auto_validations.rb', line 142

def auto_validate_options
  @auto_validate_options
end

#auto_validate_unique_columnsObject (readonly)

The columns or sets of columns with automatic unique validations



139
140
141
# File 'lib/sequel/plugins/auto_validations.rb', line 139

def auto_validate_unique_columns
  @auto_validate_unique_columns
end

Instance Method Details

#auto_validate_presence?Boolean

Whether to use a presence validation for not null columns

Returns:

  • (Boolean)


156
157
158
# File 'lib/sequel/plugins/auto_validations.rb', line 156

def auto_validate_presence?
  @auto_validate_presence
end

#auto_validate_types?Boolean

Whether to automatically validate schema types for all columns

Returns:

  • (Boolean)


161
162
163
# File 'lib/sequel/plugins/auto_validations.rb', line 161

def auto_validate_types?
  @auto_validate_types
end

#freezeObject

Freeze auto_validation settings when freezing model class.



166
167
168
169
170
171
172
173
174
# File 'lib/sequel/plugins/auto_validations.rb', line 166

def freeze
  @auto_validate_no_null_byte_columns.freeze
  @auto_validate_not_null_columns.freeze
  @auto_validate_explicit_not_null_columns.freeze
  @auto_validate_max_length_columns.freeze
  @auto_validate_unique_columns.freeze

  super
end

#skip_auto_validations(type) ⇒ Object

Skip automatic validations for the given validation type (:not_null, :types, :unique, :max_length, :no_null_byte). If :all is given as the type, skip all auto validations.



179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/sequel/plugins/auto_validations.rb', line 179

def skip_auto_validations(type)
  case type
  when :all
    [:not_null, :no_null_byte, :types, :unique, :max_length].each{|v| skip_auto_validations(v)}
  when :not_null
    auto_validate_not_null_columns.clear
    auto_validate_explicit_not_null_columns.clear
  when :types
    @auto_validate_types = false
  else
    public_send("auto_validate_#{type}_columns").clear
  end
end