[#30827] 正規表現まわりの parse — sheepman <sheepman@...>
こんにちは。
[#30850] ruby-mode.el の改善案 — sheepman <sheepman@...>
こんにちは。
[#30852] Ruby/Tk on Windows — hidaka@... (HIDAKA Takahiro)
ひだかです。
[#30855] オブジェクトをソースへ — Daisuke Aoki <dai@...>
青木@横浜です。
[#30872] ext/curses — Takaaki Tateishi <ttate@...>
立石です.
[#30885] SAGE — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#30897] ActiveScriptRuby + showModalDialog — keiichi matsunaga <ma2@...>
松永です。
[#30920] [REQ] Regexp#match! — Minero Aoki <aamine@...>
あおきです。
At Thu, 16 Aug 2001 11:24:45 +0900,
[#30945] file exist check method? — "Inoue" <inoue@...>
井上です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
もりきゅうです。長文ごめんなさい。
岩月と申します。そろそろ寝なくては。
もりきゅうです。
もりきゅうです。
なかだです。
もりきゅうです。
すぎむし。
なかだです。
もりきゅうです。subject 変えました。
In <200108201823.AA00825@yoshida.nifty.ne.jp>
File#join とか File#split とか使った事ないんですが…
なかだです。
From: nobu.nakada@nifty.ne.jp
In <20010823.222131.74756515.pegacorn@jcom.home.ne.jp>
こんにちは、なかむら(う)です。
なかだです。
もりきゅうです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#30961] popen() で Insecure PATH — 堀川 久 <vzw00011@...>
こんにちは。
まつもと ゆきひろです
こんにちは。
In <3b7e90ac.6968%vzw00011@nifty.ne.jp>
[#30987] [REQ] String#slice(re, n) — Minero Aoki <aamine@...>
あおきです。
[#31002] ruby のインストール — Andre Ribeiro Hanai <andre@...>
始めまして葉内です。
[#31005] インストールしました — 嶋崎 正貴 <hayashih@...>
嶋崎と申します
From: 嶋崎 正貴 <hayashih@interbroad.or.jp>
[#31035] 安全な文字列の評価方法 — 斉藤和樹 <QZS01353@...>
こんにちは。斉藤です。
[#31060] WIN32OLE の質問 : 環境変数の設定はどうやる? — Hirofumi Tamori <tamori@...>
[#31066] [Q] string underline in emacs — "K.Kosako" <kosako@...>
emacs 20.7.2でruby-mode.elを使用しています。
[#31069] ruby と mysql の使える webhosting — Ryuichiro Hara <ruby@...>
FAQかもしれないのですが...
[#31071] ruby on sun — Koichi Takehara <Koichi.Takehara@...>
ルビー初心者の竹原です。
[#31128] Ruby.exe で実行中は編集禁止? — Take_tk <ggb03124@...>
Ruby.exe(ruby 1.6.4 (2001-06-04) [i586-mswin32])で一日中回しているスク
[#31144] create_process または Win での外部コマンド実行 — Take_tk <ggb03124@...>
Windows で外部コマンドを実行するにはどういう方法があるのでしょうか?。
こんにちは、なかむら(う)です。
なかだです。
たけ(tk)です。
なかだです。
たけ(tk)です。
なかだです。
In message <200108291540.f7TFecg03766@sharui.nakada.kanuma.tochigi.jp>
[ruby-list:31067] Re: file exist check method?
もりきゅうです。
nobu.nakada@nifty.ne.jp wrote:
> ですね。それとgccや1.6のためのパッチ。
なかむら(う)さんにも私信でいただきました。
ありがとうございます。
RAA DOSish update しました。
以下私信の返信。
"U.Nakamura" <usa@osb.att.ne.jp> wrote:
> 1. DOSish.split("C:foo") #=> [".", "C:foo"] となるが、これは
> 意図された挙動ですか?
全く考えていませんでした。^^;
> ["C:", "foo"] になって欲しい気がするのですけど。
そうですねぇ。
"C:foo" の意味付けが必要ですね。
"C:foo" は "C:/foo" とは違うし。
ドライブレターのみをパスとみなせるかどうか..。
特に Dir.chdir での扱いが特異ですよね。
=begin
C:\>cd c:\usr
C:\usr>cd c:src
C:\usr\src>
=end
p Dir.pwd #=> "D:/ruby-dev/bin"
p Dir.chdir('c:\\usr') #=> 0
p Dir.pwd #=> "c:/usr"
p Dir.chdir('c:src') #=> 0
p Dir.pwd #=> "c:/usr/src"
p Dir.chdir('d:') #=> 0
p Dir.pwd #=> "D:/RUBY-DEV/BIN"
p Dir.chdir('d:\\') #=> 0
p Dir.pwd #=> "d:/"
p Dir.chdir('c:kana') #=> 0
p Dir.pwd #=> "c:/usr/src/kana"
Dir.chdir と File.join とを対応付けるとすると
p Dir.pwd #=> "D:/ruby-dev/bin"
p Dir.chdir('c:\\usr') #=> 0
p DOSish.join("c:/usr", "c:src") #=> "c:/usr/src"
p DOSish.join("c:/usr/src", "d:") #=> "D:/RUBY-DEV/BIN"
これは
def DOSish.join(*args)
pwd = Dir.pwd
args.flatten.each do |i|
path = i.to_s
Dir.chdir(path)
end
ret = Dir.pwd
Dir.chdir(pwd)
ret
end
と書けるのかな。ruby-list:31003 のドライブ対応仕様。
この実装はいつも絶対ディレクトリを返すのがいまいち。
def DOSish.join(*args)
pwd = Dir.pwd
args.flatten.each do |i|
path = i.to_s
Dir.chdir(path)
end
absolute = Dir.pwd
Dir.chdir(pwd)
relative = absolute.sub(/^#{pwd}\/?/, '')
relative
end
例外が飛んだらどうしよう。nil を返しましょうか。
def DOSish.join(*args)
begin
pwd = Dir.pwd
args.flatten.each do |i|
path = i.to_s
Dir.chdir(path)
end
absolute = Dir.pwd
Dir.chdir(pwd)
relative = absolute.sub(/^#{pwd}\/?/, '')
relative
rescue
nil
end
end
こんな感じ。
存在しないパスだと join できないのはやりすぎだなあ。^^;
これと同じ結果を返すように文字列処理すればいいのか。
ドライブレターを真面目に扱おうとすると面倒ですねぇ。
あと,File.split と File.join とを対応付けるとすると
現状で
p DOSish.join("C:/", "foo") #=> "C:/foo"
p DOSish.join("C:", "foo") #=> "C:/foo"
こうなってるのを
p DOSish.join("C:/", "foo") #=> "C:/foo"
p DOSish.join("C:", "foo") #=> "C:foo"
とすべきかどうか。ドライブレターのみとルートディレクトリを
明確に区別するってことですね。
また,File.expand_path も
現状で
Dir.chdir('c:/usr')
p File.expand_path('c:src') #=> "c:/usr/c:src"
こうなってるのを
Dir.chdir('c:/usr')
p File.expand_path('c:src') #=> "c:/usr/src"
こうすべきでしょう。DOSish.expand_path を用意しようかな。
結局,"C:foo" は絶対ディレクトリでないし,パスセパレータが
挟まってるわけでもない。"C:" と "foo" に分けられるとなると,
File.split, File.join, File.expand_path, Dir.chdir
が互いに矛盾しないように仕様を決めないといけませんね。
DOSish.split("C:foo") #=> [".", "C:foo"]
は現状では,まあそれなりに矛盾のない仕様ではないかと。
> 2. 1.6系だとコンパイルが通らなかったので、パッチをつけときま
> す。user32.libの話も含んでます。
ありがとうございます。取り込みます。
----
YOSHIDA Kazuhiro moriq@moriq.com http://www.moriq.com/