class IsbnValidator
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/active_validation/validators/isbn_validator.rb, line 7 def validate_each(record, attribute, value) return if valid?(value.to_s) record.errors[attribute] << (options[:message] || I18n.t('active_validation.errors.messages.isbn')) end
Private Instance Methods
valid?(value)
click to toggle source
# File lib/active_validation/validators/isbn_validator.rb, line 28 def valid?(value) valid_length?(value) && valid_format?(value) end
valid_format?(value)
click to toggle source
# File lib/active_validation/validators/isbn_validator.rb, line 16 def valid_format?(value) return(false) if value.empty? value = value.gsub(/-| /, '').downcase.chars [10, 13].include?(value.size) && value.all? { |chr| CHARACTERS.include?(chr) } end
valid_length?(value)
click to toggle source
# File lib/active_validation/validators/isbn_validator.rb, line 24 def valid_length?(value) value.present? end