class Copper::DataTypes::IPAddress

Public Class Methods

new(value) click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 7
def initialize(value)
        if value.is_a? ::String
                @value = ::IPAddress.parse(value)
        elsif value.is_a?(::IPAddress::IPv4)
                @value = value
        elsif value.is_a?(::IPAddress::IPv6)
                @value = value
        else
                raise ::Copper::RuntimeError, "cannot convert #{value} to IPAddress"
        end
rescue ArgumentError => exc
        raise ::Copper::RuntimeError, exc.message
end

Public Instance Methods

address() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 45
def address
        @value.address
end
first() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 21
def first
        @value.first
end
full_address() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 41
def full_address
        @value.to_string
end
in(value) click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 29
def in(value)
        if value.is_a?(::Copper::DataTypes::IPAddress)
                to_check = value.ip_address
        elsif value.is_a?(::IPAddress)
                to_check = value
        else
                raise ::Copper::RuntimeError, "#{value} is not an IP address"
        end

        (@value.first.to_i <= to_check.to_i) && (@value.last.to_i >= to_check.to_i)
end
ip_address() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 85
def ip_address
        @value
end
is_class_a() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 73
def is_class_a
        @value.a?
end
is_class_b() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 77
def is_class_b
        @value.b?
end
is_class_c() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 81
def is_class_c
        @value.c?
end
is_loopback() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 65
def is_loopback
        @value.loopback?
end
is_multicast() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 69
def is_multicast
        @value.multicast?
end
is_network() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 61
def is_network
        @value.network?
end
last() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 25
def last
        @value.last
end
netmask() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 49
def netmask
        @value.netmask
end
octets() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 53
def octets
        @value.octets
end
prefix() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 57
def prefix
        @value.prefix.to_i
end
to_s() click to toggle source
# File lib/copper/data_types/ip_addr.rb, line 89
def to_s
        @value.to_string
end