Class: HashValidator::Validator::Ipv4Validator

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

Instance Attribute Summary

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#should_validate?, #validate

Constructor Details

#initializeIpv4Validator

Returns a new instance of Ipv4Validator.



2
3
4
# File 'lib/hash_validator/validators/ipv4_validator.rb', line 2

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

Instance Method Details

#error_messageObject



6
7
8
# File 'lib/hash_validator/validators/ipv4_validator.rb', line 6

def error_message
  'is not a valid IPv4 address'
end

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
# File 'lib/hash_validator/validators/ipv4_validator.rb', line 10

def valid?(value)
  return false unless value.is_a?(String)
  # IPv4 regex: 4 octets, each 0-255
  ipv4_regex = /\A(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\z/
  value.match?(ipv4_regex)
end