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 135 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 163 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 141 def data=(data) set(split_data(data)) end
each() { |item| ... }
click to toggle source
# File lib/dhcp/options.rb, line 181 def each split_data(@data).each do |item| yield item end end
get()
click to toggle source
# File lib/dhcp/options.rb, line 145 def get split_data(@data) ## Splits and interprets binary data end
is_list?(list)
click to toggle source
# File lib/dhcp/options.rb, line 159 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 149 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 173 def size @size end
split_data(data)
click to toggle source
# File lib/dhcp/options.rb, line 169 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 177 def to_s opt_header + '=[' + map{|x| x.to_s}.join(',') + ']' end