Ruby 2.1.0 リファレンスマニュアル > ruby 1.8.2 feature
ruby 1.8.2 での ruby 1.8.1 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。 *単にバグを直しただけのものは収録しない。 *ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
*カテゴリ
*レベル
* cgi/session においてクライアントからセッション ID を指定できてしまうバグが
修正されました。
* cgi/session においてセッション情報を保存するファイル名にセッション ID が
使われるバグが修正されました。
* cgi の無限ループに陥る可能性のあるバグが修正されました。
((<URL:http://www.debian.org/security/2004/dsa-586>))
* 一連の core dumps バグが修正されました。
((<URL:https://magazine.rubyist.net/articles/0002/0002-RubyCore.html>))
* tk の変更点は
((<URL:https://magazine.rubyist.net/articles/0003/0003-RubyTkMovement.html>)) を参照して下さい。
* soap, wsdl の変更点は
((<URL:http://rrr.jin.gr.jp/projects/soap4r/wiki/Changes-ruby181_ruby182>)) を参照して下さい。
* rss, rdoc, yaml の変更点は収録していません。
常に 0 を返すバグが修正されました。
追加。
module for RFC2253 DN format.
new method to parse RFC2253 DN format.
常に警告がでるようになりました。Object#object_id を使って下さい。
'no_hidden' オプションを指定できるようになりました。((<ruby-talk:123850>))
削除 ((<ruby-dev:25206>))?
存在しないセッション ID がクライアントから送られてきた場合例外を投げずに新しいセッションを作成するようになりました。 ((<ruby-list:40368>))
シンタックスエラーにならないように修正しました。 ((<ruby-core:03922>))
式展開になる '#'がエスケープされるようになりました。 ((<ruby-core:03922>)) $ ruby1.8.1 -e "puts '# #{}'.inspect" "# #{}"
$ ruby1.8.2 -e "puts '# #{}'.inspect" "# \#{}"
式展開にならない '#'がエスケープされないようになりました。 ((<ruby-core:03922>)) $ ruby1.8.1 -e "puts '# #{}'.dump" "\# \#{}"
$ ruby1.8.2 -e "puts '# #{}'.dump" "# \#{}"
#item=/#set_item and so on are obsolete.
追加
((<ruby-talk:122482>))
Hash#hash は 2004-12-16 に削除されました。 ((<ruby-dev:25206>))?
パディングを指定出来るようになりました。((<ruby-talk:122539>))。PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING under OpenSSL::PKey::RSA.
new parameter to direct case insensitiveness.
((<ruby-dev:25048>))
NKF.guess は NKF.guess2 の alias になりました。 従来のものを使いたい場合は NKF.guess1 を使って下さい。
utf8 対応 nkf (nkf 2.x) の追加。
StringIO.newの第二引数にIO.newと同様、Fixnum も指定できるようになりました。 ((<ruby-dev:24896>))
add new option --exclude (-x). ((<ruby-dev:24865>))
'sufix' オプションを設定できるようになりました。
P 指定子以外では nil を 0 に変換しなくなりました。
$ ruby-1.8.1 -e 'p [nil].pack("L")' "\000\000\000\000" $ ruby-1.8.2 -e 'p [nil].pack("L")' -e:1:in `pack': cannot convert nil into Integer (TypeError) from -e:1 $ ruby-1.8.2 -e 'p [nil].pack("P")' "\000\000\000\000"
無限ループに陥る可能性のあるバグを修正しました。 ((<URL:http://www.debian.org/security/2004/dsa-586>))
PStore.new に指定したファイルがまだ存在しない場合に、PStore#transaction(true) を呼び出しても例外 Errno::ENOENT が発生しなくなりました。((<ruby-dev:24561>))
追加 ((<ruby-talk:116915>))
コマンドライン引数に与えたファイルを読んだ後には標準入力を読まなくなりました。 ((<ruby-dev:24452>))
"\377" を引数に受け取っても適切に振舞うようになりました。((<ruby-dev:24460>))
ブロックを渡したとき、false ではなく nil を返すようになりました。また、readdir しながらブロックを呼ぶのではなく、全部を配列に貯めてから each するようになりました。((<ruby-dev:24528>))
new methods. accept, accept_charset, accept_encoding, accept_language, content_length and content_type.
同じ名前で二度定義したときのバグを修正しました。((<ruby-dev:24210>))
セッションを保存するファイル名にセッション ID が使われるバグを修正しました。
追加。
mv が :force オプションを受け付けるようになりました。
Zlib::GzipReader#read(0) が nil ではなく "" を返すようになりました。
常に警告がでるようになりました。
セッションを保存するファイルの mode をデフォルトで 0600 にセットするようになりました。
追加。((<ruby-dev:23912>))
((<ruby-core:03195>))
uri で追加。((<ruby-dev:23784>))
new methods.
many new methods. p, p=, g, g=, pub_key, pub_key=, priv_key, priv_key=.
データベースの更新が成功したらバックアップファイルを残さず削除するようになりました。ファイル名に "~" が付いたバックアップファイルは残されません。((<ruby-list:39102>))
$SAFEが保存されない問題を修正しました。((<ruby-dev:23829>))
added new option --ssl
特異クラスが特異オブジェクトのクラスを継承していると見なされているバグを修正しました。((<ruby-dev:23690>))
$ ruby1.8.1 -e 'class X;end; x=X.new; class << x;p self < X; end' true
$ ruby1.8.2 -e 'class X;end; x=X.new; class << x;p self < X; end' nil
gets の返り値が nil でも、$_ に nil がセットされるようになりました。 ((<ruby-dev:23663>))
引数としてファイル名を受け付けなくなりました。文字列が渡されると、それをパースすべき文字列だと解釈します。
CSV.parse("1,2\n3,r") #=> [['1', '2'], ['3', 'r']]
CSV::Row と CSV::Cell が deprecated になりました。
必要ならばユーザが binmode をセットしなければならなくなりました。
追加。
特異メソッドを定義されていないオブジェクトを dump できない場合があったのを修正しました。 ((<ruby-dev:22631>))
特異クラス内のクラスを dump するとエラーになるようになりました。 ((<ruby-dev:22588>))
DBM.open に第3引数を追加し、DBM::READER, DBM::WRITER, DBM::WRCREAT, DBM::NEWDB を指定できるようになりました。 ((<ruby-dev:23520>))
"options" でログインプロンプトとパスワードプロンプトのための正規表現を指定できるようになりました。
Z* が最初の null までしかマッチしないようになりました。((<ruby-talk:98281>))
$ ruby1.8.1 -e 'p "abc\000def\000".unpack("Z*Z*")' ["abc\000def", ""]
$ ruby1.8.2 -e 'p "abc\000def\000".unpack("Z*Z*")' ["abc", "def"]
親クラスの違う同じ名前のクラスを再定義した時 TypeError を投げるようになりました。 ((<ruby-list:39567>))
$ ruby-1.8.2 -e ' class Foo Bar = 1 end class Foo < String Baz = 2 end ' -e:6: superclass mismatch for class Foo (TypeError)
Hash#== は内容が一致していれば真に、Hash#eql? は、さらにハッシュのデフォルト値が同じ(==)なら真になるよう定義されました。
h1 = Hash.new("a") h2 = Hash.new("a") h3 = Hash.new("b")
p h1 == h2 p h1.eql?(h2)
p h1 == h3 p h1.eql?(h3)
# => ruby 1.8.1 (2003-12-25) [i586-linux] true false false false # => ruby 1.8.2 (2004-07-17) [i586-linux] true true true false # => ruby 1.9.0 (2004-07-17) [i586-linux] true true true false
((<ruby-talk:97559>))
Hash#eql? は 2004-12-16 に削除されました。 ((<ruby-dev:25206>))?
nil を返さず、常に false か true を返すようになりました。((<ruby-dev:23404>))
$ ruby1.8.1 -e 'p "a" == :a' nil
$ ruby1.8.2 -e 'p "a" == :a' false
GDBM に read only などで access できるようになりました。((<ruby-dev:23381>))
((<ruby-dev:23385>))
オプション --with-static-linked-ext 付きでコンパイルした時の、 -r オプションのエラーメッセージを修正。((<ruby-dev:23357>))
オプション :RequestHander は :RequestCallback に名前が変わりました。オプション :ServerAlias が追加されました。
File::FNM_DOTMATCH がセットされない限り Dir.glob('test/**/') は 'test/.test/' などにマッチしなくなりました。((<ruby-dev:23014>))
-I オプションが使えるようになりました。((<ruby-list:39243>))
$VERVOSE が設定されている時に警告がでるようになりました。use #peek.
$VERVOSE が設定されている時に警告がでるようになりました。use #eos?.
$VERVOSE が設定されている時に警告がでるようになりました。use #terminate.
$VERVOSE が設定されている時に警告がでるようになりました。use #get_byte.
$VERVOSE が設定されている時に警告がでるようになりました。use #rest_size.
$VERVOSE が設定されている時に警告がでるようになりました。use #matched_size.
use StringScanner::Error.
String#~ は削除されました。また、str =~ str を実行すると例外が発生するようになりました。 ((<ruby 1.8 feature/2003-07-19>)), ((<ruby 1.8 feature/2003-05-26>))、 ((<ruby-dev:22851>))
適切にマッチしないバグを修正しました。 ((<ruby-dev:22815>)) ((<ruby-dev:22819>))
「{,m}」表記の場合と「{n,m}」の n,m が数字でない場合に警告を出力するようになりました。((<ruby-dev:22626>))
文字「}」がエスケープされていない場合に警告を出力するようになりました。 ((<ruby-dev:22627>))
nil ではなく ARGF を返すようになりました。((<ruby-dev:22465>))
inplace edit mode で標準入力から読み込んだ時常に警告を出力するようになりました。
引数に nil を許すようになりました。((<ruby-dev:22433>))