class SubnetFormatValidator

Public Instance Methods

validate(record) click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 4
def validate(record)
  @record = record

  validate_dhcp_range
rescue ArgumentError
  ip_argument_error
end

Private Instance Methods

dhcp_range_error(invalid_ip) click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 46
def dhcp_range_error(invalid_ip)
  @record.errors[:base] << (options[:message] ||
    "The DHCP range you provided was invalid, try from #{ invalid_ip.to_range.first } to #{ invalid_ip.to_range.last }")
end
dhcp_range_start() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 22
def dhcp_range_start
  @record.send(options[:dhcp_range_start] || :dhcp_range_start)
end
dhcp_range_stop() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 26
def dhcp_range_stop
  @record.send(options[:dhcp_range_stop] || :dhcp_range_stop)
end
ip() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 30
def ip
  IPAddr.new "#{ network_address_prefix }/#{ subnet_mask }"
end
ip_argument_error() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 42
def ip_argument_error
  @record.errors[:base] << (options[:message] || "The ip you provided was invalid")
end
network_address_prefix() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 14
def network_address_prefix
  @record.send(options[:network_address_prefix] || :network_address_prefix)
end
subnet_mask() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 18
def subnet_mask
  @record.send(options[:subnet_mask] || :subnet_mask)
end
validate_dhcp_range() click to toggle source
# File lib/subnet_format/subnet_format_validator.rb, line 34
def validate_dhcp_range
  ip_to_validate = ip

  unless ip_to_validate.include?(dhcp_range_start) and ip_to_validate.include?(dhcp_range_stop)
    dhcp_range_error(ip_to_validate)
  end
end