Class: HashValidator::Validator::IpValidator

Inherits:
Base
  • Object
show all
Defined in:
lib/hash_validator/validators/ip_validator.rb

Instance Attribute Summary

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#should_validate?, #validate

Constructor Details

#initializeIpValidator

Returns a new instance of IpValidator.



4
5
6
# File 'lib/hash_validator/validators/ip_validator.rb', line 4

def initialize
  super('ip')  # The name of the validator
end

Instance Method Details

#error_messageObject



8
9
10
# File 'lib/hash_validator/validators/ip_validator.rb', line 8

def error_message
  'is not a valid IP address'
end

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
# File 'lib/hash_validator/validators/ip_validator.rb', line 12

def valid?(value)
  return false unless value.is_a?(String)
  # Use IPAddr to validate both IPv4 and IPv6 addresses
  IPAddr.new(value)
  true
rescue IPAddr::Error, IPAddr::InvalidAddressError
  false
end