Sha256: 684ff4cabb2ee8a827736573d02d9cff3e81d2062d4a6d5f3c03108369ed0a6a

Contents?: true

Size: 996 Bytes

Versions: 12

Compression:

Stored size: 996 Bytes

Contents

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


require 'lib/dhcp/options/type/ip_address'
require 'net/address'

#TODO Implement :each

module Lib
  module DHCP
    class Option
      module Type
        module IPArray

          def self.included(base)
            base.send :include, Lib::DHCP::Option::Type::IPAddress
          end

          def <<(address)
            unless @payload.is_a? Array
              payload = @payload
              @payload = [] #Array.new
              @payload << payload
            end
            @payload << (address.is_a? Net::Address::IPv4) ? address : Net::Address::IPv4.new(address)
          end

          def payload=(*address)
            address = address.split(',') if address.is_a? String
            @payload = address.map { |ip| (ip.is_a? Net::Address::IPv4) ? ip : Net::Address::IPv4.new(ip) }
          end

          alias_method :add, :<<

        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
lib-dhcp-0.2.5 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.2.4 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.2.3 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.2.2 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.2.1 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.2.0 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.8 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.4 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.3 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.2 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.1 lib/lib/dhcp/options/type/ip_array.rb
lib-dhcp-0.1.0 lib/lib/dhcp/options/type/ip_array.rb