From: tatsumi-da Date: 2008-04-19T18:00:30+09:00 Subject: [ruby-dev:34456] rubystrftimeで""になる Vista Ultimate x64にインストールしたruby[mswin32]で、strftimeの長い文字列を与えると、返り値が""になります。 使用したrubyは「Ruby-mswin32 (ja)」からダウンロードしたruby-1.8.6-p114とruby-1.8.5-p115、そして、 MS Visual C++ 2008 Express Editionでコンパイルした1.8.7-preview1も同じ結果になりました。 以下はその出力です。 C:\Mydir>ruby -v ruby 1.8.7 (2008-04-15 patchlevel 0) [i386-mswin32_90] C:\Mydir>type datetest.rb require 'test/unit' class TestStrftime < Test::Unit::TestCase def test_simple str = '%Y' (1..100).each do |t| str = str + 'Y' grepstr = str.gsub(/%Y/, Time.now.year.to_s) strfstr = Time.now.strftime(str) assert_equal(grepstr, strfstr) end end end C:\Mydir>ruby datetest.rb Loaded suite datetest Started F Finished in 0.018 seconds. 1) Failure: test_simple(TestStrftime) [datetest.rb:9:in `test_simple' datetest.rb:5:in `each' datetest.rb:5:in `test_simple']: <"2008YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYY"> expected but was <"">. 1 tests, 96 assertions, 1 failures, 0 errors C:\Mydir> cygwin版のrubyや、XP x86環境ではこのようなことは起こりませんでした。 -- tatsumi-da tatsumida@gmail.com