summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ipaddress/prefix.rb4
-rw-r--r--test/ipaddress/ipv4_test.rb3
-rw-r--r--test/ipaddress/prefix_test.rb6
3 files changed, 10 insertions, 3 deletions
diff --git a/lib/ipaddress/prefix.rb b/lib/ipaddress/prefix.rb
index c881811..96452de 100644
--- a/lib/ipaddress/prefix.rb
+++ b/lib/ipaddress/prefix.rb
@@ -92,7 +92,7 @@ module IPAddress
# #=> 24
#
def initialize(num)
- unless (1..32).include? num
+ unless (0..32).include? num
raise ArgumentError, "Prefix must be in range 1..32, got: #{num}"
end
super(num)
@@ -121,7 +121,7 @@ module IPAddress
# #=> "11111111111111111111111100000000"
#
def bits
- to_u32.to_s(2)
+ "%.32b" % to_u32
end
#
diff --git a/test/ipaddress/ipv4_test.rb b/test/ipaddress/ipv4_test.rb
index c81ee8c..475e678 100644
--- a/test/ipaddress/ipv4_test.rb
+++ b/test/ipaddress/ipv4_test.rb
@@ -6,6 +6,7 @@ class IPv4Test < Test::Unit::TestCase
@klass = IPAddress::IPv4
@valid_ipv4 = {
+ "0.0.0.0/0" => ["0.0.0.0", 0],
"10.0.0.0" => ["10.0.0.0", 32],
"10.0.0.1" => ["10.0.0.1", 32],
"10.0.0.1/24" => ["10.0.0.1", 24],
@@ -21,12 +22,14 @@ class IPv4Test < Test::Unit::TestCase
"10.1-254.0.0"]
@netmask_values = {
+ "0.0.0.0/0" => "0.0.0.0",
"10.0.0.0/8" => "255.0.0.0",
"172.16.0.0/16" => "255.255.0.0",
"192.168.0.0/24" => "255.255.255.0",
"192.168.100.4/30" => "255.255.255.252"}
@decimal_values ={
+ "0.0.0.0/0" => 0,
"10.0.0.0/8" => 167772160,
"172.16.0.0/16" => 2886729728,
"192.168.0.0/24" => 3232235520,
diff --git a/test/ipaddress/prefix_test.rb b/test/ipaddress/prefix_test.rb
index 5925356..bff812e 100644
--- a/test/ipaddress/prefix_test.rb
+++ b/test/ipaddress/prefix_test.rb
@@ -3,25 +3,29 @@ require 'test_helper'
class Prefix32Test < Test::Unit::TestCase
def setup
+ @netmask0 = "0.0.0.0"
@netmask8 = "255.0.0.0"
@netmask16 = "255.255.0.0"
@netmask24 = "255.255.255.0"
@netmask30 = "255.255.255.252"
- @netmasks = [@netmask8,@netmask16,@netmask24,@netmask30]
+ @netmasks = [@netmask0,@netmask8,@netmask16,@netmask24,@netmask30]
@prefix_hash = {
+ "0.0.0.0" => 0,
"255.0.0.0" => 8,
"255.255.0.0" => 16,
"255.255.255.0" => 24,
"255.255.255.252" => 30}
@octets_hash = {
+ [0,0,0,0] => 0,
[255,0,0,0] => 8,
[255,255,0,0] => 16,
[255,255,255,0] => 24,
[255,255,255,252] => 30}
@u32_hash = {
+ 0 => 0,
8 => 4278190080,
16 => 4294901760,
24 => 4294967040,