Class: IMissValidator::Inspector::NumericalityInspector
- Inherits:
-
Object
- Object
- IMissValidator::Inspector::NumericalityInspector
- Defined in:
- lib/i_miss_validator/inspector/numericality_inspector.rb
Overview
Check columns if defined as integer, but no validator.
Constant Summary collapse
- IGNORE_COLUMN_NAMES =
['id', 'lock_version']
Class Method Summary collapse
- .columns(model) ⇒ Object
- .inspect(model) ⇒ Object
- .missing_columns(model) ⇒ Object
- .validators(model) ⇒ Object
Class Method Details
.columns(model) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/i_miss_validator/inspector/numericality_inspector.rb', line 9 def self.columns(model) model.columns.select do |column| column.type == :integer && IGNORE_COLUMN_NAMES.include?(column.name) == false && (column.name =~ /.*id$/) == nil end end |
.inspect(model) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/i_miss_validator/inspector/numericality_inspector.rb', line 30 def self.inspect(model) missing_columns(model).map do |column| range = column.cast_type.send(:range) { column: column.name, missing_validator: :numericality_validator, message: "numericality: { only_integer: true, less_than_or_equal_to: #{range.first}, greater_then_or_equal_to: #{range.last} }" } end end |
.missing_columns(model) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/i_miss_validator/inspector/numericality_inspector.rb', line 23 def self.missing_columns(model) validated_columns = validators(model).map(&:attributes).flatten.uniq columns(model).select do |column| !validated_columns.include?(column.name.to_sym) end end |
.validators(model) ⇒ Object
17 18 19 20 21 |
# File 'lib/i_miss_validator/inspector/numericality_inspector.rb', line 17 def self.validators(model) model.validators.select do |validator| validator.class == ActiveModel::Validations::NumericalityValidator end end |