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