Sha256: 5baf6888519b352259ed935163cd26510a5d79f4923a6ae58764fd0ed5603972

Contents?: true

Size: 799 Bytes

Versions: 3

Compression:

Stored size: 799 Bytes

Contents

module PacketGen
  module Header

    module HeaderClassMethods

      # Simple class to handle header association
      Binding = Struct.new(:key, :value)

      # Bind a upper header to current class
      # @param [Class] header_klass header class to bind to current class
      # @param [Hash] args current class field and its value when +header_klass+
      #  is embedded in current class
      # @return [void]
      def bind_header(header_klass, args={})
        @known_headers ||= {}
        key = args.keys.first
        @known_headers[header_klass] = Binding.new(key, args[key])
      end

      # Get knwon headers
      # @return [Hash] keys: header classes, values: struct with methods #key and #value
      def known_headers
        @known_headers ||= {}
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
packetgen-0.3.0 lib/packetgen/header/header_class_methods.rb
packetgen-0.2.0 lib/packetgen/header/header_class_methods.rb
packetgen-0.1.0 lib/packetgen/header/header_class_methods.rb