class ArrayEnum::SubsetValidator
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/array_enum/subset_validator.rb, line 4 def validate_each(record, attribute, value) wrapped_value = [value].flatten # Handles nil value subset = delimiter.respond_to?(:call) ? delimiter.call(record) : delimiter diff = wrapped_value.reject { |element| subset.include?(element) } unless diff.empty? record.errors.add(attribute, :inclusion, **options.except(:in, :within).merge!(value: diff)) end end
Private Instance Methods
delimiter()
click to toggle source
# File lib/array_enum/subset_validator.rb, line 17 def delimiter @delimiter ||= options[:in] || options[:within] end