class JunosConfig::Security::AddressBook

Attributes

address_sets[RW]
addresses[RW]
config[RW]
name[RW]
raw[RW]

Public Class Methods

new(config, raw) click to toggle source
# File lib/junos-config/security/addressbook.rb, line 10
def initialize(config, raw)
  @config = config
  @raw    = raw        
  @addresses = raw.scan(/^(\ {16}address \S+ \S+;)$/).collect do |x|
    Security::Address.new self, x[0]
  end
  @address_sets = raw.scan(/^(\ {16}address-set \S+ \{$.*?^\ {16}\})$/m).collect do |x|
    Security::AddressSet.new self, x[0]
  end
  @resolv = {}
  @addresses.each { |a| @resolv[a.name] = a }
  @address_sets.each do |as|
    @resolv[as.name] = as
    aset = as.lookup_addresses(self)
    aset.each{ |a| @resolv[a.name] = a }
  end
end

Public Instance Methods

lookup(name) click to toggle source
# File lib/junos-config/security/addressbook.rb, line 32
def lookup(name)
  addrs = resolve(name)
  return unless addrs
  return addrs.addresses if addrs.class == JunosConfig::Security::AddressSet
  [addrs]
end
resolve(name) click to toggle source
# File lib/junos-config/security/addressbook.rb, line 28
def resolve(name)
  @resolv[name]
end