зеркало из https://github.com/github/ruby.git
192 строки
4.8 KiB
Plaintext
192 строки
4.8 KiB
Plaintext
= 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.9.1 release
|
|
|
|
=== Library updates (outstanding ones only)
|
|
|
|
* builtin classes
|
|
|
|
* Array
|
|
* new method:
|
|
* Array#sort_by!
|
|
|
|
* Dir
|
|
* new method:
|
|
* Dir.home
|
|
|
|
* Enumerator
|
|
* extended methods:
|
|
* #with_index accepts an optional argument that specifies the
|
|
index number to start with, defaulted to 0.
|
|
|
|
* incompatible changes:
|
|
* #rewind now calls the "rewind" method of the enclosed object
|
|
if defined.
|
|
|
|
* IO
|
|
* extended methods:
|
|
* IO.pipe can take a block.
|
|
|
|
* new modules:
|
|
* IO::WaitReadable
|
|
* IO::WaitWritable
|
|
They are used to extend non-blocking exceptions.
|
|
|
|
* Process
|
|
* extended methods:
|
|
* Process.spawn accepts [:child, FD] for a redirect target.
|
|
|
|
* String
|
|
* extended methods:
|
|
* string[regexp, name] is supported for named capture.
|
|
|
|
* rss
|
|
|
|
* 0.2.4 -> 0.2.5
|
|
|
|
* RSS::Maker.make
|
|
* raise an exception not returns nil for invalid feed making.
|
|
* requires block.
|
|
|
|
* RSS::Maker.[]
|
|
* new method to return maker class.
|
|
|
|
* REXML
|
|
|
|
* REXML::Document.entity_expansion_limit=
|
|
|
|
New method to set the entity expansion limit. By default the limit is
|
|
set to 10000. See the following URL for details.
|
|
|
|
http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/
|
|
|
|
* logger
|
|
|
|
* imported upstream version (logger/1.2.7)
|
|
* do not raise an exception even if log writing failed.
|
|
* do not raise ShiftingError if an aged file already exists.
|
|
(no ShiftingError will be raised from 1.2.7, just warn() instead)
|
|
|
|
* open3
|
|
* new methods:
|
|
* Open3.popen2
|
|
* Open3.popen2e
|
|
* Open3.capture3
|
|
* Open3.capture2
|
|
* Open3.capture2e
|
|
* Open3.pipeline_rw
|
|
* Open3.pipeline_r
|
|
* Open3.pipeline_w
|
|
* Open3.pipeline_start
|
|
* Open3.pipeline
|
|
|
|
* pty
|
|
* new method:
|
|
* PTY.open
|
|
|
|
* openssl
|
|
* new methods:
|
|
* OpenSSL::Buffering#read_nonblock
|
|
* OpenSSL::Buffering#write_nonblock
|
|
* OpenSSL::SSL::SSLSocket#connect_nonblock
|
|
* OpenSSL::SSL::SSLSocket#accept_nonblock
|
|
|
|
* socket
|
|
|
|
* incompatible changes:
|
|
* Socket#{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept}
|
|
returns a sender address as Addrinfo object instead of a binary sockaddr string.
|
|
Addrinfo#to_s returns the old binary sockaddr string.
|
|
* BasicSocket#getsockopt returns Socket::Option object instead of a binary string.
|
|
Socket::Option#to_s returns the old binary string.
|
|
|
|
* new class:
|
|
* Addrinfo
|
|
* Socket::Option
|
|
* Socket::AncillaryData
|
|
|
|
* new methods:
|
|
* Socket.ip_address_list
|
|
* Socket.tcp
|
|
* Socket.tcp_server_loop
|
|
* Socket.tcp_server_sockets
|
|
* Socket.unix
|
|
* Socket.unix_server_loop
|
|
* Socket.unix_server_socket
|
|
* Socket.accept_loop
|
|
* Socket#ipv6only!
|
|
* BasicSocket#local_address
|
|
* BasicSocket#remote_address
|
|
* BasicSocket#connect_address
|
|
* BasicSocket#sendmsg
|
|
* BasicSocket#sendmsg_nonblock
|
|
* BasicSocket#recvmsg
|
|
* BasicSocket#recvmsg_nonblock
|
|
* BasicSocket#getpeereid
|
|
|
|
* extended methods:
|
|
* Socket.new's 3rd argument is optional now.
|
|
* Socket.pair's 3rd argument is optional now.
|
|
* Socket.pair and UNIXSocket.pair can take a block.
|
|
* BasicSocket#send, UDPSocket#send, Socket.getnameinfo, Socket#bind, and
|
|
Socket#{connect,connect_nonblock} accepts an Addrinfo object as sockaddr.
|
|
* BasicSocket#getsockopt accepts a Socket::Option object.
|
|
|
|
* constant names can be accepted as well as constant values.
|
|
i.e. Socket.new(:PF_INET, :SOCK_STREAM, 0)
|
|
The constant names can be specified without the prefix.
|
|
i.e. Socket.new(:INET, :STREAM, 0)
|
|
* protocol/address family
|
|
* socket type
|
|
* socket option protocol level
|
|
* socket option name
|
|
* shutdown's argument
|
|
|
|
* pathname
|
|
* new methods:
|
|
* Pathname#binread
|
|
* Pathname#realdirpath
|
|
* Pathname#each_child
|
|
|
|
* Readline
|
|
* new methods:
|
|
* Readline.set_screen_size
|
|
* Readline.get_screen_size
|
|
|
|
* extended methods:
|
|
* Readline.completion_proc= accepts nil.
|
|
nil means to use default completion proc.
|
|
|
|
* time
|
|
* incompatible changes:
|
|
* Time.parse raises ArgumentError when no date information.
|
|
|
|
* securerandom
|
|
* new methods:
|
|
* SecureRandom.urlsafe_base64
|
|
|
|
* etc
|
|
* new methods:
|
|
* Etc::Passwd.each
|
|
* Etc::Group.each
|
|
|
|
=== Compatibility issues (excluding feature bug fixes)
|
|
|
|
* Enumerator#rewind
|
|
* Socket#recvfrom
|
|
* Socket#recvfrom_nonblock
|
|
* Socket#accept
|
|
* Socket#accept_nonblock
|
|
* Socket#sysaccept
|
|
* BasicSocket#getsockopt
|
|
* Time.parse
|
|
|
|
See above.
|