[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

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

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

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

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

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

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7660] rar/wc

From: Tadayoshi Funaba <tadf@...>
Date: 1998-04-20 15:26:46 UTC
List: ruby-list #7660
ふなばです。

うもれてるし、あたらしいのをポストしておきます。

--Tadayoshi Funaba
#! /usr/local/bin/ruby

# rar.rb: Written by Tadayoshi Funaba 1998
# $Id: rar.rb,v 1.2 1998/04/15 13:50:00 tadf Exp $

exit if $*.empty?

print <<'__PRELUDE__'
#! /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)
    fail unless File.size(file) == size
  end
end

__PRELUDE__

$exit_status = 0

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

def find_files2(file)
  unless File.directory? file then
    yield file
  else
    store_sentinel(file) do
      Dir.foreach(file) do |elem|
	next if /^\.{1,2}$/no =~ elem
	find_files2(file.sub(/\/*$/no, '/') + elem) do |file2|
	  yield file2
	end
      end
    end
  end
end

def find_files(files)
  files.each do |file|
    find_files2(file) do |file2|
      yield file2
    end
  end
end

$dirlist = []

def gen_create_dir(file)
  dir = File.dirname(file)
  return if /^\.$/no =~ dir
  dir2 = dir.scan(/^\/+[^/]+|[^/]+/no)
  for last in 0 .. dir2.length - 1
    dir3 = dir2[0 .. last].join('/')
    next if $dirlist.include? dir3
    puts "create_dir('#{dir3}')"
    $dirlist << dir3
  end
end

find_files($*) do |file|
  gen_create_dir(file)
  store_sentinel(file) do
    text = mode = size = atime = mtime = nil
    open(file, 'r') do |input|
      text = (input.binmode.read or '')
      mode = input.stat.mode & 0777
      size = input.stat.size
      atime = input.stat.atime.to_i
      mtime = input.stat.mtime.to_i
    end
    print "text = <<'__RAREOF__'\n", [text].pack('m'), "__RAREOF__\n"
    puts "create_file('#{file}', text, #{mode}, #{size}, #{atime}, #{mtime})"
  end
end
puts '', 'exit $exit_status', '__END__'

exit $exit_status
#! /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)
    fail 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, 893085124, 893085123)
text = <<'__RAREOF__'
IyEgL3Vzci9sb2NhbC9iaW4vcnVieQoKIyByYXIucmI6IFdyaXR0ZW4gYnkg
VGFkYXlvc2hpIEZ1bmFiYSAxOTk4CiMgJElkOiByYXIucmIsdiAxLjIgMTk5
OC8wNC8xNSAxMzo1MDowMCB0YWRmIEV4cCAkCgpleGl0IGlmICQqLmVtcHR5
PwoKcHJpbnQgPDwnX19QUkVMVURFX18nCiMhIC91c3IvbG9jYWwvYmluL3J1
YnkKCiRleGl0X3N0YXR1cyA9IDAKCmRlZiByZXN0b3JlX3NlbnRpbmVsKGRp
cl9vcl9maWxlKQogIGJlZ2luCiAgICB5aWVsZAogIHJlc2N1ZQogICAgJHN0
ZGVyci5wdXRzICJyZXN0b3JlIG9mICN7ZGlyX29yX2ZpbGV9IGZhaWxlZCIK
ICAgICRleGl0X3N0YXR1cyA9IDEKICBlbmQKZW5kCgpkZWYgY3JlYXRlX2Rp
cihkaXIpCiAgcmVzdG9yZV9zZW50aW5lbChkaXIpIGRvCiAgICBEaXIubWtk
aXIgZGlyIHVubGVzcyBGaWxlLmRpcmVjdG9yeT8gZGlyCiAgZW5kCmVuZAoK
ZGVmIGNyZWF0ZV9maWxlKGZpbGUsIHRleHQsIG1vZGUsIHNpemUsIGF0aW1l
LCBtdGltZSkKICByZXN0b3JlX3NlbnRpbmVsKGZpbGUpIGRvCiAgICBvcGVu
KGZpbGUsICd3JykgZG8gfG91dHB1dHwKICAgICAgb3V0cHV0LmJpbm1vZGUu
d3JpdGUgdGV4dC51bnBhY2soJ20nKVswXQogICAgZW5kCiAgICBGaWxlLmNo
bW9kKG1vZGUsIGZpbGUpCiAgICBGaWxlLnV0aW1lKGF0aW1lLCBtdGltZSwg
ZmlsZSkKICAgIGZhaWwgdW5sZXNzIEZpbGUuc2l6ZShmaWxlKSA9PSBzaXpl
CiAgZW5kCmVuZAoKX19QUkVMVURFX18KCiRleGl0X3N0YXR1cyA9IDAKCmRl
ZiBzdG9yZV9zZW50aW5lbChkaXJfb3JfZmlsZSkKICBiZWdpbgogICAgeWll
bGQKICByZXNjdWUKICAgICRzdGRlcnIucHV0cyAic3RvcmUgb2YgI3tkaXJf
b3JfZmlsZX0gZmFpbGVkIgogICAgJGV4aXRfc3RhdHVzID0gMQogIGVuZApl
bmQKCmRlZiBmaW5kX2ZpbGVzMihmaWxlKQogIHVubGVzcyBGaWxlLmRpcmVj
dG9yeT8gZmlsZSB0aGVuCiAgICB5aWVsZCBmaWxlCiAgZWxzZQogICAgc3Rv
cmVfc2VudGluZWwoZmlsZSkgZG8KICAgICAgRGlyLmZvcmVhY2goZmlsZSkg
ZG8gfGVsZW18CgluZXh0IGlmIC9eXC57MSwyfSQvbm8gPX4gZWxlbQoJZmlu
ZF9maWxlczIoZmlsZS5zdWIoL1wvKiQvbm8sICcvJykgKyBlbGVtKSBkbyB8
ZmlsZTJ8CgkgIHlpZWxkIGZpbGUyCgllbmQKICAgICAgZW5kCiAgICBlbmQK
ICBlbmQKZW5kCgpkZWYgZmluZF9maWxlcyhmaWxlcykKICBmaWxlcy5lYWNo
IGRvIHxmaWxlfAogICAgZmluZF9maWxlczIoZmlsZSkgZG8gfGZpbGUyfAog
ICAgICB5aWVsZCBmaWxlMgogICAgZW5kCiAgZW5kCmVuZAoKJGRpcmxpc3Qg
PSBbXQoKZGVmIGdlbl9jcmVhdGVfZGlyKGZpbGUpCiAgZGlyID0gRmlsZS5k
aXJuYW1lKGZpbGUpCiAgcmV0dXJuIGlmIC9eXC4kL25vID1+IGRpcgogIGRp
cjIgPSBkaXIuc2NhbigvXlwvK1teL10rfFteL10rL25vKQogIGZvciBsYXN0
IGluIDAgLi4gZGlyMi5sZW5ndGggLSAxCiAgICBkaXIzID0gZGlyMlswIC4u
IGxhc3RdLmpvaW4oJy8nKQogICAgbmV4dCBpZiAkZGlybGlzdC5pbmNsdWRl
PyBkaXIzCiAgICBwdXRzICJjcmVhdGVfZGlyKCcje2RpcjN9JykiCiAgICAk
ZGlybGlzdCA8PCBkaXIzCiAgZW5kCmVuZAoKZmluZF9maWxlcygkKikgZG8g
fGZpbGV8CiAgZ2VuX2NyZWF0ZV9kaXIoZmlsZSkKICBzdG9yZV9zZW50aW5l
bChmaWxlKSBkbwogICAgdGV4dCA9IG1vZGUgPSBzaXplID0gYXRpbWUgPSBt
dGltZSA9IG5pbAogICAgb3BlbihmaWxlLCAncicpIGRvIHxpbnB1dHwKICAg
ICAgdGV4dCA9IChpbnB1dC5iaW5tb2RlLnJlYWQgb3IgJycpCiAgICAgIG1v
ZGUgPSBpbnB1dC5zdGF0Lm1vZGUgJiAwNzc3CiAgICAgIHNpemUgPSBpbnB1
dC5zdGF0LnNpemUKICAgICAgYXRpbWUgPSBpbnB1dC5zdGF0LmF0aW1lLnRv
X2kKICAgICAgbXRpbWUgPSBpbnB1dC5zdGF0Lm10aW1lLnRvX2kKICAgIGVu
ZAogICAgcHJpbnQgInRleHQgPSA8PCdfX1JBUkVPRl9fJ1xuIiwgW3RleHRd
LnBhY2soJ20nKSwgIl9fUkFSRU9GX19cbiIKICAgIHB1dHMgImNyZWF0ZV9m
aWxlKCcje2ZpbGV9JywgdGV4dCwgI3ttb2RlfSwgI3tzaXplfSwgI3thdGlt
ZX0sICN7bXRpbWV9KSIKICBlbmQKZW5kCnB1dHMgJycsICdleGl0ICRleGl0
X3N0YXR1cycsICdfX0VORF9fJwoKZXhpdCAkZXhpdF9zdGF0dXMK
__RAREOF__
create_file('rar/rar.rb', text, 292, 2154, 893085124, 893085123)

exit $exit_status
__END__
#! /usr/local/bin/ruby

# wc.rb: Written by Tadayoshi Funaba 1998
# $Id: wc.rb,v 1.2 1998/04/15 13:50:16 tadf Exp $

def wc(text, file = nil)
  lc = text.scan(/\n/no).length; $lc += lc
  wc = text.scan(/\S+/no).length; $wc += wc
  cc = text.length; $cc += cc
  printf('%7d %7d %7d', lc, wc, cc)
  printf(' %s', file) if file
  puts
end

$es = $lc = $wc = $cc = 0
if $*.empty? then
  wc($stdin.read || '')
else
  $*.each do |file|
    begin
      open(file, 'r') do |input|
	wc(input.read || '', file)
      end
    rescue
      $stderr.puts "#{$0}: #{file}: cannot read"
      $es = 1
    end
  end
end
printf("%7d %7d %7d total\n", $lc, $wc, $cc) if $*.length >= 2
exit $es

In This Thread

Prev Next