[#50354] 2.5.0で追加されたTime#atの引数について — Satoru Sakashita <sakasita@...>
坂下です。
8 messages
2017/12/16
[#50356] Re: 2.5.0で追加されたTime#atの引数について
— "Urabe, Shyouhei" <shyouhei@...>
2017/12/17
msecだとミリ秒かマイクロ秒か区別がつかないです。もっと良い名前があれば採用されるんじゃないでしょうか。
[#50357] Re: 2.5.0で追加されたTime#atの引数について
— Naotoshi Seo <sonots@...>
2017/12/18
横からすみません。一般的に mili second は ms、micro second は us と省略するので msec でも良いような気がします。
[#50394] [Ruby trunk Bug#14240] warn four special variables: $; $, $/ $\ — matz@...
Issue #14240 has been updated by matz (Yukihiro Matsumoto).
4 messages
2017/12/26
[#50396] Re: [Ruby trunk Bug#14240] warn four special variables: $; $, $/ $\
— Eric Wong <normalperson@...>
2017/12/26
Shouldn't English posts be on ruby-core instead of ruby-dev?
[ruby-dev:50337] [Ruby trunk Bug#13889][Closed] FileUtils.rmdir が Errno::ENOTEMPTY を無視している
From:
nagachika00@...
Date:
2017-12-06 05:23:23 UTC
List:
ruby-dev #50337
Issue #13889 has been updated by nagachika (Tomoyuki Chikanaga).
Status changed from Open to Closed
Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: DONTNEED
「しかし存在しない名前を FileUtils.rmdir に指定した時にエラーにならなかったのが Errno::ENOENT が発生するなるようになってしまっている」 については、fileutils はコマンドラインツールの挙動に倣うもので、rmdir(1) が存在しないパスを指定された時にはエラーになるので、r59934 後の挙動のほうが正しいということで閉じてしまいます。
一応挙動が変わるので、Backport 欄は 2.4 は DONTNEED にしておきます。
----------------------------------------
Bug #13889: FileUtils.rmdir が Errno::ENOTEMPTY を無視している
https://bugs.ruby-lang.org/issues/13889#change-68204
* Author: tkubo_ncs (Takehiro KUBO)
* Status: Closed
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: ruby 2.1.6p336 (2015-04-13 revision 50298)
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: DONTNEED
----------------------------------------
2.1 や最新のリファレンスには FileUtils.rmdir で削除対象のディレクトリが空ではない場合は Errno::ENOTEMPTY が発生すると書かれていますが、
FileUtils.rmdir を空でないディレクトリに対して呼んでもエラーにはならず、削除もされません。
~~~
irb(main):002:0> FileUtils.mkdir("dir")
=> ["dir"]
irb(main):003:0> FileUtils.touch("dir/file")
=> ["dir/file"]
irb(main):004:0> FileUtils.rmdir("dir")
=> ["dir"] #<= エラーは出ない
irb(main):005:0> File.exist?("dir") #<= 残っている
=> true
irb(main):006:0> File.exist?("dir/file")
=> true
~~~
fileutils.rb のソースで ENOTEMPTY が rescue されているようです。(trunk でも)
~~~
def rmdir(list, options = {})
fu_check_options options, OPT_TABLE['rmdir']
list = fu_list(list)
parents = options[:parents]
fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if options[:verbose]
return if options[:noop]
list.each do |dir|
begin
Dir.rmdir(dir = remove_tailing_slash(dir))
if parents
until (parent = File.dirname(dir)) == '.' or parent == dir
dir = parent
Dir.rmdir(dir)
end
end
rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT <= ここです
end
end
end
module_function :rmdir
~~~
実際無視するのが正しいならリファレンスの方を修正していただければと思います。
--
https://bugs.ruby-lang.org/