Class: IMissValidator::Inspector::PresenceInspector
- Inherits:
-
Object
- Object
- IMissValidator::Inspector::PresenceInspector
- Defined in:
- lib/i_miss_validator/inspector/presence_inspector.rb
Overview
Check columns if defined not null, 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 |
# File 'lib/i_miss_validator/inspector/presence_inspector.rb', line 9 def self.columns(model) model.columns.select do |column| column.null == false && IGNORE_COLUMN_NAMES.include?(column.name) == false end end |
.inspect(model) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/i_miss_validator/inspector/presence_inspector.rb', line 28 def self.inspect(model) missing_columns(model).map do |column| { column: column.name, missing_validator: :presence_validator, message: 'presence: true' } end end |
.missing_columns(model) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/i_miss_validator/inspector/presence_inspector.rb', line 21 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) == false end end |
.validators(model) ⇒ Object
15 16 17 18 19 |
# File 'lib/i_miss_validator/inspector/presence_inspector.rb', line 15 def self.validators(model) model.validators.select do |validator| validator.class == ActiveRecord::Validations::PresenceValidator end end |