Sha256: 1f46517139095fedc177641ed48bed05786a627fec46dbddc5354b5055e46192
Contents?: true
Size: 1.13 KB
Versions: 12
Compression:
Stored size: 1.13 KB
Contents
#Author: Piotr Wojcieszonek #e-mail: piotr@wojcieszonek.pl # Copyright 22.03.2016 by Piotr Wojcieszonek module Lib module DHCP class Option module Type module String def self.included(base) base.send :include, InstanceMethods base.extend ClassMethods end def initialize(message) oid = self.class.name.split('::').last.sub(/Option/, '').to_i super oid, message.to_s end module InstanceMethods def pack [@oid, @payload.size, @payload.to_s].pack('C2a*') end def len @payload.size end def to_s @payload.to_s end def payload=(message) @payload = message.to_s end end module ClassMethods def unpack(oid, len, payload) raise ArgumentError, "Wrong #{Lib::DHCP::Option::NAME[oid]} Option length - #{len}" unless len > 0 self.new payload#.unpack('a*').first.to_s end end end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems