[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

14 messages 2001/12/05
[#15358] Regexp in UTF-8 (Re: Regexp literal and Regexp.new()) — TAKAHASHI Masayoshi <maki@...> 2001/12/05

高橋征義です。むーん、問題のありかが違ったかも。

[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>

In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,

20 messages 2001/12/13
[#15436] Re: Time#utcoff — matz@... (Yukihiro Matsumoto) 2001/12/14

まつもと ゆきひろです

[#15505] ERb — m_seki@...

74 messages 2001/12/20
[#15560] Re: ERb — Tanaka Akira <akr@...17n.org> 2001/12/27

In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,

[#15879] Re: ERb — m_seki@... 2002/02/12

[#15884] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/14

In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,

[#15885] Re: ERb — m_seki@... 2002/02/14

[#15886] Re: ERb — m_seki@... 2002/02/14

[#15887] Re: ERb — TAKAHASHI Masayoshi <maki@...> 2002/02/14

高橋征義です。

[#15888] Re: ERb — m_seki@... 2002/02/14

[#15896] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/15

In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,

[#15898] Re: ERb — m_seki@... 2002/02/15

[#15900] Re: ERb — TADA Tadashi <sho@...> 2002/02/16

ただただしです。

[#15901] Re: ERb — m_seki@... 2002/02/16

[#15906] Re: ERb — matz@... (Yukihiro Matsumoto) 2002/02/17

まつもと ゆきひろです

[#15909] 1.6 の寿命 (Re: Re: ERb) — Koji Arai <JCA02266@...> 2002/02/17

新井です。

[#15507] fileutils (2) — Minero Aoki <aamine@...>

あおきです。

30 messages 2001/12/20
[#15512] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/20

高橋征義です。

[#15513] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15515] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/21

高橋征義です。結論は最後に。

[#15516] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15533] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/22

高橋征義です。

[#15536] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15540] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/24

高橋征義です。

[#15545] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15557] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/26

高橋征義です。

[#15567] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/27

あおきです。

[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>

Tietew です。

22 messages 2001/12/28

[ruby-dev:15545] Re: fileutils (2)

From: Minero Aoki <aamine@...>
Date: 2001-12-24 17:53:40 UTC
List: ruby-dev #15545
あおきです。

  In mail "[ruby-dev:15540] Re: fileutils (2)"
    TAKAHASHI Masayoshi <maki@rubycolor.org> wrote:

> 高橋征義です。

> もう一つ、「ftoolsの代替」という印象もあります。以前、あおき
> さんは「ftoolsはFileクラスにメソッドを追加してしまうのが
> ちょっと」みたいなことを言っていたので、ftoolsを新しくしたい
> のかなあ、と。

それはあるかも。でも別に積極的になくしたいわけではないです。
ぼくとしてはようするに fileutils みたいなのを自分が使えれば
それで満足です。


> 実際のところ、ftoolsを使っているのは各種install.rbが多いです
> よね。なので、そういうツールのためかなあ、と、こんな感じです。

うーむ。やっぱりそういうことですか。


> えーと、「普通makeとかがカバーしている範囲」で、Rubyに
> 関係ありそうなところというと、外部コマンドを利用して
> コンパイルしたりドキュメントを作ったり、さらにはFTPしたり
> webサイトを更新したり、というところですか?
> ちょっとイメージがつかめないのですが……。

そんなとこです。ぼくが使ってる用途としてはこんな感じ。

  * ライブラリのパッケージを作る
    (mkdir → cp cp cp → tar c → rm_rf)
  * サイトの HTML を更新する (update_file)
  * ちょっと make っぽい依存関係の処理をはさむ (newest?)
  * cvs.ruby-lang.org に入れるソースを自動生成する
    (ChangeLog を更新するときに mv でバックアップ取ったり戻したりとか)
  * 昔は chdir にブロックがなかったのでそれを吸収するためもあった

昔はサイトの更新に ftpup を使ってたので無駄な更新をしないのが
重要でしたから、update_file とか newest? を結構つかいました。
今は rsync なので派手に全部生成しなおしてますけど。


> makeの代替とか、それこそシェルの代替がほしいわけでは
> ないんですよね?  それだったらほとんどmakeやシェルで十分
> かな、と思いますし。唯一問題になるのは移植性ですが、
> ふだん使うちょっとしたものなら移植性はあまり問題に
> なりませんし。

「ぼくの最初の個人的な作成動機は」、make の代替です。最初は make 
使ってたんですけど、メタデータをあっちこっちにやりとりするのが
面倒でしかたなかったんで、Ruby で書いたツールに移行したんです。
ただそうしたら今度は cp とかが面倒になってしまったのでそれを埋め
るために今度は fileutils を作った。

というのが歴史的経緯です。


> > また、fileutils があっても
> >    別にインストーラを書くのは全然楽にならないとも思います。
> 
> ftoolsの代わりにfileutilsを使えば、たとえばmake -n install相当の
> 「どこにインストールされるかを表示するけど、実際にはインストール
> しない」ということが簡単に書けますよね。

しかしそれでは、

  * 可搬性が下がる (1.8 移行でしかインストールできない)
  * もし fileutils がバグ入りだった場合に困る

という問題があります。コピーして使えばこの問題はないですが、
そこまでがんばって使う機能とは思えないです。特に noop なんて
ftools を使っても

    require 'ftools'
    noop = Object.new
    %w( cp mv rm_f makedirs install chown ).each do |name|
      noop.instance_eval "def #{name}(*args) end"
    end
    op = $noop ? noop : File

と、6 行で実装できます。

そもそも、インストーラが欲しいなら最初から汎用インストーラその
ものを添付してしまえばいいんじゃないでしょうか? そうすれば
make -n 相当の機能が、実装するまでもなく、手に入ります。

簡単なものでもインストーラを書くのは結構難しいものです。
Config::CONFIG の値とか、UNIX の慣習とか、Ruby のバージョンに
よる RUBYLIB のパスの違いとか、対応すべき点が多々あります。
それに各自それぞれに対応するのは時間の浪費にしかなりません。


> という感じで、install.rb的な物以外の用途があんまり思いつか
> ない、というところなのです。

Ruby のある生活に役立つ。とか。(make が薄れていく生活、でも可)
make ってディレクトリを越えたメタデータのやりとりが面倒だし、
制御構造使いにくいし、だんだんダミーターゲットばっかりになって
くるし……。Ruby ベースにするとそういう点はすごく楽になると思い
ます (ちょうど ruby-talk でも make replacement の話が出てますね)。

あとさっき気がついたんですけど、lib/shell/ をよく見ると cd や
pwd があったりして結構似たようなことをしてるんですね。でも
cp や mv は ftools に投げてるので、そのへんをカバーできるように
考えるのもいいかもしれません。
-------------------------------------------------------------------
青木峰郎

In This Thread