[#28402] crypt — Kenji Noda <zaq94465a@...>
野田です
In message "[ruby-list:28402] crypt"
At Fri, 2 Mar 2001 04:34:52 +0900,
newです.
まつもと ゆきひろです
坂下です。
In message <200103030343.MAA03741@smtp1.dti.ne.jp>
坂下です。
新井です。
ごとけんです
newです.
新井です。
新井です。
In message <200103020836.RAA07709@hanare00.math.sci.hokudai.ac.jp>
At Fri, 2 Mar 2001 18:59:39 +0900,
[#28415] class Real — 正木 功 <GEC01122@...>
正木です。
[#28429] Marshal format version — Takahiro Kambe <taca@...>
再び、こんばんは。
石橋秀仁です。こんにちは。
まつもと ゆきひろです
In message <983957685.946561.24647.nullmailer@ev.netlab.zetabits.com>
[#28435] ruby 1.6.3? — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
もりきゅうです。
もりきゅうです。
もりきゅうです。
わたなべです.
もりきゅうです。
なかだです。
もりきゅうです。
もりきゅうです。
なかだです。
もりきゅうです。
[#28441] constant in module_eval — Kenichi Komiya <kom@...1.accsnet.ne.jp>
[#28454] Ruby 初心者は! — 有瀬 和徳 <crush@...>
Kazunori Aruse
[#28485] ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...>
新井です。
永井@知能.九工大です.
永井@知能.九工大です.
新井です。
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
新井です。
[#28530] テキストファイルを固定文字数で切って、行番号をつけるプログラム — Keisuke Minami <keisuke@...>
こんばんは。三並です。
新井です。
[#28536] DATA.rewind — URA Takefumi <hage@...>
浦と申します。
[#28565] 海外無料サーバ — 有瀬 和徳 <crush@...>
有瀬です。
[#28577] field sort — Kenji Noda <zaq94465a@...>
野田と申します
[#28599] 1.6 のダウンロードマニュアルが圧縮されていない? — Keisuke Minami <keisuke@...>
こんばんは。三並です。
From: Keisuke Minami <keisuke@rccn.com>
SHIBATA Hiroshiです。
In message "[ruby-list:28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない?"
SHIBATA Hiroshiです。
From: Keisuke Minami <keisuke@rccn.com>
newです.
From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>
newです.
From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>
さくです。
青木@横浜です。
From: Daisuke Aoki <dai@sweetparty.ne.jp>
青木@横浜です。
Toshです。
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
Toshです。
青木@横浜です。
青木@横浜です。
[#28630] nest of Hash.new — Sato Hiroshi <hiroshi@...>
佐藤です.
[#28642] substr — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#28660] ruby termios library — akira yamada / やまだあきら <akira@...>
[#28691] Dir#glob of mswin32 — "たけ(tk)" <ggb03124@...>
mswin32 の Dir#glob はパスを入れても、パスを無視してしまうようです。
[#28715] GC — OHARA Shigeki <os@...>
大原です。
[#28764] Win32_process.create PID — Koga Atsushi <kog@...>
みなさまこんばんわ。
artonです。
[#28773] [Q] ChibiXML のサンプルみたいなもの — eda@...
えだです。
高橋征義です。
まつもと ゆきひろです
うえの@ぶるーすかいです。
[#28780] revenge of shell.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#28789] freeze した文字列の書き換えチェック方法 — nekurai@...
ども、根暗井です ^^)
[#28794] undef singleton method — "K.Kosako" <kosako@...>
特異メソッドを未定義(undef)にするには、
[#28798] RubyUnit で、 initialize メソッドのようなことをしたい — "IKAGAWA, Kauztomo" <k_ikagawa@...>
お世話になります。いかがわと申します。
[#28814] fgets — Kazuhiro NISHIYAMA <zn@...>
C言語のfgetsのようなサイズ制限付きのgetsをしようとすると
[#28852] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#28855] NetBSD BSD/OS curses — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#28862] media watch 2001.03.18 — Noritsugu Nakamura <nnakamur@...>
[#28864] patch glob for MSWin32 ruby-1.6.3 — arton <arton@...>
artonです。
[#28881] 初歩的な質問 — Kenji Noda <zaq94465a@...>
野田です。
[#28887] cygwin で組み込み — "shibata kenji" <shibata@...>
柴田です。
わたなべです。
わたなべ様ありがとうございます。
[#28901] Numeric.new — "たけ(tk)" <ggb03124@...>
Numeric.new があって Fixnum.new がないようです。Fixnum はいいとして、
原です。
たけ(tk)です。
[#28903] lndir.rb でエラー — みかみ まさと <kofukan@...>
みなさん、こんにちは。みかみにございます。
[#28911] media watch 2001.03.22 — akira yamada / やまだあきら <akira@...>
こんばんは。三並です。
前田です。
こんばんは。三並です。
Keisuke Minami さん、こんにちは。Ta-ku-ya II です。
こんばんは。三並です。
Keisuke Minami さん、こんにちは。Ta-ku-ya II です。
[#28919] RD の Reference について — Kenta MURATA <muraken2@...>
むらけんです.
前田です。
[#28954] erb のバグ (ローカル変数が未定義になってしまう) — Keisuke Minami <keisuke@...>
こんにちは。三並です。
[#28963] Re: 9p L 3〜10 P 2 L 2 回目 — Naoto Hiroshima <taisei-in@...>
こんにちは(^_^)
[#29021] [ruby/GD] GD.so not found? — AKJ <ml@...>
はじめて参加させていただきます。
[#29023] 配列に要素を挿入 — Kenji Noda <zaq94465a@...>
野田と申します
From: Kenji Noda <zaq94465a@cat.zero.ad.jp>
箱崎です。
Hiroshi Hakozaki wrote:
新井です。
新井です。
[#29037] forwardable-1.0 release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
Toshです。
まつもと ゆきひろです
Toshです。
けいじゅ@日本ラショナルソフトウェアです.
Toshです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
わたなべです。
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:28780] revenge of shell.rb
けいじゅ@日本ラショナルソフトウェアです.
もう話がでていますが...
ムカーシ, shell.rb というのをだしました[ruby-list:7262]. 松本さんも大絶
賛で[ruby-list:7263], つい最近まで標準添付ライブラリになっていたのですが...
知らないうちに標準添付から外されていまいました(;_;
というのも不完全なところがあったからなんですが...
ということで, 完全版(に近いやつ)を出します.
# で, 標準復帰を願うと
ものは, 今は懐かしい, ftp.netlab.co.jpのin.coming に shell-0.5.6.tgz で
おきました. 松本さん, すいませんがcontribに移動願えますか? そしたら,
RAAに登録できます(__;;;;
だいぶ昔のことなので, shell.rb がどいうものなのかがわからない方がいらっ
しゃるかも知れませんので, 簡単に説明します(アーカイブの方にはもっと詳し
いドキュメントが入っています).
では.
あ. そうそう. Rubyは最新版 1.7.0(2001-03-14)が必要です.
# 1.6系の最新版でもOKなのかな?
##-- ここから
目的: sh/cshのようにコマンドの実行及びフィルタリングを気軽に行いたい.
sh/cshには制御文があるがそれはrubyの機能をそのまま用いる.
ex0)
まず, OSのコマンドをShellクラスに定義するメソッドが用意されています.
Shell.def_system_command("sys_ls", "ls")
Shell.def_system_command("sys_sort", "sort")
print sh.sys_ls.sys_sort.to_a
また, いちいちコマンドを定義するのが面倒くさい人のために,
Shell.install_system_commands(prefix)
というのも用意されています. これはパス上にある全ての実行可能ファイルを登
録するものです(でも, さすがに初期化に時間がかかる).
ex1)
Shellオブジェクトはここのオブジェクトごとにカレントディレクトリを持ちま
す. File, Dir, FileTestにあるファイル操作コマンドはそのカレントディレク
トリを基準に実行します.
sh = Shell.cd("/tmp")
sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")
sh.cd("shell-test-1")
for dir in ["dir1", "dir3", "dir5"]
if !sh.exists?(dir)
sh.mkdir dir
sh.cd(dir) do
f = sh.open("tmpFile", "w")
f.print "TEST\n"
f.close
end
print sh.pwd
end
end
だいぶ簡単になってかつshellっぽいですよね?
ex2)
さらに以下のような感じにもできるようになっています. ますますshellポイで
すね.
sh = Shell.cd("/tmp")
sh.transact do
mkdir "shell-test-1" unless exists?("shell-test-1")
cd("shell-test-1")
for dir in ["dir1", "dir3", "dir5"]
if !exists?(dir)
mkdir dir
cd(dir) do
f = open("tmpFile", "w")
f.print "TEST\n"
f.close
end
print pwd
end
end
end
# 実はShell#transact は instance_evalに毛がはえたものですが(^^;;;
ex3)
さらに, 以下のようなこともできるようになっています.
sh.cat("/etc/printcap") | sh.tee("tee1") > "tee2"
(sh.cat < "/etc/printcap") | sh.tee("tee11") > "tee12"
以前は:
# ">>"の演算子の優先順位が ``|''より高いので,
#
# sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
#
# は思ったようには動作しません.
という制約がありましたが,
ex4)
これも解決しています.
sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
(sh.cat < "/etc/printcap") | sh.tee("tee11") >> "tee12"
ex5)
さらに, Shell#catなどはShell::Filterのサブクラスのインスタンスを返すの
ですが, これらのクラスはEnumerableをincludeしていますので,
print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}
みたいなこともでき, 通常のrubyのプログラミングも楽しめるようになってい
ます
## 完璧ですね(^^;;;
ex6)
さらにさらに, irb上で実行するとほとんどシェルのようです. 実行のイメージ
は... 実際に実行してみてください.
##--
あと, 旧版で問題だった, コマンドのシリアライズなどの問題も解決しています
([ruby-list:9142], [ruby-list:9147]). ちなみに解決法は, 松本さんの案
([ruby-list:9157], [ruby-list:9165], [ruby-list:9167])あたりで話題が出て
きています.
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---