From: HAYASHI Daihachi Date: 1997-11-08T23:40:48+09:00 Subject: [ruby-list:5216] My first coding. 林@守口市です。まつもとさんのお作りになったものに日頃よりお世話になっ ておりますのに、rubyに関しては、最近まで全く知りませんでした。存在を知っ てからちょっと夢中になってしまってます。とにかく言語は書いてみるのがい いのだと思いまして、四苦八苦コーディングしてみましたが、可読性がいいこ とやシンプルさをより感じました。 いきなりコードを皆さんに見ていただくのも不躾ですがご批判や感想いただけ ればうれしいです。といっても、これじゃあまりPerlと変りなくOOPを生かし ていないですね、正規表現の使いかたも変かもしれません。スタイルも教えて ください。 -------- 以下コード -------- # HTMLマニュアルの、 タグから索引を作る # ソースは、ruby-man-1.0-jp を対象にしています # usage: ruby this.rb *.html > sakuin.html # 環境 WIN95 Cygwin32 b18 rbgw1021バイナリー # hayashi@mxs.meshnet.or.jp Sat Nov 8 1997 $ary = Array.new while gets() $_ = Kconv.tosjis($_) # うちの環境では、これが必要 if /()/i $_ = $1 + $3 mark = $2 fname = $<.filename fname.gsub!(/^.*\//, '') gsub(/<\/A>.*$/, '') while /<[\/A-Za-z][^>]*>/ gsub(/<[\/A-Za-z][^>]*>/, '') end while />/; gsub('>', '>') end while /</; gsub('<', '<') end while /&/; gsub('&', '&') end $_.strip! unless /^目次$/ || /^次$/ || /^前$/ || /^上$/ || /@.*\./ || /^$/ # 不必要なタグを除く if mark =~ /^#/ # 自ファイル内のジャンプなら mark = fname + mark # ファイル名をつける end $ary << $_ + "\t" + mark end end end $ary.sort! print "
ruby マニュアルの索引
\n" $ary.each{|val| val =~ /(.*)\t(.*)/ printf "
%s
\n", $2, $1 unless val == $old $old = val } print "\n" -- |_| /|V /|( |_||[Sagasen] MAIL: hayashi@mxs.meshnet.or.jp |V| | | |/~||/~| )| || http://www2a.meshnet.or.jp/~hayashi/search/ | |ORIGUT|