Sha256: b0b30f4a5f0779d5cee022065d878b05f547df6ed5a598f301196658ed006671

Contents?: true

Size: 1.2 KB

Versions: 10

Compression:

Stored size: 1.2 KB

Contents

#Author: Piotr Wojcieszonek
#e-mail: piotr@wojcieszonek.pl
# Copyright 22.03.2016 by Piotr Wojcieszonek


require_relative 'option'

module Lib
  module DHCP
    class Option55 < Option
      # Parameter Request List The code for this option is 55.  Its minimum length is 1.

      def_delegators :@payload, :map, :map!, :[], :[]=, :each, :<<, :shift, :pop

      def initialize(*request_option)
        super PARAMETER_REQUEST, request_option
      end

      def pack
        [@oid, @payload.size, *@payload].pack('C*')
      end

      def to_s
        @payload.join(', ')
      end

      def len
        @payload.size
      end

      def payload=(*request_option)
        @payload = request_option
      end

      # def <<(request_option)
      #   @payload << request_option
      # end

      alias_method :request_option, :payload
      alias_method :request_option=, :payload=
      alias_method :add, :<<

      private

      def self.unpack(oid, len, payload)
        raise ArgumentError, "OID Mismatch for #{NAME[oid]} - #{oid}" unless oid.to_i == PARAMETER_REQUEST
        raise ArgumentError, "Wrong #{NAME[oid]} length - #{len}" unless len > 1
        self.new *payload.unpack('C*')
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lib-dhcp-0.2.3 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.2.2 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.2.1 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.2.0 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.8 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.4 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.3 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.2 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.1 lib/lib/dhcp/options/option55.rb
lib-dhcp-0.1.0 lib/lib/dhcp/options/option55.rb