class DHCP::OptListData

Class for DHCP options that contain a lists (like lists of IPs)

Public Class Methods

new(opt, name, data=nil) click to toggle source
Calls superclass method DHCP::OptData.new
# File lib/dhcp/options.rb, line 102
def initialize(opt, name, data=nil)
  super(opt, name)
  @size = 0
  set(data) unless data.nil?
end

Public Instance Methods

append(item) click to toggle source
# File lib/dhcp/options.rb, line 130
def append(item)
  @size += 1
  @data += data_to_bin(item)
  self ## Chainable
end
data=(data) click to toggle source
# File lib/dhcp/options.rb, line 108
def data=(data)
  set(split_data(data))
end
each() { |item| ... } click to toggle source
# File lib/dhcp/options.rb, line 148
def each
  split_data(@data).each do |item|
    yield item
  end
end
get() click to toggle source
# File lib/dhcp/options.rb, line 112
def get
  split_data(@data)  ## Splits and interprets binary data
end
is_list?(list) click to toggle source
# File lib/dhcp/options.rb, line 126
def is_list?(list) ## Override if needed in child class
  list.is_a?(Array)
end
set(list) click to toggle source
# File lib/dhcp/options.rb, line 116
def set(list)
  list = [list] unless is_list?(list)
  @data = ''
  @size = 0
  list.each do |item|
    append(item)
  end
  self ## Chainable
end
size() click to toggle source
# File lib/dhcp/options.rb, line 140
def size
  @size
end
split_data(data) click to toggle source
# File lib/dhcp/options.rb, line 136
def split_data(data) ## Override in child class to split and interpret binary data
  raise "Child class #{data.class} MUST override this"
end
to_s() click to toggle source
# File lib/dhcp/options.rb, line 144
def to_s
  opt_header + '=[' + map{|x| x.to_s}.join(',') + ']'
end