diff options
Diffstat (limited to 'NEWS')
| -rw-r--r-- | NEWS | 497 |
1 files changed, 0 insertions, 497 deletions
@@ -1,497 +0,0 @@ -= NEWS - -This document is a list of user visible feature changes made between -releases except for bug fixes. - -Note that each entry is kept so brief that no reason behind or -reference information is supplied with. For a full list of changes -with all sufficient information, see the ChangeLog file. - -== Changes since the 1.8.6 release - -=== Library updates (outstanding ones only) - -* new library - - * securerandom - -* builtin classes - - * Array#flatten - * Array#flatten! - - Takes an optional argument that determines the level of recursion - to flatten. - - * Array#eql? - * Array#hash - * Array#== - * Array#<=> - - Handle recursive data properly. - - * Array#index - * Array#rindex - - Take a block instead of an argument. - - * Array#collect! - * Array#map! - * Array#each - * Array#each_index - * Array#reverse_each - * Array#reject - * Array#reject! - * Array#delete_if - - Return an enumerator if no block is given. - - Note that #map and #collect still return an array unlike Ruby 1.9 - to keep compatibility. - - * Array#pop - * Array#shift - - Take an optional argument specifying the number of elements to - remove. - - * Array#choice - * Array#combination - * Array#cycle - * Array#drop - * Array#drop_while - * Array#permutation - * Array#product - * Array#shuffle - * Array#shuffle! - * Array#take, - * Array#take_while - - New methods. - - * Binding#eval - - New method. - - * Dir#each - * Dir#foreach - - Return an enumerator if no block is given. - - * Enumerable::Enumerator - - New class for various enumeration defined by the enumerator library. - - * Enumerable#each_slice - * Enumerable#each_cons - * Object#to_enum - * Object#enum_for - - New methods for various enumeration defined by the enumerator library. - - * Enumerable#count - * Enumerable#cycle - * Enumerable#drop - * Enumerable#drop_while - * Enumerable#find_index - * Enumerable#first - * Enumerable#group_by - * Enumerable#max_by - * Enumerable#min_by - * Enumerable#minmax - * Enumerable#minmax_by - * Enumerable#none? - * Enumerable#one? - * Enumerable#take - * Enumerable#take_while - - New methods. - - * Enumerable#find - * Enumerable#find_all - * Enumerable#partition - * Enumerable#reject - * Enumerable#select - * Enumerable#sort_by - - Return an enumerator if no block is given. - - Note that #map and #collect still return an array unlike Ruby 1.9 - to keep compatibility. - - * Enumerable#inject - - Accepts a binary operator instead of a block. - - * Enumerable#reduce - - New alias to #inject. - - * Hash#eql? - * Hash#hash - * Hash#== - - Handle recursive data properly. - - * Hash#delete_if - * Hash#each - * Hash#each_key - * Hash#each_pair - * Hash#each_value - * Hash#reject! - * Hash#select - * ENV.delete_if - * ENV.each - * ENV.each_key - * ENV.each_pair - * ENV.each_value - * ENV.reject! - * ENV.select - - Return an enumerator if no block is given. - - * GC.stress - * GC.stress= - - New methods. - - * Integer#ord - * Integer#odd? - * Integer#even? - * Integer#pred - - New methods. - - * Integer#downto - * Integer#times - * Integer#upto - - Return an enumerator if no block is given. - - * IO#each - * IO#each_line - * IO#each_byte - * IO.foreach - * ARGF.each - * ARGF.each_line - * ARGF.each_byte - - Return an enumerator if no block is given. - - * Method#receiver - * Method#name - * Method#owner - * UnboundMethod#name - * UnboundMethod#owner - - New methods. - - * Numeric#step - - Return an enumerator if no block is given. - - * Object#tap implemented. - - * ObjectSpace.each_object - - Return an enumerator if no block is given. - - * Process.exec implemented. - - * Range#each - * Range#step - - Return an enumerator if no block is given. - - * Regexp.union accepts an array of patterns. - - * String#bytesize - - New method, returning the size in bytes. (alias length and size) - - * String#chars - * String#each_char - * String#partition - * String#rpartition - * String#start_with? - * String#end_with? - - New methods. These are $KCODE aware unlike #index, #rindex and - #include?. - - * String#each_byte - * String#each - * String#each_lines - * String#gsub(pattern) - - Return an enumerator if no block is given. - - * StopIteration - - New exception class that causes Kernel#loop to stop iteration when - raised. - - * Struct#each - * Struct#each_pair - - Return an enumerator if no block is given. - - * Symbol#to_proc - - New method. - - * __method__ - - New global function that returns the name of the current method as - a Symbol. - -* enumerator - - * Enumerator is now a built-in module. The #next and #rewind - methods are implemented using the "generator" library. Use with - care and be aware of the performance loss. - -* ipaddr - - * New methods - * IPAddr#<=> - * IPAddr#succ - - IPAddr objects are now comparable and enumerable having these - methods. This also means that it is possible to have a Range - object between two IPAddr objects. - - * IPAddr#to_range - - A new method to create a Range object for the (network) address. - - * Type coercion support - * IPAddr#& - * IPAddr#| - * IPAddr#== - * IPAddr#include? - - These methods now accept a string or an integer instead of an - IPAddr object as the argument. - -* net/smtp - - * Support SSL/TLS. - -* openssl - - * New classes - * OpenSSL::PKey::EC - * OpenSSL::PKey::EC::Group - * OpenSSL::PKey::EC::Point - * OpenSSL::PKey::PKCS5 - * OpenSSL::SSL::Session - - * Documentation! - - * Various new methods (see documentation). - - * Remove redundant module namespace in Cipher, Digest, PKCS7, PKCS12. - Compatibility classes are provided which will be removed in Ruby 1.9. - -* shellwords - - * Add methods for escaping shell-unsafe characters: - * Shellwords.join - * Shellwords.escape - * Array#shelljoin - * String#shellescape - - * Add shorthand methods: - * Shellwords.split (alias shellwords) - * String#shellsplit - -* tempfile - - * Tempfile.open and Tempfile.new now accept a suffix for the - temporary file to be created. To specify a suffix, pass an array - of [basename, suffix] as the first argument. - - Tempfile.open(['image', 'jpg']) { |tempfile| ... } - -* uri - - * added LDAPS scheme. - * Change for RFC3986: - * FTP - * URI('ftp://example.com/foo').path #=> 'foo' - * URI('ftp://example.com/%2Ffoo').path #=> '/foo' - * URI::FTP.build([nil, 'example.com', nil, '/foo', 'i').to_s #=> 'ftp://example.com/%2Ffoo;type=i' - * URI merge - * URI('http://a/b/c/d;p?q').merge('?y') == URI('http://a/b/c/d;p?y') - * URI('http://a/b/c/d;p?q').merge('/./g') == URI('http://a/g') - * URI('http://a/b/c/d;p?q').merge('/../g') == URI('http://a/g') - * URI('http://a/b/c/d;p?q').merge('../../../g') == URI('http://a/g') - * URI('http://a/b/c/d;p?q').merge('../../../../g') == URI('http://a/g') - -* rss - - * 0.1.6 -> 0.2.4 - - * Fix image module URI - - * Atom support - - * ITunes module support - - * Slash module support - - * content:encoded with RSS 2.0 support - -=== Interpreter Implementation - -* stack trace - - On non-SystemStackError exception, full stack trace is shown. - -=== Compatibility issues (excluding feature bug fixes) - -* String#to_i, String#hex and String#oct no longer accept a sequence - of underscores (`__') as part of a number. - - # Ruby 1.8.6 - '1__0'.to_i #=> 10 - '1__0'.to_i(2) #=> 2 # 0b10 - '1__0'.oct #=> 8 # 010 - '1__0'.hex #=> 16 # 0x10 - - # Ruby 1.8.7 - '1__0'.to_i #=> 1 - '1__0'.to_i(2) #=> 1 - '1__0'.oct #=> 1 - '1__0'.hex #=> 1 - - The old behavior was inconsistent with Ruby syntax and considered as - a bug. - -* tempfile - - * The file name format has changed. No dots are included by default - in temporary file names any more. See above for how to specify a - suffix. - -* tmpdir - - * New method: - * Dir.mktmpdir - -* uri - - * See above for details. - -== Changes since the 1.8.5 release - -=== New platforms/build tools support - -* IA64 HP-UX - -* Visual C++ 8 SP1 - -* autoconf 2.6x - -=== Library updates (outstanding ones only) - -* builtin classes - - * New method: Kernel#instance_variable_defined? - - * New method: Module#class_variable_defined? - - * New feature: Dir::glob() can now take an array of glob patterns. - -* date - - * Updated based on date2 4.0.3. - -* digest - - * New internal APIs for C and Ruby. - - * Support for autoloading. - - require 'digest' - - # autoloads digest/md5 - md = Digest::MD5.digest("string") - - * New digest class methods: file - - * New digest instance methods: clone, reset, new, inspect, - digest_length (alias size or length), block_length() - - * New library: digest/bubblebabble - - * New function: Digest(name) - -* fileutils - - * New option for FileUtils.cp_r(): :remove_destination - -* nkf - - * Updated based on nkf as of 2007-01-28. - -* thread - - * Replaced with much faster mutex implementation in C. The former - implementation, which is slow but considered to be stable, is - available with a configure option `--disable-fastthread'. - -* tk - - * Updated Tile extension support based on Tile 0.7.8. - - * Support --without-X11 configure option for non-X11 versions of - Tcl/Tk (e.g. Tcl/Tk Aqua). - - * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble - about STDIN blocking on Windows. - -* webrick - - * New method: WEBrick::Cookie.parse_set_cookies() - -=== Compatibility issues (excluding feature bug fixes) - -* builtin classes - - * String#intern now raises SecurityError when $SAFE level is greater - than zero. - -* date - - * Time#to_date and Time#to_datetime are added as private methods. - They cause name conflict error in ActiveSupport 1.4.1 and prior, - which comes with Rails 1.2.2 and prior. Updating ActiveSupport - and/or Rails to the latest versions fixes the problem. - -* digest - - * The constructor does no longer take an initial string to feed. - The following examples show how to migrate: - - # Before - md = Digest::MD5.new("string") - # After (works with any version) - md = Digest::MD5.new.update("string") - - # Before - hd = Digest::MD5.new("string").hexdigest - # After (works with any version) - hd = Digest::MD5.hexdigest("string") - -* fileutils - - * A minor implementation change breaks Rake <=0.7.1. - Updating Rake to 0.7.2 or higher fixes the problem. - -* tk - - * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable - (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available, - but it is an alias name. |
