class FileSizeValidator
Constants
- CHECKS
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 15 def validate_each(record, attribute, value) assert_valid_checks! assign_attr_readers(record, attribute, value) valid? end
Private Instance Methods
assert_valid_checks!()
click to toggle source
rubocop:disable Layout/LineLength, Style/GuardClause
# File lib/lite/validators/file_size_validator.rb, line 24 def assert_valid_checks! if checks.empty? raise ArgumentError, "Missing atleast one check of #{CHECKS.keys.map(&:inspect).join(', ')} attribute for comparison." else assert_valid_option!(:checks, CHECKS.keys) end end
checks()
click to toggle source
rubocop:enable Layout/LineLength, Style/GuardClause
# File lib/lite/validators/file_size_validator.rb, line 33 def checks options.keys & CHECKS.keys end
error_message_for(option, option_value)
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 37 def error_message_for(option, option_value) options[:message] || I18n.t( "errors.messages.file_size.#{option}", **error_options(option_value) ) end
error_options(option_value)
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 44 def error_options(option_value) if option_value.is_a?(Range) { min: option_value.min, max: option_value.max } else { count: option_value } end end
valid_attr?()
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 52 def valid_attr? options.slice(*CHECKS.keys).each do |option, option_value| validate_check(option, option_value) end end
valid_size?(size, option, option_value)
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 58 def valid_size?(size, option, option_value) return false if size.nil? if option_value.is_a?(Range) option_value.send(CHECKS[option], size) else size.send(CHECKS[option], option_value) end end
validate_check(option, option_value)
click to toggle source
# File lib/lite/validators/file_size_validator.rb, line 68 def validate_check(option, option_value) size = value.respond_to?(:byte_size) ? value.byte_size : value.size return if valid_size?(size, option, option_value) record.errors.add(attribute, error_message_for(option, option_value)) end