Sha256: 02a3e722438c1b0d1f20a2866eb319ae9365ae0408701807d7f2531191a1de6b
Contents?: true
Size: 904 Bytes
Versions: 2
Compression:
Stored size: 904 Bytes
Contents
require "active_record_doctor/tasks/base" module ActiveRecordDoctor module Tasks class IncorrectBooleanPresenceValidation < Base def run eager_load! success(hash_from_pairs(models.reject do |model| model.table_name.nil? || model.table_name == 'schema_migrations' end.map do |model| [ model.name, connection.columns(model.table_name).select do |column| column.type == :boolean && has_presence_validator?(model, column) end.map(&:name) ] end.reject do |model_name, columns| columns.empty? end)) end private def has_presence_validator?(model, column) model.validators.any? do |validator| validator.kind == :presence && validator.attributes.include?(column.name.to_sym) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems