Sha256: ef4c7b8c8342a1ebc7245ddfeb8d0506db96ee436df2083412013ac9347ce7ea
Contents?: true
Size: 902 Bytes
Versions: 1
Compression:
Stored size: 902 Bytes
Contents
require 'active_support/core_ext/module/attribute_accessors' require 'active_support/core_ext/string/inflections' module Pio module OpenFlow # Error message parser module ErrorMessage mattr_reader(:type) { 1 } # rubocop:disable AbcSize def read(binary) body = OpenFlow::Header.read(binary).body error = const_get(:BodyParser).read(body) klass = error_classes.find do |each| each.name.split('::').last.underscore == error.error_type.to_s end unless klass raise 'Unknown error message '\ "(type=#{error.error_type}, code=#{error.error_code})" end klass.read binary end # rubocop:enable AbcSize def error_classes OpenFlow::Message.descendants.select do |each| each.parents.include? parent.const_get(:Error) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pio-0.30.1 | lib/pio/open_flow/error_message.rb |