class ActiveModel::Validations::IpAddressValidator
Constants
- PROTOCOL_OPTIONS
Public Instance Methods
check_validity!()
click to toggle source
# File lib/validators/validates_ip_address.rb, line 35 def check_validity! return unless options.key?(:only) return if PROTOCOL_OPTIONS.include?(options[:only]) raise ArgumentError, ":only accepts a symbol that can be either :v6 or :v4" end
validate_each(record, attribute, value)
click to toggle source
# File lib/validators/validates_ip_address.rb, line 8 def validate_each(record, attribute, value) return if value.blank? && options[:allow_blank] return if value.nil? && options[:allow_nil] valid = false case options[:only] when :v4 valid = Validators::Ip.v4?(value.to_s) scope = :invalid_ipv4_address when :v6 valid = Validators::Ip.v6?(value.to_s) scope = :invalid_ipv6_address else valid = Validators::Ip.valid?(value.to_s) scope = :invalid_ip_address end return if valid record.errors.add( attribute, scope, message: options[:message], value: value ) end