[#23168] File.fnmatch のリファクタリング — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

13 messages 2004/03/08

[#23192] File.fnmatch と Dir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/03/13
[#23194] Re: File.fnmatch と Dir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/13

まつもと ゆきひろです

[#23195] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23196] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23260] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23261] Re: File.fnmatch とDir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/30

まつもと ゆきひろです

[#23265] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23238] Re: [ruby-cvs] ruby, ruby/lib, ruby/lib/rss, ruby/sample/openssl: * lib/logger.rb: trim tail space of each line. no user visible change. — Kouhei Sutou <kou@...>

須藤です.

10 messages 2004/03/27

[ruby-dev:23158] Re: HEAD pstore under cygwin

From: WATANABE Hirofumi <eban@...>
Date: 2004-03-07 06:29:05 UTC
List: ruby-dev #23158
わたなべです。

"NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp> writes:

> 0$ rm foo
> rm: cannot remove `foo': No such file or directory
> 1$ ruby -v -rpstore -e 'PStore.new("foo").transaction {}'
> ruby 1.9.0 (2004-03-07) [i386-cygwin]
> /usr/local/lib/ruby/1.9/pstore.rb:158:in `commit_new': IOError (IOError)
>         from /usr/local/lib/ruby/1.9/pstore.rb:103:in `transaction'
>         from -e:1

Cygwinの場合、flockしたままのファイルを更にopenして書き込も
うとするとEACCESSになるようです。
すでにopenしてるんだからそのままfile handleを渡してやればい
いと思います。

Index: lib/pstore.rb
===================================================================
RCS file: /src/ruby/lib/pstore.rb,v
retrieving revision 1.18
diff -u -1 -r1.18 pstore.rb
--- lib/pstore.rb	17 Feb 2004 15:26:03 -0000	1.18
+++ lib/pstore.rb	7 Mar 2004 06:18:36 -0000
@@ -14,3 +14,3 @@
 
-require "ftools"
+require "fileutils"
 require "digest/md5"
@@ -102,3 +102,3 @@
         file.flock(File::LOCK_EX)
-        commit_new() if FileTest.exist?(new_file)
+        commit_new(file) if FileTest.exist?(new_file)
         content = file.read()
@@ -140,3 +140,3 @@
             File.rename(tmp_file, new_file)
-            commit_new()
+            commit_new(file)
           end
@@ -154,6 +154,7 @@
   private
-  def commit_new()
+  def commit_new(f)
+    f.truncate(0)
     new_file = @filename + ".new"
-    if !File.copy(new_file, @filename)
-      raise IOError
+    File.open(new_file) do |nf|
+      FileUtils.copy_stream(nf, f)
     end

In This Thread