Class: BitwiseValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- BitwiseValidator
- Extended by:
- T::Sig
- Defined in:
- lib/active_record/bitwise/bitwise_validator.rb
Overview
Custom validator supporting validates :attribute, bitwise: true
Instance Method Summary collapse
Instance Method Details
#validate_each(record, attribute, value) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/active_record/bitwise/bitwise_validator.rb', line 12 def validate_each(record, attribute, value) return if value.nil? definition = T.unsafe(record.class).bitwise_definitions[attribute.to_sym] return unless definition mapping = definition[:mapping] mapping_strings = mapping.keys.map(&:to_s) invalid_values = Kernel.Array(value).reject { |val| val.nil? || val == '' || mapping_strings.include?(val.to_s) } return unless invalid_values.any? T.unsafe(record).errors.add(attribute, "contains invalid values: #{invalid_values.join(', ')}") end |