class IMissValidator::Inspector::NumericalityInspector
Check columns if defined as integer, but no validator.
Constants
- IGNORE_COLUMN_NAMES
Public Class Methods
columns(model)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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