[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
高橋征義です。むーん、問題のありかが違ったかも。
まつもと ゆきひろです
[#15369] ruby_init_loadpath() on Windows — Shugo Maeda <shugo@...>
前田です。
わたなべです。
[#15395] UnboundMethod.bind to derived class instance — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#15410] pp - pretty printing — Tanaka Akira <akr@...17n.org>
さて、time.rb が片付いたので、次は pp.rb のご意見募集です。
In article <hvod71ntocb.fsf@coulee.a02.aist.go.jp>,
In article <hvo1yhuqhvk.fsf@coulee.a02.aist.go.jp>,
高橋征義です。
In article <20011224230059I.maki@rubycolor.org>,
[#15411] inconsistency of STR_ASSOC — "K.Kosako" <kosako@...>
Version : 1.7 latest (2001-12-10)
[#15418] block for MatchData#select, Hash#select — nobu.nakada@...
なかだです。
[#15430] [BUG] Segmentation fault/ruby 1.7.2 (2001-12-10) — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>
In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,
まつもと ゆきひろです
わたなべです。
In article <1008292110.329151.8468.nullmailer@ev.netlab.jp>,
まつもと ゆきひろです
In article <1008320813.231850.10341.nullmailer@ev.netlab.jp>,
In article <hvosnaeblzu.fsf@coulee.a02.aist.go.jp>,
[#15441] exported symbol — nobu.nakada@...
なかだです。
[#15456] irb/completion で Segmentation fault — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
On Sat, 15 Dec 2001 18:28:12 +0900
まつもと ゆきひろです
[#15464] gsub weirdness: gsub(/.*$/, "foo") — "Akinori MUSHA" <knu@...>
なんか gsub がおかしいような気がするんですが、これはこういう
青山です。
At Mon, 17 Dec 2001 05:22:53 +0900,
[#15466] listen for sockets in both IPv4 and IPv6 — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
[#15479] [BUG] thread with tempfile.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#15500] Re: define_method() does not properly set noex (PR#218) — nobu.nakada@...
なかだです。
[#15505] ERb — m_seki@...
In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,
In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,
高橋征義です。
In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,
ただただしです。
まつもと ゆきひろです
新井です。
西山和広です。
>>>>> In [ruby-dev : No.15909]
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
At Mon, 18 Feb 2002 12:50:31 +0900,
なかだです。
In message <200202201003.g1KA3As11455@sharui.nakada.kanuma.tochigi.jp>
新井です。
あづみです。
[#15507] fileutils (2) — Minero Aoki <aamine@...>
あおきです。
高橋征義です。
あおきです。
高橋征義です。結論は最後に。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
けいじゅ@日本ラショナルソフトウェアです.
[#15519] typo in tracer.rb (SCRIPT_LINES__) — sheepman <sheepman@...>
こんにちは。
なひです。
まつもと ゆきひろです
なひです。
[#15556] TCPSocket#open で Errno::EALREADY — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#15569] [REQ] File?chmod — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
In message <20011228143615.32D8.TIETEW-ML-RUBY-DEV@tietew.net>
こんにちは、なかむら(う)です。
Tietew です。
[#15603] filename within eval — nobu.nakada@...
なかだです。
[ruby-dev:15515] Re: fileutils (2)
高橋征義です。結論は最後に。
Minero Aoki <aamine@mx.edit.ne.jp>さん:
> まあ、互換性というか「どうせ 1.7 以降に入るんだから 1.7 以降
> 対応でいいじゃん」または「いまさら 1.6 なんて使えるかぁっ!」
> ということです。
いやいや、amstd/fileutils.rbとの互換性です(ftools.rbもかな?)。
> ついでに ftools と上位互換でも
> あるはずです (File に extend するとそのまま通用する)。
む、しかし引数が違いますよね(verboseとか)。って、そういう意味ではなく?
> でも、メソッド名から言っても cp なら cp(1) のように働いてほしいと
> 思うのではないでしょうか? (本当は話が逆だけど) この場合に限っては
> Ruby 的であるよりもシェル的であるほうがよいのではないかと思うのです。
うーん、そうでしょうか。
例えば、Dir::mkdirでも、
mkdir(path [,mode])
となっています。ftoolsのcpやmvでもverboseオプションは後ろですし。
> あるいは、オプションを前じゃなくて後ろに与えた場合 dir の位置は
> 固定になりますけどそれはどうでしょう? 実装としては、オプションは
> どこでもいい、というのも可能です。
そうですね、前か後ろだったら、(上のDir::mkdirのように)後ろの方が
好きです。さらに、引数の位置が決まっていれば安心です。
# キーワード引数があればまた違うんでしょうけどね……。
> > def newest?( *args )
> > (new,*fnames), (verbose,) = fu_parseargs( args, 1..INF, :verbose )
(略)
> ちょっとトリッキーですかね。
理想を言えば、メソッドのdefの部分を見れば、そのメソッドの引数の
使い方がなんとなく伝わるのがベストだと思います。この場合、*args
しかないのであんまりうれしくないのです。あくまで理想ですけど。
> たとえば
>
> rb = %w(
> mail.rb loader.rb field.rb ....
> )
> rb2 = %w(
> parsemail.rb
> )
>
> としておいて
>
> cp rb, rb2, mkdir_p(site_ruby + '/tmail')
>
> ってのがとっても楽なんですよー。
これってたとえば、ていねいにやるなら、
tmail_dir = site_ruby + '/tmail'
mkdir_p(tmail_dir)
cp(rb, tmail_dir)
cp(rb2, tmail_dir)
とやれば、やってる内容が明快で、さほど回りくどくもないのでいいと
思うんですけど。というか、
cp(rb + rb2, mkdir_p(site_ruby + '/tmail'))
とか
(rb+rb2).each{|file| cp(file, mkdir_p(site_ruby + '/tmail'))}
じゃ駄目なんでしょうか?
それと、これも気になったのですが、なんか配列とそうでないものとを
ごっちゃに(できるように)してません? ここはやっぱり、
cp( src, dst ) # src はString
とするか、
cp( src, dst ) # srcは String または Array
とするのがすっきりしていいと思います(後者はいらないかも)。
# あ、オプションは省略してます。
> each でまわすとするとこれは
>
> (rb + rb2).flatten.each do |fname|
> cp fname, mkdir_p(site_ruby + '/tmail')
> end
>
> となって面倒です。
rbとrb2が、配列なのか要素なのかがわかっていれば flatten する
必要はないですよね。で、この場合はそれが分かっているべきなん
じゃないでしょうか。
> また本当にコピーだけでいいなら copy_file(a,b) というメソッドも
> あります。同様なものに remove_file(n) remove_dir(n) も。
どこまでのメソッドが必要か、というのは考えなければいけないですね。
> そういうことなら
>
> include FileUtils::Verbose
>
> で全部 verbose になります。クラスに include してインスタンス化
> しても使えます。あ、private だからだめなのか。それなら public に
> しましょう。
クラス(クラスメソッド)の振舞いを変えるのにincludeを使うのは
面白そうだし便利そうなのですが、「凝りすぎ?」という不安も
若干あるのでした。
> また、インスタンス化できるようにすること自体は特に問題ないですけど、
> include する方法もやはり欲しいです。やっぱ cp ならいきなり cp と
> 書きたいので。(あくまで個人的欲求として、です)
includeというか、インスタンスを作らずにcpしたい、ということですね。
これは私も便利(あるいは必要)かも? とは思います。
やっぱ後ろにオプション、というのが無難でしょうかね。
> > fu.verbose = true
> > fu.noop = true
>
> このタイプは前に話が出たときにどなたかから否定的な意見が出たので
> 避けました。たとえば preserve を例にとると、cp や cp_r はいいけど
> mv や ln を呼んだとき preserve アトリビュートにどういう意味がある
> のかよくわからないというのが理由です。
うーん、そうですか。
私の気分としては、verboseとnoopはふつーグローバル、forceもたぶん
グローバル、preserveはちょっと微妙、という感じでしょうか。
いちいちverboseを指定しなくちゃいけないのもうざったいかなあと。
> あとそのときは、たけさんから
>
> op = FileUtils.operator(:cp, :preserve)
> op.exec
>
> みたいな感じに cp するためのインスタンスを作るのはどうか? という
> 意見もありました。(メソッド名その他は変えてます)
これはこれで、verboseやnoopなら個々に:verboseをつける必要が
出てくるわけで、あまりメリットないかなあ、と。
……というわけで、このメールの結論としては、
* クラスにするかどうかはともかく、インスタンスを作らないで
オプションつきでcpしたりmkdirしたりできるようにしたい。
* オプションは後ろにした方がよさそう。
というところです。
オプションはtrue/falseか、あるいは可変長でしょうか。前者なら、
def cp(from, to, verbose=false, noop=false)
という感じ、後者なら、
def cp(from, to, *option) # optionは :verbose とかで指定
みたいな感じとか。後者の方が使いやすい?
高橋征義 (TAKAHASHI Masayoshi) Email:maki@inac.co.jp