class Iface::ValueSet::IpV6Secondaries

Represents a pair for IPV6ADDR_SECONDARIES

Public Class Methods

new(_name, value, value_set) click to toggle source
Calls superclass method
# File lib/iface/value_set/pair.rb, line 84
def initialize(_name, value, value_set)
  super('IPV6ADDR_SECONDARIES', value, value_set)
  case value
  when String
    self.value = value.split(/ +/)
  when Array
    self.value = value
  else
    raise ArgumentError, "Expected String or Array; got #{value.class.name}: #{value.inspect}"
  end
end

Public Instance Methods

filter_primary!(primary_num) click to toggle source
# File lib/iface/value_set/pair.rb, line 111
def filter_primary!(primary_num)
  @value = @value.reject { |ip_num, _mask| ip_num == primary_num }
  self
end
value() click to toggle source
# File lib/iface/value_set/pair.rb, line 107
def value
  @value.map { |ip_num, mask| "#{IpV6Address.from_numeric(ip_num)}/#{mask}" }.join(' ')
end
value=(new_value) click to toggle source
# File lib/iface/value_set/pair.rb, line 96
def value=(new_value)
  ips = new_value.map do |ip_with_mask|
    ip, mask = ip_with_mask.split(%r{/})
    [IpV6Address.new(ip).to_i, mask || 128]
  end.uniq.sort
  @value = ips
  ipv6_primary = @value_set.fetch_raw('ipv6addr')
  filter_primary!(ipv6_primary) if ipv6_primary
  self
end