module Lib::DHCP::Option::Type::IPAddress
Public Class Methods
included(base)
click to toggle source
# File lib/lib/dhcp/options/type/ip_address.rb, line 13 def self.included(base) base.extend ClassMethods end
new(*address)
click to toggle source
Calls superclass method
# File lib/lib/dhcp/options/type/ip_address.rb, line 17 def initialize(*address) raise ArgumentError, 'To few argument - nil' if address.nil? oid = self.class.name.split('::').last.sub(/Option/, '').to_i if address.size == 1 address = address.first.split(',') if address.first.is_a? ::String end case address.size when 0 raise ArgumentError, 'To few argument - 0' when 1 address = address.first super oid, (address.is_a? Net::Address::IPv4) ? address : Net::Address::IPv4.new(address) else super oid, address.map {|ip| (ip.is_a? Net::Address::IPv4) ? ip : Net::Address::IPv4.new(ip)} end end
Public Instance Methods
len()
click to toggle source
# File lib/lib/dhcp/options/type/ip_address.rb, line 48 def len if @payload.is_a? Array @payload.size * 4 else 4 end end
pack()
click to toggle source
# File lib/lib/dhcp/options/type/ip_address.rb, line 38 def pack if @payload.is_a? Array #len = @payload.size * 4 [@oid, len, @payload.map(&:to_i)].flatten.pack('C2N*') else raise ArgumentError, 'Argument must be a IP ' unless @payload.is_a? Net::Address::IPv4 [@oid, 4, @payload.to_i].pack('C2N') end end
payload=(address)
click to toggle source
# File lib/lib/dhcp/options/type/ip_address.rb, line 56 def payload=(address) (address.is_a? Net::Address::IPv4) ? @payload = address : @payload = Net::Address::IPv4.new(address) end
to_s()
click to toggle source
# File lib/lib/dhcp/options/type/ip_address.rb, line 34 def to_s @payload.to_s end