Module: Sequel::Plugins::AutoValidations::ClassMethods
- Defined in:
- lib/sequel/plugins/auto_validations.rb
Instance Attribute Summary collapse
-
#auto_validate_explicit_not_null_columns ⇒ Object
readonly
The columns with automatic not_null validations for columns present in the values.
-
#auto_validate_max_length_columns ⇒ Object
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.
-
#auto_validate_max_value_columns ⇒ Object
readonly
The columns with automatch max value validations, as an array of pairs, with the first entry being the column name and second entry being the maximum value.
-
#auto_validate_min_value_columns ⇒ Object
readonly
The columns with automatch min value validations, as an array of pairs, with the first entry being the column name and second entry being the minimum value.
-
#auto_validate_no_null_byte_columns ⇒ Object
readonly
The columns with automatic no_null_byte validations.
-
#auto_validate_not_null_columns ⇒ Object
readonly
The columns with automatic not_null validations.
-
#auto_validate_options ⇒ Object
readonly
Inherited options.
-
#auto_validate_unique_columns ⇒ Object
readonly
The columns or sets of columns with automatic unique validations.
Instance Method Summary collapse
-
#auto_validate_presence? ⇒ Boolean
Whether to use a presence validation for not null columns.
-
#auto_validate_types? ⇒ Boolean
Whether to automatically validate schema types for all columns.
-
#freeze ⇒ Object
Freeze auto_validation settings when freezing model class.
-
#skip_auto_validations(type) ⇒ Object
Skip automatic validations for the given validation type (:not_null, :no_null_byte, :types, :unique, :max_length, :max_value, :min_value).
Instance Attribute Details
#auto_validate_explicit_not_null_columns ⇒ Object (readonly)
The columns with automatic not_null validations for columns present in the values.
141 142 143 |
# File 'lib/sequel/plugins/auto_validations.rb', line 141 def auto_validate_explicit_not_null_columns @auto_validate_explicit_not_null_columns end |
#auto_validate_max_length_columns ⇒ Object (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.
145 146 147 |
# File 'lib/sequel/plugins/auto_validations.rb', line 145 def auto_validate_max_length_columns @auto_validate_max_length_columns end |
#auto_validate_max_value_columns ⇒ Object (readonly)
The columns with automatch max value validations, as an array of pairs, with the first entry being the column name and second entry being the maximum value.
149 150 151 |
# File 'lib/sequel/plugins/auto_validations.rb', line 149 def auto_validate_max_value_columns @auto_validate_max_value_columns end |
#auto_validate_min_value_columns ⇒ Object (readonly)
The columns with automatch min value validations, as an array of pairs, with the first entry being the column name and second entry being the minimum value.
153 154 155 |
# File 'lib/sequel/plugins/auto_validations.rb', line 153 def auto_validate_min_value_columns @auto_validate_min_value_columns end |
#auto_validate_no_null_byte_columns ⇒ Object (readonly)
The columns with automatic no_null_byte validations
135 136 137 |
# File 'lib/sequel/plugins/auto_validations.rb', line 135 def auto_validate_no_null_byte_columns @auto_validate_no_null_byte_columns end |
#auto_validate_not_null_columns ⇒ Object (readonly)
The columns with automatic not_null validations
138 139 140 |
# File 'lib/sequel/plugins/auto_validations.rb', line 138 def auto_validate_not_null_columns @auto_validate_not_null_columns end |
#auto_validate_options ⇒ Object (readonly)
Inherited options
159 160 161 |
# File 'lib/sequel/plugins/auto_validations.rb', line 159 def @auto_validate_options end |
#auto_validate_unique_columns ⇒ Object (readonly)
The columns or sets of columns with automatic unique validations
156 157 158 |
# File 'lib/sequel/plugins/auto_validations.rb', line 156 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
175 176 177 |
# File 'lib/sequel/plugins/auto_validations.rb', line 175 def auto_validate_presence? @auto_validate_presence end |
#auto_validate_types? ⇒ Boolean
Whether to automatically validate schema types for all columns
180 181 182 |
# File 'lib/sequel/plugins/auto_validations.rb', line 180 def auto_validate_types? @auto_validate_types end |
#freeze ⇒ Object
Freeze auto_validation settings when freezing model class.
185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/sequel/plugins/auto_validations.rb', line 185 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_max_value_columns.freeze @auto_validate_min_value_columns.freeze @auto_validate_unique_columns.freeze super end |
#skip_auto_validations(type) ⇒ Object
Skip automatic validations for the given validation type (:not_null, :no_null_byte, :types, :unique, :max_length, :max_value, :min_value). If :all is given as the type, skip all auto validations.
Skipping types validation automatically skips max_value and min_value validations, since those validations require valid types.
203 204 205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/sequel/plugins/auto_validations.rb', line 203 def skip_auto_validations(type) case type when :all [:not_null, :no_null_byte, :types, :unique, :max_length, :max_value, :min_value].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 |