1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
== ipaddress 0.8.0
CHANGED:: Removed extension methods and extension directory to facilitate integration with the stdlib
CHANGED:: Reworked IPv4#<=>, now intuitively sorts objects based on the prefix
CHANGED:: IPv4#supernet now returns "0.0.0.0/0" if supernetting with a prefix less than 1
CHANGED:: IPv4#subnet now accept a new prefix instead of number of subnets (as per RFC3531)
NEW:: IPv6#network
NEW:: Prefix128#host_prefix
NEW:: IPv6#broadcast_u128
NEW:: IPv6#each
NEW:: IPv6#<=>
NEW:: IPv4#split
== ipaddress 0.7.5
CHANGED:: IPAddress::IPv4#each_host to improve speed
FIXED:: IPAddress::IPv4::summarize bug (summarization should now work properly)
NEW:: IPAddress::IPv4#include_all?
NEW:: #ipv4? and #ipv6?
== ipaddress 0.7.0
NEW:: IPAddress::IPv6#include?
NEW:: IPAddress::IPv6#network_u128
NEW:: Modified IPAddress::IPv6::Mapped to accept IPv4 mapped addresses in IPv6 format
NEW:: IPAddress::IPv4#private?
NEW:: IPAddress::IPv4::parse_classful
== ipaddress 0.6.0
=== API changes
* IPv4#to_s now returns the address portion only,
to retain compatibility with IPAddr. Example:
IPAddress("172.16.10.1/24").to_s
#=> "172.16.10.1" # ipaddress 0.6.0
IPAddress("172.16.10.1/24").to_s
#=> "172.16.10.1/24" # ipaddress 0.5.0
* IPv6#to_s now returns the address portion only,
to retain compatibility with IPAddr. Example:
IPAddress "2001:db8::8:800:200c:417a/64".to_s
#=> "2001:db8::8:800:200c:417a" # ipaddress 0.6.0
IPAddress "2001:db8::8:800:200c:417a/64".to_s
#=> "2001:db8::8:800:200c:417a/64" # ipaddress 0.6.0
* IPv6::Unspecified#to_s, IPv6::Loopback and
IPv6::Mapped#to_s now return the address portion only,
to retain compatibility with IPAddr.
* IPv4::summarize now returns an array even if the
result is a single subnet, to keep consistency
and avoid confusion
=== New methods
* IPv4#to_string and IPv6#to_string: print the address
with the prefix portion, like the #to_s method in
ipaddress 0.5.0
* IPAddress::parse, for those who don't like the wrapper
method IPAddress()
* IPv6#to_string_uncompressed, returns a string with the
uncompressed IPv6 and the prefix
* IPv6::Mapped#to_string, returns the IPv6 Mapped address
with IPv4 notation and the prefix
* IPv6#reverse, returns the ip6.arpa DNS reverse lookup
string
* IPv4#arpa and IPv6#arpa, alias of the respective #reverse
methods
* Prefix#+, Prefix#-
=== Library structure
* Moved all the IPAddress module methods from
lib/ipaddress/ipbase.rb to lib/ipaddress.rb
* Removed IPBase superclass
* IPv4 and IPv6 classes no longer inherit from IPBase
* Removed lib/ipaddress/ipbase.rb
* Removed test/ipaddress/ipbase_test.rb
=== Minor fixes
* Replaced Ruby 1.9 deprecated Hash#index with Hash#key
* Removed require ruby-prof from tests which was causing
users to install ruby-prof or manually remove the line
* Removed "must" method from tests, replaced by normal
Test::Unit methods
* Removed duplicate Jeweler entry in Rakefile
* Made Integer#closest_power_of_2 more general by adding
an optional limit parameter
* Fixed summarization algorithm (thanks to nicolas fevrier)
* Fixed bug in prefix_from_ip (thanks to jdpace)
=== Documentation
* Normalized README rdoc headers
* Added documentation for IPAddress::Prefix
* Added documentation for IPAddress::IPv4 and
IPAddress::IPv6
* Fixed formatting
* Fixed lots of typos
|