summaryrefslogtreecommitdiff
path: root/CHANGELOG.rdoc
blob: f20bdaddf3c56072ab3f15fcaac137e6016a6eef (plain)
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
== ipaddress 0.8.0

CHANGED:: Removed extension methods and extension directory to easy 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
NEW::     IPv6#network
NEW::     Prefix128#host_prefix
NEW::     IPv6#broadcast_u128
NEW::     IPv6#each
NEW::     IPv6#<=>

== 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