class Proxy::DHCP::Infoblox::NetworkAddressesRegularExpressionGenerator

Public Instance Methods

generate_regex(network_and_cidr) click to toggle source
# File lib/smart_proxy_dhcp_infoblox/network_address_range_regex_generator.rb, line 105
def generate_regex(network_and_cidr)
  range_to_regex(network_cidr_range_octets(network_and_cidr))
end
network_cidr_range_octets(network_and_cidr) click to toggle source
# File lib/smart_proxy_dhcp_infoblox/network_address_range_regex_generator.rb, line 109
def network_cidr_range_octets(network_and_cidr)
  range = network_cidr_to_range(network_and_cidr)
  range_start_octets = range.first.split('.').map(&:to_i)
  range_end_octets = range.last.split('.').map(&:to_i)

  (0..3).map {|i| [range_start_octets[i], range_end_octets[i]]}
end
range_to_regex(range) click to toggle source
# File lib/smart_proxy_dhcp_infoblox/network_address_range_regex_generator.rb, line 117
def range_to_regex(range)
  range.inject([]) do |a, c|
    start_range, end_range = c
    regex = if start_range == end_range
              start_range.to_s
            elsif start_range == 0 && end_range == 255
              '.+'
            else
              RangeRegularExpressionGenerator.new.range_regex(start_range + 1, end_range - 1)
            end
    a.push(regex)
  end.join('\.')
end