[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/04
[#6221] Re: Ruby連載 第4話 — Shin-ichiro HARA <sinara@...> 1998/02/04

原です。

[#6224] Re: Ruby連載 第4話 — Yasunari Momoi <conan@...> 1998/02/04

ももちゃん@あるもにこすです.

[#6225] Re: Ruby連載 第4話 — matz@... (Yukihiro Matsumoto) 1998/02/04

まつもと ゆきひろです

[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>

助田です。

33 messages 1998/02/04
[#6252] Re: i++ — gotoken@... (GOTO Kentaro) 1998/02/05

ことけんです

[#6255] Re: i++ — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#6260] Re: i++ — Yuji Shigehiro <sigehiro@...> 1998/02/05

しげひろです.

[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>

オブジェクト指向周辺をぶらぶらしている助田です。

11 messages 1998/02/06

[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp

13 messages 1998/02/07
[#6335] Re: ruby 流に添削して下さい — OZAWA Sakuro <crouton@...> 1998/02/07

さくです.

[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 1998/02/10
[#6402] parsedate (Re: ruby 1.1b7 released) — WATANABE Hirofumi <watanabe@...> 1998/02/13

わたなべです.

[#6405] Re: parsedate (Re: ruby 1.1b7 released) — Tadayoshi Funaba <tadf@...> 1998/02/13

ふなばです。

[#6407] Re: parsedate (Re: ruby 1.1b7 released) — matz@... (Yukihiro Matsumoto) 1998/02/13

まつもと ゆきひろです

[#6373] call for scripts — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

133 messages 1998/02/10
[#6414] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/14

金城です.

[#6428] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6448] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/16

金城です.

[#6452] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/17

まつもと ゆきひろです

[#6481] Re: call for scripts — Kikutani Makoto <kikutani@...> 1998/02/17

きくたに@ぷ〜たろ〜です。

[#6483] Re: call for scripts — OZAWA Sakuro <crouton@...> 1998/02/17

さくです.

[#6495] Re: call for scripts — WATANABE Hirofumi <watanabe@...> 1998/02/18

わたなべです.

[#6416] Re: call for scripts — shugo@... (Shugo Maeda) 1998/02/14

前田です。

[#6417] rgrep (Re: call for scripts) — shugo@... (Shugo Maeda) 1998/02/15

前田です。

[#6423] Re: rgrep (Re: call for scripts) — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6612] Re: call for scripts — Tadayoshi Funaba <tadf@...> 1998/02/21

ふなばです。

[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>

小澤さくです。

19 messages 1998/02/20
[#6583] Re: File::Separator on cygwin — WATANABE Hirofumi <watanabe@...> 1998/02/20

わたなべです.

[#6586] Re: File::Separator on cygwin — OZAWA Sakuro <ozawa@...> 1998/02/20

小澤さくです。

[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/20
[#6620] rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/22

前田です。

[#6629] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6643] Re: rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/23

前田です。

[#6649] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6650] Re: rbc.rb and binding — matz@... (Yukihiro Matsumoto) 1998/02/23

まつもと ゆきひろです

[#6667] JRI 0.5 worked (was Re: rbc.rb and binding) — OZAWA Sakuro <crouton@...> 1998/02/23

さくです.

[#6687] Re: JRI 0.5 worked (was Re: rbc.rb and binding) — shugo@... (Shugo Maeda) 1998/02/24

前田です。

[#6712] JRI and JDBC — OZAWA Sakuro <ozawa@...> 1998/02/24

小澤さくです。

[#6635] hello — WATANABE Tetsuya <tetsu@...>

渡辺哲也と申します。

15 messages 1998/02/23

[#6706] Re: Counter class — toyofuku@...

豊福@パパイヤです。

12 messages 1998/02/24

[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)

前田です。

27 messages 1998/02/24
[#6746] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/25

けいじゅ@日本ラショナルソフトウェアです.

[#6747] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6752] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6754] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6756] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6786] Re: Mutex/ConditionVariable/Queue — senda@...

From: shugo@po.aianet.ne.jp (Shugo Maeda)

33 messages 1998/02/26
[#6791] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6794] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6796] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/26

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:6842] Re: call for scripts

From: Tadayoshi Funaba <tadf@...>
Date: 1998-02-28 02:13:48 UTC
List: ruby-list #6842
ふなばです。

rar の改訂版です。ディレクトリをあつかえるようにしました。パーミッション
とタイムスタンプを保存するようにしました。ファイルサイズのチェックもおこ
なうようにしました。コードは三倍以上になりましたが、少し考えをあらためて、
書きかたもかえたら、スッキリしたように思います。

rar を rar してみたので、ruby -x 'このメイル' としてください。


#! /usr/local/bin/ruby

$exit_status = 0

def restore_sentinel(dir_or_file)
  begin
    yield
  rescue
    $stderr.puts "restore of #{dir_or_file} failed"
    $exit_status = 1
  end
end

def create_dir(dir)
  restore_sentinel(dir) do
    Dir.mkdir dir unless File.directory? dir
  end
end

def create_file(file, text, mode, size, atime, mtime)
  restore_sentinel(file) do
    open(file, 'w') do |output|
      output.binmode.write text.unpack('m')[0]
    end
    File.chmod(mode, file)
    File.utime(atime, mtime, file)
    raise unless File.size(file) == size
  end
end

create_dir('rar')
text = <<'__RAREOF__'
ICAgICAgICAgICAgICAgICAgICAgICAgIFJ1YnkgpaKhvKWrpaSl9KTOuu7A
rgoKpLOk7KTPIHNoYXIgpM4gUnVieSDIx6THpLmhowoKpMSkq6SkpKukv6TP
tMrDsaGjpL+kyKSopNChonJhciCkzqW9obyluaTypeGlpKXrpMfB96TqpL+k
pKTKpOmhoqTEpK6kzqToCqSmpMukt6TepLmhowoKICAgIHJhciBSRUFETUUg
cmFyLnJiIHwgbWFpbCAtcyAncmFyIHNvdXJjZScgdGFkZgo=
__RAREOF__
create_file('rar/README', text, 420, 215, 888631108, 888631107)
text = <<'__RAREOF__'
IyEgL3Vzci9sb2NhbC9iaW4vcnVieQoKIyByYXIucmI6IFdyaXR0ZW4gYnkg
VGFkYXlvc2hpIEZ1bmFiYSAxOTk4CiMgJElkOiByYXIucmIsdiAxLjEgMTk5
OC8wMi8yOCAwMTo1MjozNCB0YWRmIEV4cCAkCgpleGl0IGlmICQqLmVtcHR5
PwoKcHJpbnQgPDwnX19QUkVMVURFX18nCiMhIC91c3IvbG9jYWwvYmluL3J1
YnkKCiRleGl0X3N0YXR1cyA9IDAKCmRlZiByZXN0b3JlX3NlbnRpbmVsKGRp
cl9vcl9maWxlKQogIGJlZ2luCiAgICB5aWVsZAogIHJlc2N1ZQogICAgJHN0
ZGVyci5wdXRzICJyZXN0b3JlIG9mICN7ZGlyX29yX2ZpbGV9IGZhaWxlZCIK
ICAgICRleGl0X3N0YXR1cyA9IDEKICBlbmQKZW5kCgpkZWYgY3JlYXRlX2Rp
cihkaXIpCiAgcmVzdG9yZV9zZW50aW5lbChkaXIpIGRvCiAgICBEaXIubWtk
aXIgZGlyIHVubGVzcyBGaWxlLmRpcmVjdG9yeT8gZGlyCiAgZW5kCmVuZAoK
ZGVmIGNyZWF0ZV9maWxlKGZpbGUsIHRleHQsIG1vZGUsIHNpemUsIGF0aW1l
LCBtdGltZSkKICByZXN0b3JlX3NlbnRpbmVsKGZpbGUpIGRvCiAgICBvcGVu
KGZpbGUsICd3JykgZG8gfG91dHB1dHwKICAgICAgb3V0cHV0LmJpbm1vZGUu
d3JpdGUgdGV4dC51bnBhY2soJ20nKVswXQogICAgZW5kCiAgICBGaWxlLmNo
bW9kKG1vZGUsIGZpbGUpCiAgICBGaWxlLnV0aW1lKGF0aW1lLCBtdGltZSwg
ZmlsZSkKICAgIHJhaXNlIHVubGVzcyBGaWxlLnNpemUoZmlsZSkgPT0gc2l6
ZQogIGVuZAplbmQKCl9fUFJFTFVERV9fCgokZXhpdF9zdGF0dXMgPSAwCgpk
ZWYgc3RvcmVfc2VudGluZWwoZGlyX29yX2ZpbGUpCiAgYmVnaW4KICAgIHlp
ZWxkCiAgcmVzY3VlCiAgICAkc3RkZXJyLnB1dHMgInN0b3JlIG9mICN7ZGly
X29yX2ZpbGV9IGZhaWxlZCIKICAgICRleGl0X3N0YXR1cyA9IDEKICBlbmQK
ZW5kCgpkZWYgZmluZF9maWxlczIoZmlsZSkKICB1bmxlc3MgRmlsZS5kaXJl
Y3Rvcnk/IGZpbGUgdGhlbgogICAgeWllbGQgZmlsZQogIGVsc2UKICAgIHN0
b3JlX3NlbnRpbmVsKGZpbGUpIGRvCiAgICAgIERpci5mb3JlYWNoKGZpbGUp
IGRvIHxlbGVtfAoJbmV4dCBpZiAvXlwuezEsMn0kL25vID1+IGVsZW0KCWZp
bmRfZmlsZXMyKGZpbGUuc3ViKC9cLyokL25vLCAnLycpICsgZWxlbSkgZG8g
fGZpbGUyfAoJICB5aWVsZCBmaWxlMgoJZW5kCiAgICAgIGVuZAogICAgZW5k
CiAgZW5kCmVuZAoKZGVmIGZpbmRfZmlsZXMoZmlsZXMpCiAgZmlsZXMuZWFj
aCBkbyB8ZmlsZXwKICAgIGZpbmRfZmlsZXMyKGZpbGUpIGRvIHxmaWxlMnwK
ICAgICAgeWllbGQgZmlsZTIKICAgIGVuZAogIGVuZAplbmQKCiRkaXJsaXN0
ID0gW10KCmRlZiBnZW5fY3JlYXRlX2RpcihmaWxlKQogIGRpciA9IEZpbGUu
ZGlybmFtZShmaWxlKQogIHJldHVybiBpZiAvXlwuJC9ubyA9fiBkaXIKICBk
aXIyID0gZGlyLnNjYW4oL15cLytbXi9dK3xbXi9dKy9ubykKICBmb3IgbGFz
dCBpbiAwIC4uIGRpcjIubGVuZ3RoIC0gMQogICAgZGlyMyA9IGRpcjJbMCAu
LiBsYXN0XS5qb2luKCcvJykKICAgIG5leHQgaWYgJGRpcmxpc3QuaW5jbHVk
ZT8gZGlyMwogICAgcHV0cyAiY3JlYXRlX2RpcignI3tkaXIzfScpIgogICAg
JGRpcmxpc3QgPDwgZGlyMwogIGVuZAplbmQKCmZpbmRfZmlsZXMoJCopIGRv
IHxmaWxlfAogIGdlbl9jcmVhdGVfZGlyKGZpbGUpCiAgc3RvcmVfc2VudGlu
ZWwoZmlsZSkgZG8KICAgIHRleHQgPSBtb2RlID0gc2l6ZSA9IGF0aW1lID0g
bXRpbWUgPSBuaWwKICAgIG9wZW4oZmlsZSwgJ3InKSBkbyB8aW5wdXR8CiAg
ICAgIHRleHQgPSAoaW5wdXQuYmlubW9kZS5yZWFkIG9yICcnKQogICAgICBt
b2RlID0gaW5wdXQuc3RhdC5tb2RlICYgMDc3NwogICAgICBzaXplID0gaW5w
dXQuc3RhdC5zaXplCiAgICAgIGF0aW1lID0gaW5wdXQuc3RhdC5hdGltZS50
b19pCiAgICAgIG10aW1lID0gaW5wdXQuc3RhdC5tdGltZS50b19pCiAgICBl
bmQKICAgIHByaW50ICJ0ZXh0ID0gPDwnX19SQVJFT0ZfXydcbiIsIFt0ZXh0
XS5wYWNrKCdtJyksICJfX1JBUkVPRl9fXG4iCiAgICBwdXRzICJjcmVhdGVf
ZmlsZSgnI3tmaWxlfScsIHRleHQsICN7bW9kZX0sICN7c2l6ZX0sICN7YXRp
bWV9LCAje210aW1lfSkiCiAgZW5kCmVuZApwdXRzICcnLCAnZXhpdCAkZXhp
dF9zdGF0dXMnLCAnX19FTkRfXycKCmV4aXQgJGV4aXRfc3RhdHVzCg==
__RAREOF__
create_file('rar/rar.rb', text, 292, 2155, 888631108, 888631107)

exit $exit_status
__END__


--Tadayoshi Funaba

In This Thread