# 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
# 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
# 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