[#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:31085] Re: File#join
なかだです。
At Wed, 22 Aug 2001 23:21:23 +0900,
K.Umakoshi <pegacorn@jcom.home.ne.jp> wrote:
> File#join とか File#split とか使った事ないんですが…
> ファイル名を扱うクラスがあればいいなと思って、
> ruby の勉強を兼ねてこんなクラスを作ってます。
こういうのがあれば別のプラットフォーム用のパス名を扱うことが
できるかも知れません。とりあえず私も作ってみたので添付します。
> class FileName < String
> PF_UNIX = 0
Socket::PF_UNIXと紛らわしくないでしょうか。それにこうやって場
合分けをするよりも、Unix用、Windows用、DOS用のクラスにしたいよ
うな気も。
> PLATFORM = PF_DOS
> Separator = '\\'
> Separators = Separator
DOSでもシステムコールレベルでは'/'も有効だったと思います。そ
れにFile::SEPARATOR, File::ALT_SEPARATORという定数が既に用意さ
れているので、そっちを使ったほうが面倒が少なそうです。もしくは
上記のようにプラットフォーム別のクラスにするなら、それぞれの定
数にするか。
> def <=>(name)
> case PLATFORM
> when PF_WINDOWS || PF_DOS
これだとPF_DOSにはマッチしません。
when PF_WINDOWS, PF_DOS
> def clean
> clean(self)
> end
再帰しようとしてArgumentErrorになりそうです。
type.clean(self)
> [3 TestFileName.rb <text/plain; iso-2022-jp (7bit)>]
(snip)
> s1 = FileName.new('a')
> s2 = FileName.new('A')
> assert(s1.icasecmp(s2) == 0)
すいません、これって正しいんでしょうか。
class File
class Name < String
def self.clean(path)
return "" if path.empty?
paths = path.split(self::Separators)
paths[0] ||= ""
clean_paths = Array.new
paths.each do |elm|
case elm
when '.'
# abandon
when '..'
case clean_paths.last
when nil, '..'
clean_paths.push(elm)
when ''
# abandon
else
clean_paths.pop
end
else
clean_paths.push(elm)
end
end
if clean_paths.empty?
clean_paths.push(".")
elsif clean_paths.last.empty?
clean_paths.push("")
end
clean_paths.join(self::Separator)
end
def self.split(path)
if i = path.rindex(self::Separators)
return path[0, i.nonzero? || 1], path[i.next..-1]
else
return ".", path
end
end
def self.join(path, *paths)
paths.each do |elem|
m = elem.rindex(self::Separators, 0)
if path.index(self::Separators, -1)
elem = m.post_match if m
else
path << self::Separator unless m
end
path << elem
end
path
end
def clean
type.clean(self)
end
def <=>(name)
clean <=> type.clean(name)
end
def ==(name)
(self <=> name).zero?
end
class Unix < Name
Separator = '/'
Separators = /\/+/
end
class DOS < Name
Separator = '\\'
Separators = /[\\\/:]+/
Drive = /\A[a-z]:/i
def self.clean(path)
if m = Drive.match(path)
m[0]+super(m.post_match)
else
super
end
end
def self.split(path)
if m = Drive.match(path)
dir, base = super(m.post_match)
return m[0]+dir, base
else
super
end
end
def <=>(name)
clean.upcase <=> type.clean(name).upcase
end
end
class Windows < DOS
UNC = /\A[\\\/]{2}/
def self.clean(path)
if UNC === path
self::Separator+super
else
super
end
end
end
Default = case RUBY_PLATFORM
when /cygwin|mswin32|mingw/
Windows
when /djgpp/
DOS
else
Unix
end
end
def self.Name(path = nil)
name = Name::Default
name = name.new(path) if path
name
end
end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦