Class: ActiveStorageValidations::SizeValidator
- Inherits:
-
BaseSizeValidator
- Object
- ActiveModel::EachValidator
- BaseSizeValidator
- ActiveStorageValidations::SizeValidator
- Defined in:
- lib/active_storage_validations/size_validator.rb
Constant Summary collapse
- ERROR_TYPES =
%i[ file_size_not_less_than file_size_not_less_than_or_equal_to file_size_not_greater_than file_size_not_greater_than_or_equal_to file_size_not_between ].freeze
Constants inherited from BaseSizeValidator
BaseSizeValidator::AVAILABLE_CHECKS
Instance Method Summary collapse
Methods inherited from BaseSizeValidator
Methods included from Errorable
#add_error, #initialize_error_options
Methods included from OptionProcUnfolding
Constructor Details
This class inherits a constructor from ActiveStorageValidations::BaseSizeValidator
Instance Method Details
#validate_each(record, attribute, _value) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/active_storage_validations/size_validator.rb', line 17 def validate_each(record, attribute, _value) return true unless record.send(attribute).attached? files = Array.wrap(record.send(attribute)) = unfold_procs(record, self., AVAILABLE_CHECKS) files.each do |file| next if is_valid?(file.blob.byte_size, ) = (, file) (, ) [:file_size] = number_to_human_size(file.blob.byte_size) keys = AVAILABLE_CHECKS & .keys error_type = "file_size_not_#{keys.first}".to_sym add_error(record, attribute, error_type, **) break end end |