Class: Proxy::DHCP::Infoblox::NetworkAddressesRegularExpressionGenerator
- Inherits:
-
Object
- Object
- Proxy::DHCP::Infoblox::NetworkAddressesRegularExpressionGenerator
show all
- Includes:
- IpAddressArithmetic
- Defined in:
- lib/smart_proxy_dhcp_infoblox/network_address_range_regex_generator.rb
Instance Method Summary
collapse
#cidr_to_bitmask, #cidr_to_i, #cidr_to_ip_mask, #i_to_ipv4, #ipv4_to_i, #network_cidr_to_range
Instance Method Details
#generate_regex(network_and_cidr) ⇒ Object
105
106
107
|
# 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) ⇒ Object
109
110
111
112
113
114
115
|
# 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) ⇒ Object
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# 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
|