class DHCP::OptListFixedData

Class for DHCP options that contain lists of fixed sized data

Attributes

item_size[RW]

Public Instance Methods

data_to_bin(item) click to toggle source
# File lib/dhcp/options.rb, line 280
def data_to_bin(item)  ## Override in child, but call super(item)
                       ## with the resulting translated data after
                       ## data translation so the size check is
                       ## applied (or do a size check in the child):
  raise "Invalid data item length #{item.size} (expected #{self.class.item_size})" unless item.size == self.class.item_size
  item
end
split_data(data) click to toggle source
# File lib/dhcp/options.rb, line 269
def split_data(data)
  raise "Child class #{self.class} MUST override class item_size variable with non-zero value!" if self.class.item_size == 0
  raise "Invalid data length #{data.size} (expected even multiple of #{self.class.item_size})" unless data.size % self.class.item_size == 0
  list = []
  data = data.dup
  while data.size > 0
    list << bin_to_data(data.slice!(0,self.class.item_size))
  end
  list
end