Project

General

Profile

Actions

Feature #6643

closed

io.seek(off, :end)

Added by akr (Akira Tanaka) over 12 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
[ruby-dev:45818]

Description

IO#seek メソッドの whence 引数としてシンボルを受け付けるようにしませんか。

つまり、
io.seek(0, IO::SEEK_END)
のかわりに
io.seek(0, :end)
とかけるようにする、ということです。

IO::SEEK_END と等価な指定として :end,
IO::SEEK_CUR と等価な指定として :cur,
IO::SEEK_SET と等価な指定として :set を
受け付けるようにします。

思い立ったきっかけとしては、
ひさしぶりに seek を使ったら、
io.seek(IO::SEEK_END)
と書いてしまって、これは私の環境では IO::SEEK_END が 2 なので、
io.seek(2)
つまり
io.seek(2, IO::SEEK_SET)
と解釈されてしまって、ちょっと悩んだためです。

もし同様な間違いをしてしまっても、IO::SEEK_END でなく :end と
書いたのであれば、
io.seek(:end)
は can't convert Symbol into Integer (TypeError) となるので悩まなくて済んだのに、
と思いました。

なお、その間違いをしたのは私だけではないようで、検索すると
http://jira.codehaus.org/browse/JRUBY-1897
http://rubyforge.org/pipermail/biocatalogue-developers/attachments/20100512/2eacb73c/attachment-0001.html
というふたつの例が見つかります。

どうでしょうか。


Files

io-seek-whence-symbol.patch (3.53 KB) io-seek-whence-symbol.patch akr (Akira Tanaka), 06/25/2012 07:31 PM
patch.diff (3.36 KB) patch.diff Glass_saga (Masaki Matsushita), 10/16/2012 09:36 PM
patch2.diff (4.44 KB) patch2.diff Glass_saga (Masaki Matsushita), 10/22/2012 11:08 AM
patch3.diff (4.55 KB) patch3.diff Glass_saga (Masaki Matsushita), 11/11/2012 11:15 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0