class OpenFlow::Protocol::ArrayOfSubclasses
Public Instance Methods
get()
click to toggle source
# File lib/openflow-protocol/helpers/array_of_subclasses.rb, line 10 def get items = [] tmp = binary until tmp.empty? type_index = BinData::Uint16be.read(tmp) type_str = types.fetch(type_index) class_name = name + type_str.to_s.split('_').map(&:capitalize).join klass = OpenFlow::Protocol.const_get class_name item = klass.read(tmp) items << item tmp = tmp[item.len..-1] end items end
set(value)
click to toggle source
# File lib/openflow-protocol/helpers/array_of_subclasses.rb, line 25 def set(value) self.binary = value.map(&:to_binary_s).join end
Private Instance Methods
name()
click to toggle source
# File lib/openflow-protocol/helpers/array_of_subclasses.rb, line 31 def name plural = self.class.to_s return plural[0..-4] + 'y' if plural[-3..-1] == 'ies' plural[0..-2] end
types()
click to toggle source
# File lib/openflow-protocol/helpers/array_of_subclasses.rb, line 37 def types OpenFlow::Protocol.const_get(name + '::TYPES') end