class FileExtensionValidator
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/lite/validators/file_extension_validator.rb, line 5 def validate_each(record, attribute, value) assert_valid_include_or_exclude! assign_attr_readers(record, attribute, value) valid? end
Private Instance Methods
assert_valid_include_or_exclude!()
click to toggle source
# File lib/lite/validators/file_extension_validator.rb, line 13 def assert_valid_include_or_exclude! return if options.key?(:include) || options.key?(:exclude) raise ArgumentError, 'Missing ":include" or ":exclude" attribute for comparison.' end
check()
click to toggle source
# File lib/lite/validators/file_extension_validator.rb, line 19 def check options.key?(:exclude) ? :exclude : :include end
include_or_exclude()
click to toggle source
# File lib/lite/validators/file_extension_validator.rb, line 23 def include_or_exclude values = options[:include] || options[:exclude] Array(values) end
valid_attr?()
click to toggle source
# File lib/lite/validators/file_extension_validator.rb, line 28 def valid_attr? extension = File.extname(value.original_filename).tr('.', '') return false if extension.empty? included = include_or_exclude.any? { |ext| ext.to_s == extension } included = !included if check == :exclude return if included record.errors.add(attribute, *error_message) end