Rubyについて Part 2

このエントリーをはてなブックマークに追加
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

<前スレ>
Rubyについて
http://pc3.2ch.net/test/read.cgi/tech/1012096319/
2デフォルトの名無しさん:02/08/10 00:16
             __
                /〃 ┼‐┼〃__
             /\    ノ                __
                      __  , -――-、  /\ノ
                      ヽ/\l::::::::::::::::::::\ /: : /
         ,..-―-、/)       |: : :|::::::::::::::::::::::/: : /
     /⌒Y    (_ノ  /)       |: : :|:::::::::::::::::::::|: : : /
      ̄l ̄l、     ) /`〉     ヽ:: :|::::::::::::::::::::l: : :/
         l: : :`ー--‐'‐'´: :/        \|∧ハ/l/: ::〈
       \: : : : : : : : : :く         |: : : : : : : : : : `ー-┐  ,.、
         l: : : : : : : : : :`ー―┐ ,、   |: : : : : : : : : : : : : : |二lニノ
         ヽ.: : : : : : : : : : : : : :|ニノ   |: : : : : : : : : : : : : : |
           ヽ: : : : : : : : : : : : :|      ヽ: : : : : : : : : : : /
           \: : : : : : : : :/       \ : : : : : : /
              ̄ ̄ ̄ ̄    ノ|      ̄ ̄ ̄       ノ)
                   ノしノ  し'(           ノ)__ノ (ノ(
他にもアンチが立てたスレがありますが、ここが仕切りなおしの
本スレということでよろしくお願いします。
4デフォルトの名無しさん:02/08/10 00:17
>>2
はや
Riteの、名前の由来は?
<関連スレ>

rubyを語るスレッド
http://pc.2ch.net/test/read.cgi/unix/1018967064/l50

【Ruby】RubyでCGI
http://pc.2ch.net/test/read.cgi/php/988948655/l50

goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
http://pc.2ch.net/test/read.cgi/unix/1008120213/l50
7 :02/08/10 08:21
囃蔓ママホム件��ネ.........囃蔓ママヘム件��セ...nワ......囃蔓ママフム件��,ソ..;ワ......囃蔓ママヒム件��g...
......囃蔓ママノム件��ウT........囃蔓ママネム件��・1..・......囃蔓ママヌム件��....」.......椁頃ママホム件�
エX......椁頃ママフム件��オ).7W......椁頃ママヒム件��$.........椁頃ママハム件��.H4.fX......椁頃ママノム
ム件��7.>.TJ......椁頃ママヌム件��畿D.ムg......許裏ママホム件��\ュI.J.......許裏ママヘム件��ヲイM.D.......
....許裏ママヒム件��・U.g.......許裏ママハム件��cテY.\.......許裏ママノム件��ソネ].........許裏ママネム件��Y
f.......猪権ママホム件��メ緤.tャ......猪権ママヘム件��F刃.uャ......猪権ママフム件��サ<s.少......猪権ママヒム
件��.處.擣......猪権ママノム件��キE..z・......猪権ママネム件��1・.ャ......猪権ママヌム件��+・.リキ......捲
...捲蔵ママヘム件��wd..ェ.......捲蔵ママフム件��!z..R.......捲蔵ママヒム件��s騒.A.......捲蔵ママハム件��エァ
......捲蔵ママネム件��?ミァ.R......捲蔵ママヌム件��胎ォ.V.......捲蔵ママニム件��銷ッ.タア......・箱マ
マヘム件��.桓.........・箱ママフム件��lセ........・箱ママヒム件��信ツ.E.......・箱ママハム件��ユ0ニ.y...
...・箱ママネム件��..クユ......・箱ママヌム件��ラネム.0.......忽蔓ママホム件��.エユ.4ノ......忽蔓ママヘム件��;}
ン.ーネ......忽蔓ママヒム件��....(ヒ......忽蔓ママハム件��ュレ..5ネ......忽蔓ママノム件��笋..ラネ......忽蔓ママネ
ママヌム件��.5..慚......註頃ママホム件��ェ...クm......註頃ママヘム件��bq..7n......註頃ママヒム件��听..コp...
..註頃ママネム件��汰..mq......註頃ママヌム件���0..&p......刳腹ママホム件��$。..<.......刳腹ママヘム件��`・.
8デフォルトの名無しさん:02/08/10 18:33
なぜオブジェクトを作らないでメソッドが呼ばれるのですか?

class Foo
 def Foo.test
  print "a"
 end
end

Foo.test
クラスオブジェクトがあるからです。
10デフォルトの名無しさん:02/08/11 02:55
Ruby/SDL付属のサンプル sgetest.rb を実行させたくて、
http://www.etek.chalmers.se/~e8cal1/sge/files/sge020104.tar.gz
を落し、 Makefile.conf の C_ONLY と NOTTF を有効にして、
make; su; make install; ldconfig をしたのですが、
SGEが有効にならず drawLine が undefine となります。

SGEをRuby/SDLで正常認識させるにはどうしたらいいのでしょう?
>>10
確かめずに書いてるが、最近そんな話がMLでなかったっけ?
ところで>>7はなに?
13デフォルトの名無しさん:02/08/11 17:10
Arrayクラスのfilterメソッドって今はないのですか?
実行すると何か
warning: Array#filter is deprecated; use Array#collect!
と叱られるんですけど.....

英語嫁。
Array#filterは推奨されていないからArray#collectを使え
って書いてあるだろうが、このハゲ。
1514:02/08/11 18:06
くそ、マルチかよ。槍田氏脳
16デフォルトの名無しさん:02/08/11 21:50
うぇーん、なんでクラスがオブジェクトなんだよ。

型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂型だ呂
17デフォルトの名無しさん:02/08/11 23:00
ソニーのインターンの申込みてたらちょっとrubyが要求されてた。

国産Rubyは海外でも使われてるの?
次期PS2にはRubyか?
>>16
Smalltalk なども勉強しとけ。

>>17
すでにユーザ人口は海外の方が多いような。
2010:02/08/12 00:00
ML調べても解決できず。。。
2116:02/08/12 00:06
>>19
なんでnewしないでクラスのメソッドが呼ばれるのかが納得いかないんだけど。
squeakはインストールしてあるけど、今の所使ってない。
黙れよカスが。
2316:02/08/12 00:14
なんだよ、しらねーなら知らないですっていえよ。
俺はいまオブジェクトのシリアライズに萌えてんだから邪魔寸名。
2416:02/08/12 00:35
おい、なんだよ!、かってに増殖させるなよ。
オリジナルは俺だからな。
25shigeの義理弟:02/08/12 01:33
またshige兄があちこちで翻訳ソフト使ってあそんでるよ。もうハゲかかってる
オヤジなのに。
Rubiを進めてくれてるshigeさんには悪いけど、僕はCOBOLerになろうと決めました。
26shige:02/08/12 01:45
おお!――義弟よ!
COBOLerになることは悲惨です。
それが遅くないので、今からさえ返ってください。
あなたの親はCOBOLerになったために厳しく悲しく感じています。
真実を知らないことは問題です、それ、将来などのないCOBOLerより尊敬すべきルビーの方向、徐行100、また、それはよい。
Iは糞を食べることが好きです。
言われていることが聞かれない場合、それはあなたに排泄物を投げるために遂行するでしょう。
それは悲しすぎます。

大きな大きな天才Rubyist shige。
2710:02/08/12 01:48
ruby-extじゃなくてruby-listに同じ質問見つけて、
それを参考に、最新パッケージをビルドし直して解決しました。
とりあえずありがとうです>>11
28shigeの義理弟 :02/08/12 01:57
やっぱり・・・。
>>16
クラスオブジェクトがあるからです。
class Foo を実行した時点で。
class Foo; end

は、

Foo = Class.new

と同じ。
じゃ、クラスは型じゃないの?
Class.newだと名前が付かないからclass Fooとは少し違う。
Class#nameというメソッドで名前を得ることができる。
型にメタな型があると思えば?
>>32
Classクラスのインスタンスが定数に代入されることによって名前(クラス名)がつく。
だから、>>30は正しいのです。

この辺、ruby-listの議論を読んだとき、なんだかよくわかんないことやってるな、
と思った記憶がある。

ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/14145
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/6755
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/9677

のあたりの議論。
34_:02/08/12 15:01
>>16
SELFも勉強しとくといいよ。
35デフォルトの名無しさん:02/08/12 15:37
あ a 1
ぃ b 3
い c 5
ぅ d 7
う e 9
ぇ f 11
え g 13
ぉ h 15
お i 17
か j 19
が k 21
き l 23
ぎ m 25
く n 27
ぐ o 29
け p 31
げ q 33
こ r 35
ご s 37
さ t 39

excelを使わずに、上のような表を即興でサンプルのを作りたいのです。
ruby -e '"あ".upto("わ"){|x| print x, "\n" }'
として、一列目だけは生成できるけど、一度にバァーっと出して、
周りのみんなを驚かしたいけど、うまくいかない。
イテレータの使い方が甘いのでしょーか?
36デフォルトの名無しさん:02/08/12 15:38
あ      a       1
ぃ      b       3
い      c       5
ぅ      d       7
う      e       9
ぇ      f       11
え      g       13
ぉ      h       15
お      i       17
か      j       19
が      k       21
き      l       23
ぎ      m       25
く      n       27
ぐ      o       29
け      p       31
げ      q       33
こ      r       35
ご      s       37
さ      t       39
37デフォルトの名無しさん:02/08/12 16:37
これではどう?長すぎ?

ruby -e '("あ".."さ").each_with_index {|v,i| printf "%s\t%s\t%d\n", v, (?a+i).chr, (i*2)+1 }'
38デフォルトの名無しさん:02/08/12 16:38
こっちの方がちょっと短かかった。

ruby -e '("あ".."さ").each_with_index {|v,i| puts "#{v}\t#{(?a+i).chr}\t#{(i*2)+1}" }'
39デフォルトの名無しさん:02/08/12 19:12
>>37
>>38
有難うございました。
【あ〜さ】をindexにする使い方は便利です。
しかし、本来は【あ〜わ】までをindexにすると
ローマ字の列と奇数の列が途中で変になります。

もう少し頑張ってみます。
あ      a       1
ぃ      b       3
い      c       5

く      n       27
ぐ      o       29
け      p       31
げ      q       33
こ      r       35
ご      s       37
さ      t       39


つ              69

                71

        73
で              75
と              77
ど              79
な              81
に              83
ぬ              85
ね              89
は              ケ1
ば              $(D93(B
ぱ              95
ひ              97
40デフォルトの名無しさん:02/08/12 19:22
判りにくくてすみません。
つまり、やりたいことは、
ローマ字列と奇数列はindexが「わ」になるまで
繰り返していくので、最後のあたりは
め      l       27
も      m       29
ゃ      n       31
や      o       33
ゅ      p       35
ゆ      q       37
ょ      r       39
よ      s       41
ら      t       43
り      u       45
る      v       47
れ      w       49
ろ      x       51
ゎ      y       53
わ      z       55

となります。
41デフォルトの名無しさん:02/08/12 19:26
【補足】奇数は99の次は1からまた始まる数列なんです。
a〜zはあ〜わのインデックスの丁度1/3なので、
わ z とそろいます。
法が 26 や 99 ということか。それぞれ mod してやれば。
43デフォルトの名無しさん:02/08/12 21:12
こういうこと?

ruby -e '("あ".."わ").each_with_index {|v,i| puts "#{v}\t#{(?a+(i%26)).chr}\t#{((i*2)+1)%100}" }'
44デフォルトの名無しさん:02/08/12 21:58
Java とかじゃ

for( int x = offsetX; x<width; x += grid){
# 何がしの処理
}

なんて書く処理なんですけども、Ruby じゃこういう繰り返しはどう書くもんなの?

x = offset_x
while( x < width)

# 何がしの処理

x += grid
end

とか? これ冗長過ぎやしないか。
45デフォルトの名無しさん:02/08/12 22:17
>44
その例だと Integer#stepを使って

offsetX.step (width-1, grid) do |x|
# 何がしの処理
end

みたいに書けるよ。
けれども私の場合、実際にstepを使ったことはほとんどないです。
46デフォルトの名無しさん:02/08/12 22:47
なる程。有難う! >>45
47デフォルトの名無しさん:02/08/12 22:59
>>43
有難うございました。
これで後輩に、excelよりrubyを使えって
実例をもって説得できそうです。
>>47
いや、この場合は Excel でいいんじゃないかなあ。
適材適所だよ。
というか Excel と ruby って比べられるもんじゃないが。
49デフォルトの名無しさん:02/08/13 14:35

Ruby はじめたんですが、(自分にとっては)他のどの言語とも
違う感じでなかなか習得できません。
ところで、Ruby には Sun の java API ドキュメントみたいな
のはないんですか?
java APIドキュメントは知らないけど、
ライブラリに関するドキュメントは下記のところから手に入るよ。
とりあえずHTML Helpか分割HTMLを使えば良いじゃないかな。

HTML Help(Windows用) と 分割HTML
http://www7.tok2.com/home/misc/ruby.html

Ruby リファレンスマニュアル
http://www.ruby-lang.org/ja/man-1.6/index.cgi

refe
http://www.loveruby.net/ja/prog/refe.html

ri
http://www.pragmaticprogrammer.com/ruby/downloads/ri.html

ところで、Rubyってそんなに他の言語と違うかなあ。
もっと変な言語は(言葉が悪いけど)いくらでもあると思うんだけど。

51デフォルトの名無しさん:02/08/13 18:03

>50
ありがとうございます。
とりあえずrefe見てみます。

Ruby勉強するのはかなりしんどいのですが、みなさんは
どうやって習得したのですか?
自分はいま"オブジェクト指向スクリプト言語Ruby"使ってます。











52デフォルトの名無しさん:02/08/13 20:45
>51
  『オブジェクト指向スクリプト言語Ruby』 は入門書としては、お薦めできないね。

 入門書としては、

  『たのしい Ruby』 >>>> 『Rubyプログラミング入門』 >> 『プログラミングRuby』

という感じで、初心者向きかな・・・


ruby使ってたら馬鹿にされました。
もうruby使うのやめます。
54デフォルトの名無しさん:02/08/13 21:36
自分はOO大好きで、Perlでもハッシュやらリファレンスやら
使ってOO(というより構造体?)っぽい書き方するのですが、
Rubyはお勧めですか?
カシオのスマートエッグ(ミニプリンター)はお勧めです。
>>53
おれPerlでOOなスクリプトを書いたことがないけど、
PerlのOOのソースを見ていると辛くなってくる。

Rubyの変数はCのポインター的なもの(参照)だけど、
それに馴れていれば、それほど移行は面倒ではないと思う。
一応、Perlっぽい書き方もできるし。

PerlでOOするのに挫折した人がRubyに移行することも
あるみたいなので、一度試してみてはどうだろう?
(もっともPerl6になるとまったく話は変わるかもしれない。)
57デフォルトの名無しさん:02/08/13 23:11
前スレの948れす

Ruby/Gtkにて、
button = Gtk::Button.new("ボタンのラベル")
で設定したラベルを後で変える方法ってあります?
>>55
新品\980で買いますた。
>>57
ちょっとは調べた?
Ruby-GNOMEメモあたりをみたら?
>>54
あなたは ruby を使うために生まれてきたような人です。
なんでハッシュっていうの?リストでは?
62デフォルトの名無しさん:02/08/14 01:42
>>59
うひー、すみません、よく読んだらちゃんと載ってましたね……
http://home2.highway.ne.jp/mutoh/tips/gtk_button.html
スマソ
63デフォルトの名無しさん:02/08/14 02:43
システムコール呼んだことはありますか?
mod_rubyでroot用のプログラム動かしたい。
setuidをどのようにして呼ぶべきか教えをたれてください
>>63
ファイル一つ開くにもシステムコールは必要ですが、何か?
65デフォルトの名無しさん:02/08/14 03:26
>63
そりゃ組み込み関数だろが
6665:02/08/14 04:37
違った。>64。鬱氏。
67デフォルトの名無しさん:02/08/14 06:38
>54

 わたしはまさに、あなたと同じ様な感じで Perl を使ってて、
Perl のリファレンスの使いにくさに嫌気がさして、 Ruby を
使うように成りました。
今の所、Cの拡張ライブラリを書くしか無いのかなあ?
ruby-talkにこういうメールがあるけど…。

ruby-talk Running ruby scripts suid-root
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/21744

上のメールから
http://www.tesol.net/scripts/Otherstuff/setuid.html#yourwrap
69デフォルトの名無しさん:02/08/17 14:38
http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml

メンテ中?
みれない・・・
>>68
ruby-devでsuidrubyのパッチを見た覚えがあるな。
72Ruby厨:02/08/18 02:28
1:1 全ての始まりの前に、原始のバイナリーの海があった。そこは機械語が支配
する世界である。
1:2 始めにRubyの神は天地を創造された。それはコマンドラインでruby,irb
である。
1:3 地は混沌であって、闇が深淵の面にあり、Rubyの精神はunixに動いていた。
1:4 神は言われた。「Rubyに光りあれ、目覚めよプロセスよ」こうして
原始Rubyプロセスはあった。
1:5 神はRubyを見てよしとされた。
73Ruby厨:02/08/18 02:29
1:6 そして終わりに、神は御自分にかたどってクラスとオブジェクトを
創造された。
1:7 そして神の姿として作られたオブジェクトを次のように祝福された。
「クラス達よバイナリー空間に満ちてトークンをObjectのサブクラスとせよ、
自らのタイプを認識し、全てのコンピュータ空間に満ちよ。全ての物をオブジェクト
として支配せよ」
1:8 故に、トークン(1)はオブジェクトであり、(1.type)とすると自ら整数であり
、("a".type)とすると文字列であり、(1.23.type)とするとFloatである
ことを知っているのである。

1:9 そして最後に、神は御造りになった全てのものをご覧になった。見よ、
それは極めて良かった。
74Ruby厨:02/08/18 02:30
1:10 Rubyの神が地と天を創られた時、木も草もはえていなかった。神が
クラスを御造りにならなかったからである。
1:11 神はクラスで人を創り、そのクラスに命を吹き込んだ。それは

class Adam

 def aruku
  print "あるきます"
 end

 def neru
  print "ねます"
 end

 def okiru
  print "おきます"
 end

end

Human_Adam=Adam.new

Human_Adam.okiru

である。こうして人は生きるものとなった。
75Ruby厨:02/08/18 02:31
1:12 神は言われた。「人が独りでいるのは良くない。彼に合う助ける者を造ろう」
1:13 そこで神は野のあらゆる獣、空のあらゆる鳥をクラスで形作り、人の所へ
もってきた。人がそれぞれどう呼ぶか見ておられた。
だが自分に合う助ける者は見つける事が出来なかった。神はそこで人を深い
眠りに落とされた。人が眠ると人の肋骨の一部を抜き、クラスを継承しその
後を肉でふさがれた。そして、人から継承したクラスで女を作り上げられた。
その名をEveと呼んだ。Human_Eveである。

class Eve

 def aruku
  print "あるきます"
 end

 def neru
  print "ねます"
 end

 def okiru
  print "おきます"
 end

 def aisatu
  print "こんにちは"
 end

end

Human_Eve=Eve.new

Human_Eve.okiru

1:14 イブクラスにはメソッドaisatuが加わった。人がそれぞれどう呼ぶか見てお
られた。人が「Human_Eve.aisatu」と呼ぶのを神は目撃された。ゆえに(.)を介し
たオブジェクトのアクセスを"レシーバ形式"や"メッセージを呼ぶ"というのであ
る。
76Ruby厨:02/08/18 02:32
1:15 次にRubyの神は人に従うクラスを創造された。 神は言われた。
「クラスたちよ、演算子をもクラスのメソッドにせよ。すべてのクラスに満ちて
オブジェクトに対する(+)(-)(*)はメソッドとせよ」神は数値に対する加算演算子
たち、減算演算子たちをそれぞれにメソッドとして祝福された。
1:16 故にオブジェクト(1)は、演算子としての(+)(-)(*)(/)はメソッドとして
理解し、自らが整数である事を知っているのと同時に自らがどの様な演算をする
べきなのかをも知っているのである。
77Ruby厨:02/08/18 02:33
1:17 神は言われた。「Stringクラスよ、スーパークラスObjectを継承し、
文字列を数値に変換するメソッドを備えよ、Stringに対する演算は文字列
の連結とし、文字列の操作メソッドを備えよ。」そのようになった。
1:18 故に、文字列("3.14")は、("3.14".to_i)という整数への変換
メソッドを理解し、("3.14".to_f)というFloat型への変換を理解し、
("pi"+"3.14")という演算子(+)はメソッドとして文字列を連結し、
("abcdef".length)というメソッドで文字列の長さを理解し、
("abcdef".reverse)で文字列を逆さまにし、("abcdef".empty?)で
文字列が空かを知り、("abcdef".swapcase)で小文字を大文字に変換し、
("abcdef".sub("abc","xyz"))で検索した文字列を置換し、
("abcdef".rindex(/cd*/))で正規表現により一致した文字列の位置を返す
事を知っており、さらに、文字列の暗号化までをも知っているのである。
神はこれを見てよしとされた。
78Ruby厨:02/08/18 02:34
1:19 主なる神はまた、オブジェクト指向的ではない記述も可能なように
配慮なされた。それはPerlの様に記述可能にされるためである。
それはコマンドラインで(Integer(123.456))に現れた。(Integer)があり
(Float)があった。
これは真のオブジェクト指向の神秘の姿をそれとなく現した。
1:20 見よ、真の表記は(Kernel.Integer(123.456))である事を。
class Man
def aruku
print "あるきます"
end
def neru
print "ねます"
end
def okiru
print "おきます"
end
end
Adam=Man.new
Adam.okiru
class Woman < Man
def aisatsu
print "こんにちは"
end
end
Eve=Woman.new

言いたいこともよくわからんがこうじゃないのか?
>> 72
rubyとirbを同じレベルで扱うのは変じゃないか?
>>72-78
結果的にマルチ。
82デフォルトの名無しさん:02/08/18 14:36
ヘビがアダムを誘惑しました
「endなんて今どきはやらないよ。
インデントでブロック構造を表現しようよ」
「でも、one-liner書けなくなっちゃうからな」
アダムは誘惑にのりませんでした
「それよか、イテレータ(ブロック引数)ってどう?」
「お、それかっこいいね」
アダムが逆にヘビを誘惑すると、
ヘビはまんまと誘惑にのってGENERATORまで実装してしまいました

83デフォルトの名無しさん:02/08/18 14:44
>>82
これを見ていた主は怒りました。
「ポストperlを目指すオブジェクト指向スクリプト言語同士で
争うとは何たることだ。
これより永遠にRubyは呪われ、
ム板の全てのRuby関連スレは荒れるであろう。
ネストしたブロック構造のスコープの問題は
永遠に解決されないであろう
Rubyの世代別GCは末代まで効果を表さず
ネイティブスレッドが導入される日は絶対に来ないだろう」
だれか Linux Zaurus で Ruby/Qt を動かそうというツワモノはいないのか?
>>83
ワラタ
そうか、スコープもGCもスレッドもそこが問題だったんだな。
主にパッチきぼんぬ。
>>75
おいおい、継承してないじゃん。
>>68
なぜ Unix ではシェルスクリプトなどを setuid してはいけないことに
なっているのでしょうか?
88デフォルトの名無しさん:02/08/19 00:31
>>82
失敬な!
pythonのGENERATORは、RubyのインチキITERATORと違って、
筋のいいきちんとした仕様だよ
当然、Rubyの真似をしたわけではない
89C++:02/08/19 00:36
誰ですか
僕の反復子を勝手に持ち出したのは。
90デフォルトの名無しさん:02/08/19 00:38
>>88 のようなことを言う奴が多いので、
主なる神はpythonにも宣告しました
「これよりpythonは呪われ、
いかなるカットアンドペーストもインデントがずれるであろう。
機能強化のたびに互換性は微妙に失なわれ、
全ての拡張モジュールはリファレンスカウントを間違うだろう。
そして、お前たちの子孫は呪いのためにself. self. self.と死ぬまで書き続けるのだ」
91デフォルトの名無しさん:02/08/19 00:49
>>90
そして、全てのpython関連スレは呪いのためにさびれ
廃虚と化し、永遠に1000に到達することはないのだ!


>>87
セキュリティ的に危険だから。スクリプトはプログラムでありながら、プロセ
スの生成と実際の読み込みのタイミングに差がある。その間に、suidスクリプ
トへのsymlinkを別のスクリプトで置き換えるということが(理屈としては)可
能になってしまう。

他にも、シェルスクリプトは他のプログラムを呼び出すことが多いし、すべて
のプログラムでsuid状態を考慮してあるとは限らないというのもある。
>>92へ追加。
あと、バイナリなら実行中は排他ロックされるが、スクリプトはされないとい
うのもある。まぁ、パーミッションが適切なら問題ないし、通常書き込むと
suidフラグはクリアされるんで一回しかトライできないから、これによる改竄
はlinkによるすり替えよりもさらに難しいし、重要度は低いけどね。
94Hymns:02/08/19 16:05
>82

Python=パイソン=大蛇=ヘビ、ですか?
>>78
Integer(1.23)=>Kernel.Integer(1.23)
Integerクラスのコンストラクタにより(1.23=>1)になり整数オブジェクトと
なって帰ってきた。

print=>Kernel.print=>STDOUT.print
puts=>Kernel.puts=>STDOUT.puts
2つはIOクラスのインスタンスであるがSTDOUTを書かないとモジュールKernel
が呼ばれるので結局STDOUTが無くてもよい。

これでよろしいのか?
97デフォルトの名無しさん:02/08/22 00:08
98Seisei_Yamaguchi:02/08/25 00:39
>>83 >>90 カナリワロタ
>>98
めずらしくふつうなレスだな。
100デフォルトの名無しさん:02/08/25 22:00
RubyでWEB(http)ページを巡回するプログラムを作ろうとしています。
httpのgetでページを取得する個所を以下のように書きました。
テストに幾つかのサイトを試していたら、あるサイトでは転送に圧縮を
かけているらしく、
「うちは圧縮かけてるからブラウザの設定を確認してね。」
ってなメッセージが出ます。
どうやれば圧縮した転送に対応できるのでしょうか。
どなたか教えてください。よろしくお願いします。

require 'net/http'
Net::HTTP.start('xxx.yyy.zzz',80){|http|
response = http.get('/cgi-bin/index.cgi')
tmp_file.print response
}

>>100
がんばれば。

ってのはダメ?
Ruby/zlibあたりが助けになってくれる気がするですね。
102デフォルトの名無しさん:02/08/25 23:58
accept-encoding: gzip をハッシュにいれてやらなきゃだめでしょ。
response = http.get('...', ['accept-encoding'=>'gzip'])
かな。忘れたけど。
>>100

ttp://www.unixuser.org/~haruyama/software/goRua/

の配布物の中のconnect2.rbが参考になると思う。このファイルのHTTPGetGzipに
gzipされたページをHTTPで取得するメソッドが実装されている。

Ruby では main メソッド(?)をクラスの中に書かないのですか?
105デフォルトの名無しさん:02/08/27 02:26

Dir.foreach( '/' ) do |file|
if File.directory?( file )
puts( File.directory?( file ).to_s( ) + " " + file );
end
end

で、. と .. しか出ないのはなぜですか?
>>105
file はファイル名しか入らない。
そのコードだと、「カレントディレクトリ/file」 を調べる。
file の前にパスを付けてやらないとダメ。
>>104
何にも包まないで書けばそれが main。
その辺がスクリプト言語。

>106
サンクス子

rubyでCGI書くときってやっぱオブジェクト指向にこだわらないほうがいいのかなぁ?
標準添付より、もっとまともな cgi ライブラリはないですか?
Div などのフレームワークを使うと良いかと。

Webアプリケーションフレームワーク
http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=Web%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF

>あっちの56
お客に渡すシステムには使ってないが、
ツール作ったりシステムのテストに使ったりはしてる。
>> 111
そこで紹介されているライブラリをCGIで気軽に使うのは難しいと思う。

IOWAは開発者がsmalltalkに流れて開発が止まっている。
DivとWalrusはdRubyが必要で、CGIでソケットを使わなければならない。
Facetも開発が止まっているように見える。

http://www.moonwolf.com/ruby/

でCGIライブラリを開発しているらしいけど、どういう感じなんだろうか?
http://pc3.2ch.net/test/read.cgi/tech/1030310978/44-
で、ruby関係の糞スレ削除についてご意見募集中です。
114110:02/08/30 00:34
結局 cgi.rb は使わず、自前で作りました。GET,POSTメソッドに対応してパラメータの
解析程度なら簡単だし。
>>114cgi.bのどのあたりが問題だった?
116114じゃないけど:02/08/31 00:15
HTTPReqeust を受け取り
HTTPResponse を作って返す
クッキー・セッションを扱う
HTTPResponseはbodyの内容に関与しない

これだけできれば充分なので、HTML生成支援機能みたいなのは
無しにするか別にした方がいいのではないかと思いマスタ
117114だけど:02/08/31 00:30
cgi.params のデフォルト値が [] になっていることとか。
あとでかくて遅い。気がする。
>>116, 117
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40965

によると、分離するつもりらしい?なんか微妙な表現。

>> 118
ruby-talkでも出てるなあ
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/39898

作者の返事がこれ
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/39962
つーか、cgi.rbはソースがキモい。
121先生、質問です!:02/08/31 02:30
>>101,102,103
Thanx!
>>120
禿げしく同意
蛇厨キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

[ruby-talk:48705] Ruby aesthetics
> Hello. I've been checking into python lately quite a lot, and I
> like its clean syntax.
>
> Then comes Ruby, which I find is inferior to python aesthetically.
日本は2chがあるから平和なんだな。
>>123
典型的だな…
>>123
マターリいきましょうよ。
>>126
俺は藁ってヲチしてるんだけど、マジレスしてるのがいるなぁ。
アメリカ人かな。ちなみに48705の香具師はドメインからするとフィンランド。
まぁ煽りを楽しめる程英語はうまくないので、適当にやってくれってこった。
>>116
禿げしく同意
>>127
あれくらいの反応なら別に良いんじゃない?

おれは論争になるんじゃないかと思ってたんだが、
ruby-talkのみなさん大人だねえ。
>>129
同意。

しかし、48725、48725あたりはあっさり受け流してるようだけど、
48716がよくわからん。「お前はトロールか?」っていってんのか、
「釣ろうとしてる?」っつってんのか。
131デフォルトの名無しさん:02/09/02 19:57
ERb で生成する htmlなんだけど。
Model と View を分離するため、変数だけ渡す方法はないだろうか。
eruby ファイルに、変数を追加してやるとか。

Marshal をうまく使って、html を生成するメソッドでも作ろうかと思ったんだけど
もう少しスマートな方法があれば教えてほしい。
132132:02/09/02 19:58
-hoge.rhtml

<body>
<h1><%= title %></h1>
<ul>
<%
list.each { |item|
%>

<ul>
<% list.each { |i| %>
<li><%= i %>
<% } %>
</ul>

</body>

--hoge.rb

title = 'title'
list = ['a','b']
erb = erb('hoge.rhtml')
erb.add_val('list', list)
erb.add_val('title', title)

erb.gene

たとえばこんなやつ
133132:02/09/02 19:59
Copy & Paste ミスッタ
puts ERbLight::new(File.readlines( hoge.rhtml).join).result(binding)
135デフォルトの名無しさん:02/09/02 20:45
>>132
Walrus/OBAQのamritaを使う。
136デフォルトの名無しさん:02/09/03 09:10
>>132

アムリタで書いてみた
-------------------------------
require "amrita/template"
include Amrita

t = TemplateText.new <<END
<body>
<h1 id="title"></h1>
<ul>
<li id="list">
</ul>
</body>
END

data = {
:title => 'タイトル',
:list => [ 'aaa', 'bbb' ]
}

t.expand(STDOUT, data)
-------------------------------
結果
<body>
<h1>タイトル</h1>
<ul>
<li>aaa</li><li>bbb</li></ul>
</body>
----------------------------------
137hn:02/09/03 19:12
>>134

あっさりできた。すげぇ。

>>136

それの考え方一回ウェブサイトで見て面白いと思ったんだけど。どうせなら

--

<ul id="list">
<li>Test Message 1</li>
<li>Test Message 2</li>
</ul>



<ul><li>aaa</li><li>bbb</li></ul>

--

ってしたほうがさらに作りやすいんじゃないかと思った。
138デフォルトの名無しさん:02/09/04 16:14
rubyを勉強してみようと思うんだけど、正直なところ速度的な所は
Javaと比較してどうでしょうか?
カンタンなベンチマークでもしてみれば?
pythonは糞ぢょおも得!
pyてょんは糞だと思う一手を挙げて!
>>138
rubyは比較にならんほど遅いです。
144デフォルトの名無しさん:02/09/04 21:33
速度 Ruby >>> Java > Python
>>144
うそばっかり。
書いててむなしくないの?
146デフォルトの名無しさん:02/09/04 22:29
はぁ? 試してみればぁ?
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Java > Python
147現実は‥‥‥:02/09/04 23:00
Java>>>>>>>>>>>>>>>>>>>>>>>>Python>>>>>Ruby
なぜJavaと比較したいのか。
149デフォルトの名無しさん:02/09/04 23:29
>>144,146,147
○○>>>××>>>>>△△みたいな表現がでてくると
糞スレになりそうなので控えようよ。

それよりも助けてください!
カレントディレクトリのフルパスを得ようと思って
下のようなコードを書いたら、NameErrorが返ってきました。

d = Dir.new("/home/")
puts d.pwd

結果
test.rb:4: undefined method `pwd' for #<Dir:0x401c6bf8> (NameError)

これってメソッドが無いっていわれてるんですよね?
試しに
p d.public_methods

をしてみたんですけどpwd、getwdのふたつの単語は存在しませんでした。
これはRubyのインストール時に問題があったのでしょうか?

環境は下記のとおりです。
Ruby 1.6.7
SerioWare GNU/Linux
>>149
Dir::pwd
or
Dir.pwd
>>145
あなた、釣られてます。144 は Ruby厨を装っている粘着アンチなんで、反応してると
恥ずかしいですよ。

で、実際のところの速度は、ruby や perl などのスクリプト系言語は、ほとんどの場合
Java より遅いでしょう。ruby は Java よりずっと動的な言語仕様なのでどうしてもそう
なりますが、どちらが悪いわけではなく必要に応じて使い分けるべきものです。
>>149

>>150 が書いているけど、pwdはDirクラスのクラスメソッドだから、
Dirのインスタンスに対してpwdを呼ぼうとしてもエラーになってしまうよ。
153デフォルトの名無しさん:02/09/04 23:51
151は良識派を装ったアンチRubyです。
Rubyの速度がJavaに劣るわけがありません。
ましてPythonなんかに
http://member.nifty.ne.jp/hippo2000/perltips/javaperl.htm
からすれば、Perl>Java
また、RubyはPerlとは比較にならない程高速なので、
Ruby >>>>>>>>>>>>>>>>>>> Java > Perlが言える。
根拠の無い比較をしている人はこっちのスレにどうぞ。

Ruby >>>>>> C++ だろ(ぷ
http://pc3.2ch.net/test/read.cgi/tech/1017201348/
>>151
それでも比較したい人もいるので、一応リンクだけ。

http://www.bagley.org/~doug/shootout/
http://www.bagley.org/~doug/shootout/conclusion.shtml

ベンチマークにはRuby-1.6.6を使っているので、1.7.x系を使えば
違う結果になるような気もする。
まあ、あくまで目安として使うのが良いんじゃないかな。

それにしてもocaml、cmucl、seあたりはかなり速い。
ネイティブコードに変換できるからかな?
157149:02/09/05 00:13
>>150,152
ありがとうございます。

そうか、クラスメソッドとインスタンスメソッドの違いだったのか。
まだまだ理解が足りないな > 自分

よーし、がんばるぞ!
mercuryがゲキソクなのはワラタ
awkも速いな。機能が絞られてるからか?
クラスメソッドってのがいまいちピンとこないのです。。インスタンスメソッドとの違いも
わかりにくいし。別に Dir のインスタンスメソッドで pwd 使えたっていいじゃん、とか。
>>160
ともかく、インスタンスメソッドとクラスメソッドは別物で、
それぞれ存在する理由もありますので、そのうち使い分けられるように
なればいいでしょう。それまでは、呪文を覚えるようにDir.pwdを使ってても
良いと思います。

えらそうに書いてスマソsage。
>>160
pwdってのはプロセス全体で共有するもので、複数存在しうるインスタンスに
所属するものではない。
という説明では納得できないか?
>>162
ということはインスタンスに依存しない全体に関係するようなメソッドがクラスメソッドと
ってことでしょうか。モジュール関数と同じような。
>>163
おれは

publicなクラスメソッド = モジュール関数

と理解している。クラスメソッドがインスタンスに依存するかどうかは
実装によると思うが、普通は全体に関するメソッドが多いな。



個人的にはクラスメソッドやモジュール関数という言葉は
Rubyに関して言えばあまり良い言葉ではない気がする。
165デフォルトの名無しさん:02/09/07 01:50
>>164
クラスメソッドって、Smalltalk 由来?
>154
Perl>Javaと言っておきながら下では
Java>Perlになってますよ。
167デフォルトの名無しさん:02/09/07 21:51
誰か >>137 の書いたやつ作ってくれよ
168デフォルトの名無しさん:02/09/07 23:13
>>167
WalrusのMLで注文してみたら?
169デフォルトの名無しさん:02/09/12 11:51
erubyネタって何処で聞けばいいでしょうか?
170デフォルトの名無しさん:02/09/12 12:26
#!/usr/bin/env ruby

pr = IO.popen("w3m -dump http://chat.yahoo.co.jp/?myHome","r")
pr.each_line do |line|
# print if line =~ /現在の参加人数/
if (line =~ /Yahoo/){
if (line =~ /-/){
if (line =~ /:/){
print
}
}
}
end
pr.close
171167:02/09/12 12:28
yahooチャットの現在の参加人数を取得するrubyスクリプト
を作ろうと、作ってみましたが、
if文の基本的な使い方が判りません。
上記のものを実行すればエラーが出ます。
どなたか、マチガイを指摘していただけませんか。
C 言語じゃないので {} は要らない
173167:02/09/12 12:53
上のif文は解決しました。
こんどはw3mのクッキーの設定で叱られます。
以下のようにerubyとして実行させようとしてもクッキーが有効に
なりません。
どなたか、マチガイを指摘していただけませんか。


<%
pr = IO.popen("w3m -cookie /home/hishiura/.w3m/cookie -dump http://chat.yahoo.co.jp/?myHome","r")
pr.each_line do |line|
# print if line =~ /現在の参加人数/
 if line =~ /Yahoo/
  if line =~ /:/
   print line
  end
 end
end
pr.close
%>
174菱浦:02/09/12 12:55
>172
どうもありがとうございました。
しばらくruby-talkを見てなかったら、
こんなのが出てた。

RubyInline
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/49766
http://sourceforge.net/projects/rubyinline/
るびきちがム板から逃げたことで、ム板Rubyスレの進み具合が衰えてるね
1日中張り付いてたんだろうなぁ〜、オマエモナーとか言いながら ププ
177デフォルトの名無しさん:02/09/14 04:08
rubyをつかって、
line1
line2
line3
line4
line5
lien6
ってなデーターに
1 line1
1 line2
2 line3
2 line4
3 line5
3 line6
という番号をつけるワンライナーってかけますか?
書けるのでしたら。
$ruby -n -e 'printf "%d %s", ($.+1)/2, $_' < any.txt
extend と include の違いが良くわかりませぬ。
というか extend ってどういうときに使うの?
>>178
そのまんま Perl でも動くね。
>>169
http://www.ruby-lang.org/ja/ml.html
http://www.modruby.net/#label:13

>>173
-cookie -no-cookie はクッキーを有効にするかどうかのトグルオプションじゃないっけ?
~/.w3m/config にあるクッキー関連の設定が適切かどうか確かめれ。
そこの設定は -o opt=value で起動時に指定できる。

w3m の動作についてはこっちで聞いたほうがよいかも。
w3m
http://pc.2ch.net/test/read.cgi/unix/1012484783/

>>181
one-liner は無理に Ruby らしくしないで perlish でもいいかなと。
18338:02/09/15 07:48
>>182
perlishって正規の英語でしゅか
Rubyに対してはrubyish?rubish:rubysh?

18438:02/09/15 07:51
>>183
あ、署名間違え
38 -> デフォルトの名無しさん
>>183
俗語かな。-ish で -っぽい

全言語のページからperlishを検索しました。 約6,550件中1 - 50件目 ・検索にかかった時間0.09秒
全言語のページからrubyishを検索しました。 約199件中1 - 39件目 ・検索にかかった時間0.09秒
18638:02/09/15 17:47
>>185
おぉ、ありがとござました
これで2つ英語の単語力が増えたぞ
しかも皆知らんもな
187デフォルトの名無しさん:02/09/16 01:32
Win32APIの構造体はRubyからどのように利用されてますか?
class使うわけにも行かないし。
C言語でモジュール作らないと使えないんじゃない?
>>187
つーか、pack/unpackで詰め込むのが簡単っぽいな。
正しいかどうかのチェックができないのが致命的だけど。
191187:02/09/16 04:09
そうですね、もしかするとCでインターフェースとる必要がありそうですね。
func=Win32API.new()でやると引数のタイプで問題がでるようです。
int,long,lpstr,void以外だとだめみたいですね。
StructクラスかArrayクラスとして構造体が利用できるのかと思ったのですが
現状まだむつかしいようですね。

>190
pack/unpackってなんですか?
>>191
検索しろ
193187:02/09/16 05:28
ああ、わかりました。要するにCのpack関数を作って構造体のメンバーをpack/unpack
してバイナリーでRubyとやり取りせよということですか。
オブジェクトのシリアライズのように。
・・・。難しいテクニックですねぇ。
Win32APIの影に隠れがちだけどRuby/DLには構造体のためのクラスが付いてるようだけど?
195デフォルトの名無しさん:02/09/16 14:36
質問です

--
Ruby FAQ

5.5 privateとprotectedの違いが分かりません
privateの意味は、メソッドを関数形式でだけ呼び出せるようにし、レシーバー形式では呼び出せないようにするという意味です。
--

この レシーバー形式っていったいなんですか。
>>195
普通に、インスタンスのメソッドを呼び出すときの
インスタンス + '.' + メソッド名
のような形式。例えば f.print みたいな。

オブジェクト(インスタンス)に対して、メソッドという命令を送りつけるというイメージから
受け取るほうをレシーバと言う。
>>193
Cで書く必要はない。
rubyist!あたりからWin3APIで検索してみ。
198デフォルトの名無しさん:02/09/17 20:52
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=net%2Fftp.rb

のputって、1.6.7には入ってないのでしょうか・・・
1.7のnet/ftp.rbを真似て付け足せば?
筆者自身自戒を込めて言うのだが、RubyユーザーはとかくRubyだけの世界に閉じこもりがちで、
そういう傾向が強まると「Rubyがすべて、Ruby以外は全部ゴミ」という「Ruby教信者」の性格を
帯びてくるようだ。コンピュータ関係の書籍といえば、Rubyの本しか読まず、ネットでもRuby
関係のニュースはするどくチェックを入れてるが、その他の情報にはまったく興味を示さない。
Ruby以外の情報から隔離されている状況なのだ。

 もちろん、Rubyは充分に魅力的だし、「Rubyが使えたらそれでいいんだ、おれは(わたしは)」と
あなたが考えていたとしても不思議はない。だけど、狂信的な世界に入り込み、まるでアメリカの
片田舎の新興宗教みたいに最後は集団自決、という道をたどらないためにも(……)、Ruby以外の
情報に身をさらすことも多少は必要ではないかと思うのだ。

コラム・Ruby関係「井の中の蛙」より
>>199
そのまま 1.7 の ftp.rb が動いたりしない?
動いても不思議はないと思うんだけど。
>>193
pack/unpack って、rubyのメソッドでしょ。
「Rubyライブラリ編」にNet::SMTPの説明ってないの?
今月の ASCII で話だけ出ていた WideStudio の ruby 版が出るといいなあ。
205デフォルトの名無しさん:02/09/19 05:59
Perlerが死滅すると嬉しい
206デフォルトの名無しさん:02/09/19 05:59
Perlユーザって臭いんだよな。
どんどんPerlスレを荒らそうぜ!
でも死滅しないので悲しい
208デフォルトの名無しさん:02/09/19 06:02
>>206
激しく同意!
209デフォルトの名無しさん:02/09/19 06:04
Perlスレッドの削除依頼を出し続ければPerlスレッドを消し去ることも可能だ
こんな朝っぱらからジサクジエンでつか。
211デフォルトの名無しさん:02/09/19 06:06
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>> Perl
良貨が悪貨を駆逐する
212デフォルトの名無しさん:02/09/19 06:06
とは限らないのが現実
Rubyは最高言語
Perlなんかもともと眼中にありません。糞野郎
最後の一言で悔しさを表してみました。
Perlユーザが憎くてならない。こいつらを抹殺する方法はないものだろうか。
憎しみからは何も生まれない
>>205-215
そんなにPerlを死滅させたいなら、
「Perlって死滅しちゃうの?」スレでも勝手に立てて、そこで喚いてろ。

誰か立ててくれ。糞パーラーを殲滅したい
219デフォルトの名無しさん:02/09/19 18:13
http://pc3.2ch.net/test/read.cgi/tech/1017736187/663-
大至急加勢求む!つぶせ!
おいたが過ぎるとどうなるかわかってるよね?
あまりひどいようなら削除依頼してください。
>>217
マターリ進行しましょうよ。
222デフォルトの名無しさん:02/09/20 08:52
何のためにRubyを勉強したかというと、Perlユーザを馬鹿に出来る権利が欲しかったから。
>>222

なんだか「僕は馬鹿です」って書いてあるみたいだね。
>>222 なんとネガティヴな...。
てか、もーちょい大人になろーぜ。
ちゃんとした Ruby についての話はできんのか。
これじゃ、Ruby ユーザーは誇りばかり高くて糞っていわれてもしゃーないわな。

マジレスしてしもた…、逝ってきます。
226デフォルトの名無しさん:02/09/20 13:26
実はPerlerの方が大人気ないという罠。
(脳内パーサ)
だいにんき→誤変換→バックトラック→おとなげ
>>227 ore mo da
>>226
PerlとRubyのユーザー年齢層の割合を調べれば、
Perlの方が低年層の割合が多そうだな。

こんな感じで、、、

厨房or工房がホームページを作る→CGIに挑戦したくなる
→CGIと言えばPerl(藁。というよりPerl以外でCGIを組める鯖少なすぎ!
→Perlの勉強をする→僕も私も今日からPerler!

でも、彼らが将来、その言語の担い手になっていくことを考えると、
Rubyは若者獲得に向けてもっと頑張る必要があると思うの俺だけ?
Rubyに将来なんて、ない
>>227,>>228
実はPerlerの方が大人気だという罠。

dato omota-!
粘着基地外荒らしは放置でお願いします。

粘着基地外は Ruby ユーザのふりして Perl を攻撃することで Ruby が反感をかう
ように仕向けています。また自作自演で話を大きくしようとしています。
相手をしないでください。
でもrubyユーザってruby以外の言語を軽蔑してrubyの世界に閉じこもっちゃってるよね。
色んな言語触って見たらもっと世界が広がるのに。
マジレススマソ。
>>233
ああ、やっぱり基地外一人のせいで、そんな印象をもたれてるのかいな。
実際のユーザはいろんな言語を触ったりし、状況に応じて言語を使い分けて
いる人が多い。逆に Ruby だけ、なんて人は少ないんじゃないか。
>>233
他言語を軽蔑なんかしていない。そう思わせようと仕向けている粘着がいるだけ。
236Ruby歴5時間:02/09/21 02:58
C++厨ですが改宗を決めました。

えーと、あるクラスのメソッドをoverrideするとき、例えば下記ですが、

class Foo < File
def each_line(sep)
aProc = Proc.new
super(sep, &aProc)
end
end

と、わざわざProc.newしないで super(sep) と書くだけで上にブロックまで
もが渡されるのはなんでですか?そういうものですか?

手元に「プログラミングRuby」と「オブジェクト指向スクリプト言語Ruby」が
あるんですが、説明ってどっかにありますかねえ…。

是非おしえてくださいませ。。

>>133
SmalltalkやLisp好きも多いよ!
もちろん、Perlは先輩だし。
関数型言語は...
238Ruby歴5時間の236:02/09/21 03:05
どうやらsage進行でしたね…スマンコ。
239Ruby歴7時間の236:02/09/21 04:55
もういっこ質問なんですが、attr_accessor はクラス変数には使えないんですか?
自分で代入演算子をかかなければならない??
程度の低い書き込みは余所でやれ。
241236:02/09/21 05:13
うーん。冷めた。
>>240 >>241
実は罵り合い専用スレだった罠
>>239

クラス名がFuga,変数名がhogeならFuga.hoge=(var)を書く。読む方のアクセサも適当に書く。

>>240

答える優しさがない奴はヨソのperlスレでも荒らしてれば?(藁

244240:02/09/21 05:51
布教の邪魔というわけか。
245デフォルトの名無しさん:02/09/21 09:04
>>236
なんでって
もともとブロックは暗黙に引数として渡されるのだから
そのほうが自然だと思うけど
>>236
そういうもの。
superだけでなく、あるメソッドから別のメソッドを呼び出すときにブロックは引き継がれる。
247240:02/09/21 12:53
馬鹿ばっか
低級者を甘やかすな
>>243
ということは、クラス変数には attr_accessor は使えないってことですか?
いや、別にほとんど必要ないからいいけど。
>>246 それはバグ。super もバグかも。
>>247
市ねよカス。
>>246
引き継ぎたくない場合はブロックを&引数で受けて、別のメソッドにはそれを
渡さなければいいんかね
>>251
引き継ぎたくない場合ってどんな場合?

>>250
荒らしは無視してマターリいきましょう。
253251:02/09/21 13:44
>引き継ぎたくない場合ってどんな場合?
いや、漏れも初心なので言語仕様が知りたかったのです。スマソ。

ブロックを引き継ぐのは、245もいってるけどそのほうが自然だし便利だから
バグじゃなくそういう仕様でしょ。tk のライブラリ関係で多用されていたような
気もする。
>>246
superはともかく普通のメソッド呼び出しでは引き継がれないんじゃないの?
低レベルな話で盛り上がってるな。このスレも終わりか。
>低レベルな話で盛り上がってるな。このスレも終わりか。
で、240よ…お前は何ができるんだ?(藁
258240:02/09/21 14:06
perl
ruby-list:33212
260デフォルトの名無しさん:02/09/21 14:10
261236:02/09/21 14:13
バグだったのか… 1.6.5を使っていたので、最新にしてみます。
どうもありがとう>>259,249 その他の方。
で、super はどうなのよ?
263246:02/09/21 14:15
>>259
すまん、そうだったのね。今は引き継がれるのは super のときだけかな。
あとブロックを渡されたメソッドの中で、引数なしで Proc.new すると、
そのブロックが使われるみたいね。
264236:02/09/21 14:19
>>262
1.6.7にしてみました。superには渡るように見えますね。練習で書いたんですが
以下で検証できてますか?

class Foo < File
def each_line(sep)
super(sep)
end
end

if __FILE__ == $0
a = Foo.new("/etc/passwd")
a.each_line(" ") do |l|
p l
end
end
>>264
良いんじゃないでしょうか。
しかし ruby を使い始めたばかりでここまで理解できるのはすごいなあ。
266デフォルトの名無しさん:02/09/21 15:40
君のレベルが低いだけ。

みんなでPerlスレッドを荒らそう!
>>266
>君のレベルが低いだけ。

>みんなでPerlスレッドを荒らそう!
このスレでは、スレ荒らし=レベル高いのか?
やっぱり rubyユーザ は最低だな。
Perlなんかほっといても衰退するのに。
弱い者いじめカコワルイ
perl消えろ!
一人だけ何を議論してるのかわからずに騒いでるヤシがいるスレはここですか?
>>248
一応使える。

class Hoge
class << self
attr_accessor :fuga
end
end

Hoge.fuga = "hoge"
p Hoge.fuga
272デフォルトの名無しさん:02/09/22 00:05
>>271
感動した!
273271:02/09/22 01:59
勘違いしていた。

クラス変数を使いたい場合は上のソースはおかしい。
上のソースはクラスのインスタンス変数の場合。

$ ruby -e '
class Hoge
class << self
attr_accessor :hoge
end
end

Hoge.hoge = "hoge"

p Hoge.hoge
Hoge.instance_eval{
p @hoge
p @@hoge
}'
"hoge"
"hoge"
-e:12: uninitialized class variable @@hoge in Object (NameError)
from -e:10:in `instance_eval'
from -e:10:in `instance_eval'
from -e:10

クラスメソッドのaliasは作成できますか?
275デフォルトの名無しさん:02/09/22 09:59
>>274
class Hoge
  def Hoge.hero
    "moemoe"
  end
  class <<self
    alias :moe :hero
  end
end

class <<Hoge
  alias :nae :hero
end

puts Hoge.hero
puts Hoge.moe
puts Hoge.nae

やっていることは同じだけど、一応二種類。
Hogeのメタクラスで宣言すればいいのさ。
276デフォルトの名無しさん:02/09/22 16:09
オブジェクトの深いコピーってこれ意外に何か方法ありますか?
newobj = Marshal.load(Marshal.dump(obj))
>>276

再帰的な dup なら instance_variables や instance_eval などで書ける。
しかし、すべての要求を満たす万能な方法は原理的に存在しない。例えば
class X; def initialize() @x = X end end; deepcopy(X.new)
が @x の値を dup すべきかどうかは目的次第。
結局、目的により自分でコピーメソッドを書くしかない。
278デフォルトの名無しさん:02/09/22 22:34
http://pc3.2ch.net/test/read.cgi/tech/1017736187/l50
くさい。くさいよこのスレ↑

279デフォルトの名無しさん:02/09/23 00:19
下のperlのプログラム

@string = <STDIN>;
print @sting;

Rubyだとどう書くのでしょうか?
>>279
string = STDIN.readlines
print string
>>275
ありがとう。
selfがどこで何になっているか、いまいち把握できてないな漏れ
トップレベルでは main という特殊なオブジェクトが self。
irb で self と打ってみれば分かる。

2行目の print は main の private method。
private method はレシーバを省略した形でしか記述できないので、
あたかも関数呼び出しのようになる。

クラス定義の文脈ではクラスが self。
>>275 氏ので二種類が同じ働きをするのを見れば分かると思う。

メソッド定義の文脈ではインスタンスが self。
283279:02/09/23 14:03
>>280
Thanks
>>282
> クラス定義の文脈ではクラスが self。
> >>275 氏ので二種類が同じ働きをするのを見れば分かると思う。

ちょっと違う。275 は特異クラス定義なので alias してるところの
self は特異クラス。また alias は文法要素であってメソッドではないため、
self との関連は間接的。もっとも 281 には些細な違いかも。
285デフォルトの名無しさん:02/09/24 23:07
現在、日本人で、ruby/GoogleAPIを使って
何かソフトを作っている人っていますか?
いたら、教えれ。

どこで聞いたらいいのやら。
Perlをののしり、Perlスレの進行を妨害している粘着基地外のRubyユーザがいます。騙されたり煽られたりした人がたくさん出ています。同調しないようお願いします。
>>285
> どこで聞いたらいいのやら。
Ruby/Google を知ってる人は日本人でも ruby-talk を読んでそうだし
ここよりは ruby-talk で聞くのがよさげ
288ほりけん:02/09/25 12:13
質問です。
%ls ~/map-data
tokyo/ tiba/ totigi/ fukushima/
%ls ~/map-data/tokyo/
20020920.map 20020921.map
20020922.map 20020923.map
20020924.map 20020925.map
のように階層化された気象データ(Tab区切りCSVファイル)があります。
例えば
tokyo/ と fukushima/ フォルダ内の
20020923.map だけを取り出し、
「43行目の8列〜10列」と
「44行目の8列〜10列」のデータを

地域     43行    44行
tokyo    12 11 88 12 10 90 
fukushima   15  9 70 13 10 78 

のようにTab区切りで出力したいです。
先輩に質問すると、awkとPerlでやればできるよ、と
言われましたが、rubyでどうにかならないもんでしょうか。

ぼくはawkとPerlもrubyも同程度に「低レベル」なのです。

289デフォルトの名無しさん:02/09/25 13:27
http://www.ruby-lang.org/ja/compar.html
Rubyではより自然に演算子メソッドが定義できる。例:
def +(x)
self.to_i + x
end

とありますが、
perlの.= なども
自分個人で使用するために
自分で定義して使えるのでしょうか?

290デフォルトの名無しさん:02/09/25 14:01
package Foo;
use overload '+' => \&addFoo;
sub addFor {
#処理内容
}
>>288
def pick(locate, time, rows, columns)
locate.each do |where|
fn = File.expand_path("~/map-data/#{where}/#{time}.map")
data = open(fn).readlines.map{|line| line.split("\t")}[*rows]
value = data.map{|r| r[columns].map{|c| "%4s" % c}.join}.join
print locate, "\t", value, "\n"
end
end

pick(["tokyo", "fukushima"], "20020923", 43..44, 8..10)

# 未テスト
>>288
> (Tab区切りCSVファイル)

ムジューン
293デフォルトの名無しさん:02/09/26 00:10
UNICODEのファイルを処理したいんですが、UnixのNKFコマンドでは
できません。rubyを使えばできると聞いたのですが、
どうやってやるのでしょうか。osiete。
>>293
何したいかによると思うが、ソースにutf-8を埋め込んだり正規表現で扱いたい
だけなら $KCODE='u' とするだけ。
コード変換したいなら
http://www.ruby-lang.org/en/raa-list.rhtml?name=Uconv
コード変換についてはUnixならRuby1.7に標準添付のIconvを使う手も。
296ほりけん:02/09/26 04:59
>>292  Tab区切りのテキストでした。
>>291  有難うございます。
print locate, "\t", value, "\n"
    ↓
printf("%10s %10s\n",where,value)
に変更すれば、うまく動作しました。
実は、この 20020920.map 20020921.map ……というのはとあるプログラムの
出力データなのですが、検算や精度比較のため他のアルゴリズムで計算させた
出力データも同時に一覧出力できればと考えています。
~/prog1nd/map-data/  ~/prog2nd/map-data/
以下にそれぞれ吐き出された[日付].map ファイルを

20020923:
地域           43行     44行
--------------------------------------------------------------------------------------------------------
tokyo(prog1nd)    12 11 88 12 10 90 
tokyo(prog2nd)    12 11 88 12 10 90 
fukushima(prog1nd)   15  9 70 13 10 78 
fukushima(prog2nd)   15  9 70 13 10 78 
297ほりけん:02/09/26 04:59
のように見やすく、同じファイルに出力したいです。

def pick(version, locate, time, rows, columns)
  version.each do |vnum|
    locate.each do |where|
      fn = File.expand_path("./#{vnum}/#{where}/#{time}.map")
      data = open(fn).readlines.map{|line| line.split("\t")}[*rows]
      value = data.map{|r| r[columns].map{|c| "%4s" % c}.join}.join
      printf("%10s   %10s\n",where,value)
    end
  end
end


  pick(["prog1nd", "prog2nd"], ["tokyo", "fukushima"], "20020923", 43..44, 8..10)

のみたいにするとすれば、printf("%10s\(%s\)\t\t\t%10s\n", where, vnum, value)  でつまずきます。
どなたか何かよいアドバイスはないでしょうか。
>>297
data = の末尾の [*rows] は [rows] じゃないとマズそう
出力を見ないとデータが手元にないからデバグが面倒
出力できるなら、printf() の代わりに p sprintf() にしたものキボン
>>293
unicode対応のnkf出てるよ。
300デフォルトの名無しさん:02/09/26 21:30
もう少し判りやすいデータで示します。
def pick(version, locate, time, rows, columns)
version.each do |vnum|
locate.each do |where|
fn = File.expand_path("./#{vnum}/#{where}/#{time}.map")
data = open(fn).readlines.map{|line| line.split("\s")}[*rows]
value = data.map{|r| r[columns].map{|c| "%4s" % c}.join}.join
printf("%10s\(%s\)\t\t\t%10s\n", where, vnum, value)
#p sprintf("%10s\(%s\)\t\t\t%10s\n", where, vnum, value)
end
end
end


pick(["prog1nd", "prog2nd"], ["tokyo", "fukushima"], "20020926", 42..43, 2..3)

tokyo(prog1nd) 1274327 1304430 1334534
fukushima(prog1nd) 1288107 1318300 1348493
tokyo(prog2nd) 1274327 1304430 1334533
fukushima(prog2nd) 1288107 1318300 1348493
です。


301デフォルトの名無しさん:02/09/26 21:33
見えづらいですが、データーが
Red[53118]% tail prog1nd/tokyo/20020926.map prog1nd/fukushima/20020926.map
==> prog1nd/tokyo/20020926.map <==
36   388   106   3606
37   399   109   3709
38   410   112   3812
39   421   115   3915
40   432   118   4018
41   443   121   4121
42   454   124   4224
43   465   127   4327
44   476   130   4430
45   487   133   4534

==> prog1nd/fukushima/20020926.map <==
36   596   107   6756
37   613   110   6949
38   630   113   7142
39   647   116   7335
40   664   119   7528
41   681   122   7721
だとして、
p sprintf の出力は
------------------------------------
" tokyo(prog1nd)\t\t\t 1274327 1304430 1334534\n"
" fukushima(prog1nd)\t\t\t 1288107 1318300 1348493\n"
" tokyo(prog2nd)\t\t\t 1274327 1304430 1334533\n"
" fukushima(prog2nd)\t\t\t 1288107 1318300 1348493\n"
------------------------------------
となります。
302ほりけん:02/09/26 21:37
あ、頂いたプログラムは
pick(["prog1nd", "prog2nd"], ["tokyo", "fukushima"], "20020926", 42..43, 2..3)
のように、 42..43, 2..3) 変更しました。
         ^^^^^^
printfだと、レコード値が二つひっついて出力されます。
-------------------------------------------------------
tokyo(prog1nd) 1274327 1304430 1334534
fukushima(prog1nd) 1288107 1318300 1348493
tokyo(prog2nd) 1274327 1304430 1334533
fukushima(prog2nd) 1288107 1318300 1348493


303ほりけん:02/09/26 21:39
データーが途切れてました。すみません。何度も。
Red[53118]% tail prog1nd/tokyo/20020926.map prog1nd/fukushima/20020926.map
==> prog1nd/tokyo/20020926.map <==
36   388   106   3606
37   399   109   3709
38   410   112   3812
39   421   115   3915
40   432   118   4018
41   443   121   4121
42   454   124   4224
43   465   127   4327
44   476   130   4430
45   487   133   4534

==> prog1nd/fukushima/20020926.map <==
36   596   107   6756
37   613   110   6949
38   630   113   7142
39   647   116   7335
40   664   119   7528
41   681   122   7721
42   698   125   7914
43   715   128   8107
44   732   131   8300
45   749   134   8493
>>302
"%4s"%c したのを join してるからね その辺適当に変えるしか
"%8s"%c にするとか join(" ") にするとかあるいはいっそ↓こんなんとか
マニュアルみながらいろいろやってみるべし
data = open(fn).readlines.map{|line| line.split("\s")}[rows]
value = data.flatten.join("\t")
305ほりけん:02/09/26 22:48
>>304
どうもありがとうございました。頑張ってみます。
306サゲマクリ:02/09/27 02:14
xoopsのruby版みたいなのはないっすかね?
esehttpdで動かしてみたいんですが。
307デフォルトの名無しさん:02/09/27 23:06
WIN32OLEについて誰か教えてください。

IEが別のページに飛ばないようにしたいのですが、DWebBrowserEventの
BeforeUpdateでうまくキャンセルできません。
参照渡し引数のCancelをtrueにして返すにはどうするのでしょうか?
どうやらRubyのfalseを値渡しされていて、変更できていない気がします。

代案としてHTMLFormElementEventsのonsubmitを使うこと考えたのですが、
戻り値にVariant_Boolを返す方法が分かりません。
試しにRubyのtrue,falseを返してもみたものの、やはり駄目でした。

環境はWindowsXPにIE6.0です。
どなたか分かる方がいらっしゃいましたらご教授ください。
>>307
作者の掲示板で聞いた方が早いかも
ttp://hpmboard1.nifty.com/cgi-bin/bbs_by_date.cgi?user_id=CQN02273
>>307
>>308が書いてるページの2月あたりに、その件についてのやり取りがあるよ。
どうもハッシュで返すみたいだ。
310ruby/GoogleAPI:02/09/28 18:28
現在、日本人で、AmazonAPIをrubyから使って
何かソフトを作っている人っていますか?
いたら、教えれ。

どこで聞いたらいいのやら。
311perl厨房:02/09/28 19:13
発売ほやほやの「らくだ本3版」より。
sub color_font {
my $color = shift;
return "<FONT COLOR='$color'>@_</FONT>";
}
と定義して、
sub red { color_font("red", @_) }
sub green { color_font("green", @_) }
sub blue { color_font("blue", @_) }
sub purple { color_font("purple", @_) }
と呼び出すのは面倒なので、

@colors = qw(red blue green yellow orange purple violet);
for my $name (@colors) {
no strict 'refs';
*$name = sub { "<FONT COLOR='$name'>@_</FONT>" };
}
とする方法がらくだ本3版にありましたが、
rubyだと、関数を生成してながら実行するコードってどのようなサンプルが
ありますか?なんかいい例ないかな。探してます。
>>311
Rubyでかくと、

def color_font(color,str)
"<FONT COLOR='#{color}'>#{str}</FONT>"
end
def red(str); color_font("red", str) end
def green(str); color_font("green", str) end
def blue(str); color_font("blue", str) end
def purple(str); color_font("purple", str) end



colors = %w(red blue green yellow orange purple violet)
colors.each do |name|
eval(<<-END)
def #{name}(str)
"<FONT COLOR='#{name}'>\#{str}</FONT>"
end
END
end

と書くことかな?
この方法は、cgi.rbで俺は見つけた。
313デフォルトの名無しさん:02/09/28 23:36
cgiというより一般の話なのでこっちでききます。
% ruby 【ここから標準入力に入る。】
require "cgi"
  cgi = CGI.new("html3")  # add HTML generation methods
  cgi.out {
    CGI.pretty (
    cgi.form {
      cgi.hidden{} +
      cgi.text_field{} +
      cgi.submit{}
    }
    )
  }
【Ctrl-D】

としてCGIの雛型を作ってから、エディターを立ち上げることが多いのですが、
最初の4行っていつも固定なので、もっと短くする方法ってどのような方法が
適していますか?初心者なので、クラスを作るべきか、あるいは
メソッドを作るべきかの判断が出来ませんでしたので、
質問しました。
クラスか?それともメソッドか?
短く書ける方法が知りたいっす。
>>312
こうすると eval を使わなくて済むので $SAFE == 3 でも使えたり
cgiで使うならxssを考慮して x.tainted? の検査もした方がいいかも
でも動的定義ってrdocとかと相性悪いしあんま好きくない

class Object
colors = %w(red blue green yellow orange purple violet)
colors.each do |name|
define_method(name){|x| %Q(<FONT COLOR="#{name}">#{x}</FONT>)}
private name
end
end
>>313
そういうファイルを吐くエイリアスとかシェルスクリプトを作っとくとか、
その状態でスタートするエディタのマクロを定義しとくのはどう?
エディタマクロならカーソルの位置まで指定できるし。
どれだけ頻繁にやるかの問題かも。
ライブラリ化するのは管理するものが増えて面倒な気がちょびっとする。
>>315
つーかRuby内で解決できないのかyo!
>>311
Procを使うのはダメなの?
>>316
別にrubyだけで解決しなくてもいいだろ。
こういうの用意して、cgi.rb の代わりに require してもいいけど、
cgi なだけにインストール先とか悩むこともあるだろってこと。

require "cgi"
require "delegate"

def cgi(lv = "html3")
obj = SimpleDelegator.new(CGI.new(lv))
class <<obj
alias __out out
def out(*a) __out(*a){CGI.pretty(html{yield})} end
end
obj
end
>>317
引数を () でなくて call() か [] で渡す必要があるのはともかくとして
スコープを越えるには定数かグローバル変数にしないといけないとか
320デフォルトの名無しさん:02/09/29 09:24
>>318
有難うございました。現状では、エディタのマクロよりも
zsh% </var/www/html/ruby/my-skel-form.rb           
require "cgi"
require "delegate"

def cgi(lv = "html3")
 obj = SimpleDelegator.new(CGI.new(lv))
 class <<obj
  alias __out out
  def out(*a) __out(*a){CGI.pretty(html{head{cgi.title{'myform'}}+body{form('GET'){yield}}})} end
 end
 obj
end
として、
ruby -r/var/www/html/ruby/my-skel-form.rb -e 'puts cgi.out(){ cgi.text_field('q'){} + cgi.submit('ok'){} }'
みたいにするのが一番いいと感じてます。
この方法だと、もう少し工夫してちょっとしたjavascriptなど埋め込んでも支障なし、
でかなり使えそうです。
だけど、この場合、特に outって名前をわざわざ使うメリットって何かあるのでしょうか?
def myout(*a) __out( 〜 と大差ないような……
321320:02/09/29 10:13
require "cgi"
require "delegate"

def cgi(lv = "html3")
 obj = SimpleDelegator.new(CGI.new(lv))
 class <<obj
  alias __out out
  def out(*a) __out(*a){
   CGI.pretty(
   html{
    head{
     cgi.title{'myform'} + cgi.script('language' =>'JavaScript'){
      'document.write();'  # ココにJavascriptを埋め込むためにyield を使いたい。
      } } +
    body{ form('GET'){yield}
    } } ) }
  end
 end
 obj
end
上の定義で、cgi.script のブロック 内 でもyield で定義したいのですが、
form(){yield} で既に使われているために、他の解決法が思いつきません。
これでは全く教えて君ですが……
>>321
それは本当に楽なのかと小一時間
例を一応示しとくけどマクロが欲しいならm4でも使えといいたい

% cat foo.rb
require "cgi"
require "delegate"
@@mycgi = nil
def cgi(lv = "html3")
return @@mycgi if @@mycgi
obj = SimpleDelegator.new(CGI.new(lv))
class <<obj
attr_accessor :js
def main(*a)
content = html{
head{ title{'myform'} + script('language' =>'JavaScript'){js} } +\
body{ form('GET'){yield} }
}
out(*a){ CGI.pretty(content) }
end
end
@@mycgi = obj
end


% ruby -r foo -e 'cgi.js="document.write();" ; cgi.main{cgi.p{"hello"}}'
323デフォルトの名無しさん:02/09/30 09:27
>>321 遅くてよければ、こんな手もある

require 'amrita/template'
include Amrita
t = TemplateText.new <<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>myform</TITLE>
<SCRIPT language="JavaScript" id=js></SCRIPT>
</HEAD>
<BODY>
<FORM id=form METHOD="GET" ENCTYPE="application/x-www-form-urlencoded"></FORM>
</BODY>
</HTML>
END

t.expand(STDOUT, { :js=>"document.write();", :form=>noescape { "<p>hello</p>"} })

324320:02/09/30 23:44
どうもです。これらで問題は解決できそうです。
m4やamritaもしばらく使ってみます。
PerlのInline::Rubyモジュールとかどうですかね?
PerlでRubyが使えるなんて!
これでPerlとRubyのいがみ合いも解消ってことで。
http://search.cpan.org/author/NEILW/Inline-Ruby-0.02/lib/Inline/Ruby.pod
>>325
お、これいいね。
irbをirb-0.9-02.09.03にしたら
% cat ~/.irbrc
require "irb-history"
require "irb/completion"
% irb
/usr/lib/ruby/1.6/irb/completion.rb:187: undefined method `completion_append_character=' for Readline:Module (NameError)
from /home/hishiura/.irbrc:2:in `require'
from /home/hishiura/.irbrc:2
from /usr/lib/ruby/1.6/irb/init.rb:198:in `load'
from /usr/lib/ruby/1.6/irb/init.rb:198:in `run_config'
from /usr/lib/ruby/1.6/irb/init.rb:196:in `each'
from /usr/lib/ruby/1.6/irb/init.rb:196:in `run_config'
from /usr/lib/ruby/1.6/irb/init.rb:195:in `catch'
from /usr/lib/ruby/1.6/irb/init.rb:195:in `run_config'
from /usr/lib/ruby/1.6/irb/init.rb:21:in `initialize'
from /usr/lib/ruby/1.6/irb.rb:55:in `start'
from /usr/bin/irb:13
となってirbが起動せんぞー。

補完って仕様変わったの?


rand/srandを使って独立した乱数オブジェクトって出来ないのかな?

old = srand(@seed)
r = rand
@seed = srand(old)

こんな風に種(@seed)をローカルに持ってみたけど、
種はまったく変化していかない事に気づいた。
  リテラル病

 literal  literal  literal  literal
>>328
1.6.6のソース見たけど、srandが返す古いseedは前回srandした時のseedみたいね。
普通にrandが呼び出された場合は一切無視して、こんな感じでどうよ?
class Random
  attr_reader :seed, :times
  
  def initialize(seed = 0)
    @seed = seed
    @times = 0
  end
  
  def next_num(max = 0)
    srand(@seed)
    @times.times do
      rand()
    end
    @times += 1
    rand(max)
  end
end
nest_numが何度も呼び出された場合、
かなりいらない処理が多くなってしまうので全然実用的ではないけどね。
繰り返し呼び出される場合は工夫するように変えてみればいいと思う。
あと、マルチスレッドなんてしたら、それこそダメダメだな…。
>>328 Cレベルで random() を呼ぶたびに前回の状態を復帰しないと無理っぽい
状態をとるには BSD 4.3 に由来する setstate() があるところだと出来るかも?
自力でやるには libc のソース見ながら Ruby で non-linear additive feedback
random number generator を実現してみるとか
332328:02/10/01 23:58
>>330
その方法も考えたんだけど、どんどん付加が、
大きくなっていくから止めとこうと思った(w
素直に独自実装したほうがよさそうですね。
>>332
どうせ作るなら、1.7系から採用されるMersenne Twisterを使ってみては?
http://www.math.keio.ac.jp/~matumoto/mt.html
334328:02/10/02 18:57
>>333
作るって言っても数行のRubyのコードを
書くだけなんで…そんなに気合い入ってません。
もし1.7で乱数オブジェクト化出来るように
なるんならそっち使お。
rubyの配列って何次元まで作れるんですか?
>>335 メモリが許せば好きなだけ。
ただし単に配列の中に配列があるだけなので次元といっていいのかわかんないけど。
いわゆる多次元数値配列を扱うにはRAAにあるNArrayが良いかも。
337327:02/10/02 21:31
irbの補完が恋酢ぃーYO!!だって今つかえないんだもん。
みなさんふつーにirb-0.9-02.09.03にアプ
できますたか?
>>327 -list だか -dev だかに投げた方がよさげ
仮にここでパッチが出ても本家に伝わるまでに時間かかりそうだし
339デフォルトの名無しさん:02/10/03 10:57

http://rrr.jin.gr.jp/doc/1.7/

この JavaDoc っぽいツールで作ったと思われるページは、
なんていうツールを使えばよろしいのですか。
べき乗演算子の存在を知らずにMath.expを常用していたうっかり者の数→1
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕
ruby基地外の荒らしに遭って「Perlについての質問箱」が潰された。
rubyユーザって最低だな。
>>341 めんどくさい上に整数の場合いらん誤差までつくという…悲劇(w
>>343
よっぽど悔しかったんだな。ははは
ははは
モジュールMで参照可能な定数Cがどのモジュールで定義されたか知る方法ってあります?
348347:02/10/04 04:50
>>347 自己レス なんとなく分かりました
name.split(/::/)とancestorsを歩きながらconst_defined?で調べていけば良いみたい
ム板の「Perlについての質問箱」がruby基地外によって潰されました。
心ある人は、rubyスレにお礼参りしてください。
Rubyのホームのトップページは情報を整理して解りやすく
1ページに納めてユーザーにスクロールを強制させないように
しようという配慮がまったく感じられない。
とかいまさら言ってみるテスト
そう思うなら >>350 がデザインを提案するとか志願して代わりにやってやるとか。
管理者に出来るもんならそうしてあるだろうから、出来ないからやってないと思われ。
あるクラスから現時点で、どれだけインスタンスが生成されているかを
知る方法ってありますか?
>>352
コンストラクタが呼ばれるたびに、クラス変数のカウンタをインクリメントすればいいんでは。
>>352 353のやりかたがすなお
require "thread"
class Foo; @@c = 0; def initialize(); Thread.exclusive{@@c+=1}; end; end
ちからわざだとこう
def n(klass) c=0; ObjectSpace.each_object{|i| i.class==klass && c+=1}; c; end
355352:02/10/04 19:01
互いに関連するオブジェクトを大量に生成する必要があるのですが、
例えば、
sony_humanResource = HumanResource.new("sony")
sony_finance = Finance.new("sony")
sony_activeField = ActiveField.new("sony")
sony_convention = Convention.new("sony")
sony_participant = Participant.new("sony")
sony_newCommer = NewCommer.new("sony")
sony_oldCommer = OldCommer.new("sony")
sony_purpose = Purpose.new("sony")
のように連続的にオブジクトを作って、出来上がったsony_XXXXってオブジェクトを
グループ化させたいんですが、どのような方法がありますか。
------------------------------------------------------------------------
厨な方法:
store(HumanResource, sony_humanResource)
store(Finance, sony_finance)
store(ActiveField, sony_activeField)
store(Convention, sony_convention)
store(Participant, sony_participant)
store(NewCommer, sony_newCommer)
store(OldCommer, sony_oldCommer)
store(Purpose, sony_purpose)
>>355 その「グループ」に対するインターフェイスによりけりかと
Struct使えば?

Group = Struct.new(:humanResource, :finance, :activeField, ...以下略)
def group(name)
group = Group.new
group.humanResource = HumanResource.new(name)
group.finance = Finance.new(name)
group.activeField = ActiveField.new(name)
<略>
group
end

sony = group("sony")
358352:02/10/05 00:30
>>353
>>354
有難うございます。
>>357
便利そうですね。Struct。これをしばらく使ってみます。
ついででなんですが、このStructの実装例か何かご存知ですか?
RAAとかでもいいんです。

>>358 実装例? 標準ライブラリにおける利用例なら以下が出力する
require "rbconfig"
require "find"
Find.find(Config::CONFIG["rubylibdir"]){|fn|
next if /\.rb\z/ !~ fn
g = open(fn).read.grep(/\bStruct\b/)
print g.join.gsub(/^/,fn+":") unless g.empty?
}
360358:02/10/05 02:04
>>359
>実装例? 標準ライブラリにおける利用例なら以下が出力する
有難うございました。標準ライブラリにおける利用例で結構なんです。

 # しかし、他の人はこうして勉強してたのか……

どうもでした。
361デフォルトの名無しさん:02/10/05 03:04
MS-Windows版のrubyをW2kにインストールして使っているんだけどコマンドプロンプトで
c:> hoge.rb foo bar
とした場合、ARGVでコマンドの引数が取れない。
c:> ruby hoge.rb foo bar
ならOK…ってこんなもん?せっかくrubyって省略できるんだったら引数も取ってほしいんだけど・・・。
362350:02/10/05 06:50
>>351
管理者さんごめん!
perlには
http://www.bekkoame.ne.jp/~bero/docj/module_/15/WWW_Search.html

WWW::Search という便利なものがありますが、
rubyには同様の仕事をするものって何がありますか。
>>361
cygwin版ではこうなる。

$ cat foo.rb
#!/usr/local/bin/ruby

p ARGV
$ ./foo.rb foo bar
["foo", "bar"]

>>363
Ruby/Googleしか知らないが、WWW::Searchに比べると大げさかも。
WWW::Searchのソースを参考にして自作した方が良いと思う。

http://www.caliban.org/ruby/ruby-google.shtml
cgi-escapeってワンライナーで書けますか?

$ hogesearch=http://hoge/search?query=
$ ruby -rkconv -e 'system("start","#{ENV{'hogesearch'}}+CGI::escape#{ARGV.shift}")' 日本語

見たいなことがしたいんですけど。

なお、startは
http://www.ganaware.org/S/sow/
です(GANAWare)。です

>>363
素直にPer使った方がいいと思う。
>>366 とりあえず p でテストするのがいいかと
$ ruby -ruri -e'p("start",ENV["hogeserch"].to_s+"+"+URI::escape(ARGV[0]))' 日本語
>>357
><略>
>group
>end
>
>sony = group("sony")

このグループ構造体オブジェのsonyと
引数の"sony"との間の違いはどうやって区別されるのでしょう。
irb(main):001:0> sony.type
とした場合。
新しく出た正規表現のruby本はどうよ。
>>369
とりあえず、日本語勉強してから質問すれ
意味分からん

irb(main):001:0> sony.type
の結果が
#<Class:0x1019dc38>
となるが、気にするな、区別する必要なんてねーよ
372デフォルトの名無しさん:02/10/06 02:47
金光って奴の質問がうざい。
>>372
金光たん怒られちゃったね...
>>371 とりあえず >>369 のききたいことが何か分からんのには同意するけど、
> irb(main):001:0> sony.type
> の結果が
> #<Class:0x1019dc38>
これマジ?無名クラスの name は最初に見つかった名前になるんじゃなかったっけ?
>>357 を真似て得たのは↓なんだけど。
% irb
irb(main):001:0> X = Struct.new(:a,:b,:c)
X
irb(main):002:0> def x(a,b,c)
irb(main):003:1> x = X.new
irb(main):004:1> x.a = a
irb(main):005:1> x.b = b
irb(main):006:1> x.c = c
irb(main):007:1> x
irb(main):008:1> end
nil
irb(main):009:0> x = x(4,5,6)
#<X a=4, b=5, c=6>
irb(main):010:0> x.type
X
irb(main):011:0> RUBY_VERSION
"1.6.7"

もしかして名前が全く見つからない場合?
irb(main):012:0> Struct.new(:x,:y).new
#<#<Class 0lx80b8d74> x=nil, y=nil>
Ruby で閉じてるのは >>359 の通りだけど、普通はこうするんじゃないかなあ
% cd /usr/local/lib/ruby/1.6
% grep -r '\bStruct\b' .
zsh ならこれ↓でもよし
% grep '\bStruct\b' **/*.rb
考えてみればRubyのglobも **/*.rb を理解するから、 >>359 もこうできるな
require "rbconfig"
Dir[Config::CONFIG["rubylibdir"]+"/**/*.rb"].each{|fn|
g = open(fn).read.grep(/\bStruct\b/)
print g.join.gsub(/^/,fn+":") unless g.empty?
}
>>374 は普通(?)こう書くと思う
irb(main):001:0> X =Struct.new(:a,:b,:c)
X
irb(main):002:0> def x(a,b,c) X.new(a,b,c) end
nil
irb(main):003:0> x = x(4,5,6)
#<X a=4, b=5, c=6>
irb(main):004:0> x.class
X
def と new は同じ行にしなくても良いが。
そういや Object#type() がなくなるそうだが、#class() はレシーバ必須という罠
377デフォルトの名無しさん:02/10/06 09:26
perlスレはウザイが、潰すのも面倒くさい
RubyでCGIは板違いですよね。
すみません。帰ります。
each_with_index があるのに map_with_index が無いのは、
使用頻度が少ないし、そんなことしてたら全てのイテレータに
xxx_with_indexを用意する羽目になる。欲しかったら自分で書け。
って解釈はあってる?
また「Perlについての質問箱」がお宅の坊やに荒らされ始めました。
親として責任を取ってもらわないと、rubyスレの削除依頼を出します。
この板で今までRubyがどんな目にあって来たかを考えると、
Perlのスレが荒されるのは必然の結果だろう。
>>381
いい気味だ、としか思わないがな。
>>383
Ruby user is cold.
Ruby is nanbar one!
>>385
....nanber? Was the number meant?
Ruby is one of the best scripting languages,
but Ruby users have the worst moral.
Ruby users have the worst English competence, too.
>>380 あってるかどうかは分からんけど、他のイテレータで each の替わりに
each_with_index とか myeach とか呼ぶ方法があるといいのにねえ。
map(:each_with_index){|e,i| ... } とかさ。
>>384-388 welcome to engrish world!
[ruby-list:36109]
書籍への購買意欲なくなりました。
彼に頼まれた著者はどう思っているのか?
>>389
require 'enumerator'
str = "xyz"
enum = str.enum_using(:each_byte)
a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]

ttp://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/rough/ext/enumerator/
>>379 別に帰んなくてもいいんじゃーねの。
CGIもRubyもよく知らねーならCGIの問題かRubyの問題か切り分けられないのは
当然なんだし、的確に板を使い分けることは無理と思われ。
違ったら誘導されんじゃねーか。
i hAve a rubYYYY.

新しい呼び方を必要としています。

継承したインスタンス = レプリカント

これしか思い付きません。他に何がありますか?
>>395 「継承したインスタンス」って何? コードで例をみせれ
>>392
うわ、それいいねえ。
いいけどわざわざそんなことしなくても、特異メソッドでeachを
上書きすればいいだけのような気もする(w
strを操作したいのに、enum.mapってやんなきゃならんのもなんかわかりづらいし。

str = "xyz"
class <<str
 def each(&f)
  each_byte &f
 end # def
end # class

p str.map {|b| '%02x' % b } #=> ["78", "79", "7a"]
>>397 毎回そういうのを書くのが糞めんどいってことじゃないの?
それにオブジェクト単位とはいえ each を変えたらマズいこともよくある。
>>398
うん、確かにeachみたいに重要なメソッドを書き換えるのはまずいというか、
普通やらないしやりたくもない。やっぱ、
str.map(:each_byte) {}
みたいに呼べたらいいな。これならお手軽だし。
そういうわけでこんなのはどうだ、って既にどっかに出てるような気もするが。

module Each
 def map(e = :each, &block)
  r = []
  send(e) { |elem|
   r << block.call(elem)
  }
  r
 end # def
end

str = "xyz"
str.extend(Each)
p str.map(:each_byte) {|b| '%02x' % b } #=> ["78", "79", "7a"]
ちょい改良。これで>>389のいうこともできるかな。

module Each
 def map(e = :each, &block)
  r = []
  send(e) { |*elem|
   r << block.call(*elem)
  }
  r
 end # def
end

str = "xyz"
str.extend(Each)
p str.map(:each_byte) {|b| '%02x' % b } #=> ["78", "79", "7a"]

arr = [1, 2, 3]
arr.extend(Each)
p arr.map(:each_with_index) {|elem, idx| elem * idx} #=> [0, 2, 6]
>>400 injectみたいに引数をとるメソッドはどうする?
>>379
WebProgにもちゃんとスレあるよ。
【Ruby】RubyでCGI
http://pc.2ch.net/test/read.cgi/php/988948655/
人は少ないけど、ここを見ている人はそっちも見ていると思う…。
CGIに特化したRubyの話ならWebProgの方がいいかも。
403デフォルトの名無しさん:02/10/07 01:21
>396
スーパーから継承したクラスのインスタンスをすべてレプリカントと呼びます。
イテレータはコードの短縮化によりマイクローンと呼びます。
そしてクラス変数、インスタンス変数などをエレメントと呼びます。レプリカント
内のエレメントです。
広義には、定数や定数等を含めますとスラング的にフィフスエレメントと呼びます。
ガベージコレクタは別名定義でターミネータと呼びます。したがってガベージコレクション
の動作名称はターミネイションです。オブジェクトは使用後ターミネーターにより
ヒープからターミネイションされます。カベージコレクションはOS側の視点であり
ターミネイションは言語上からの視点です。
そしてクラスという言葉はマトリクスと呼び直します。言語は抽象空間の思考活動を必要と
し、バーチャルです。オブジェクト志向言語ではすべてがクラス=マトリクスによって
記述されるので、マトリクスはあらゆる場所にあるのです。
そしてrubyを使うユーザーはすべて隠語で「ネオ」と呼びます。
さらにさらにmatzはジェダイです。
ゆんゆん?
>>403 「スーパーから継承したクラス」って何?
「スーパーから継承したクラス」とそうでないものの例を1つずつ
実行可能なコードで見せれ
100% Pure Ruby な zip ツール、tar_gz ツールって、ありますか?
プログラムの中で使えるものがあれば欲しいです。(無ければ無いで、作ってみたい)
基底から継承しないクラスはあると思いますか?
上位クラスのメソッドを機能拡張のため設計を無視しコードレベルで勝手に
オーバーライドしてよいのですか?goto文を知っていますか?
perlerですか?
408デフォルトの名無しさん:02/10/07 13:49
ルビチュウサンタチ ネタニマジレスカコイイ
>>406
zlib のラッパライブラリの ruby/zlib と、
ruby/zlib を使った zip ライブラリの ruby-zip はあるよ。
ruby-zip は pure ruby。
tar は知らない。
( ´,_ゝ`) プッ
   ∧  @@@
  /●ヽ/
 (___) 
412マサオ:02/10/07 19:24
こんにちはまさおです。
私、今度rubyのメルマガを発行しちっゃたの。さぁみんなでrubyを使おう!
でも、8部しか読まれれていないの。マサオチャンさみしい・・・。
そんな僕に励ましのメール書いてくれるって言うファンキーな君のリクエスト
まってるよ!。

http://www.mag2.com/m/0000098213.htm

みんなのマサオより。
↑まさおさん某氏の日記で怒られてたね・・・。
> 基底から継承しないクラスはあると思いますか?
まずObjectがある.それからRubyにはClassとクラスメソッドがあるため
継承は >>407 が思っているよりずっと複雑かもしれない.例えば,
 オブジェクトoの特異クラスの特異クラスのスーパークラスは,
 オブジェクトoの特異クラスのスーパークラスの特異クラスに必ずしも一致しない.
例えば
 オブジェクトoの特異クラスsの特異クラスの特異クラスのスーパークラスは,
 オブジェクトoの特異クラスsの特異クラスのスーパークラスの特異クラスではない.
これは
 クラスkの特異クラスの特異クラスのスーパークラスが,
 クラスkの特異クラスのスーパークラスの特異クラスに一致しないことによるようだ.
ただし
 クラスkの特異クラスのスーパークラスは
 クラスkのスーパークラスの特異クラスに一致する.
class Object; def s;class<<self;self;end; end; end; # 特異クラス
o = Object.new ; p o.s.s.superclass == o.s.superclass.s #=> true
s = Object.new.s ; p s.s.s.superclass == s.s.superclass.s #=> false
k = Class.new ; p k.s.s.superclass == k.s.superclass.s #=> false
p k.s.superclass == k.superclass.s #=> true

> 上位クラスのメソッドを機能拡張のため設計を無視しコードレベルで勝手に
> オーバーライドしてよいのですか?
設計を無視するのは良くない.だが設計を無視せずに再定義するのは構わないだろう.
いずれにせよRubyに限らずほとんどの再定義は利用者の責任において勝手に行なわれる.
それがいやなら上位のクラスの提供者はフックと文書で再定義を禁止するべきだ.
>>414
1.7からそこらへん少し変わるみたいだね。
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=ruby+1.7+feature#2002-08-31%3A+ruby+interpreter
どういう事なのかさっぱりわからないけど…。
>>415
知っての通りクラスkのクラスメソッドとは,kの特異クラスのインスタンスメソッドだ.
k.superclass == j を満たすkのクラスメソッドとして,jのクラスメソッドが使える
すなわちjのクラスメソッドがkに継承されるということは,
 クラスkの特異クラスのスーパークラス k.s.superclass が
 クラスkのスーパークラスの特異クラス k.superclass.s つまり j.s と一致する
という規則に基づいている.しかし,特異クラスがクラスの一種であるにも関わらず,
kがあるクラスの特異クラスだと上の規則はもはや成り立たないというのが >>414 だ.
k.s.s.s.... を再現なく許すと k.s.s.superclass のインスタンス k.s.superclass を,
 (a) k.s.s.superclass を評価した時点で生成するのか,
 (b) k.s.superclass が初めて評価されたときに生成するのか
に依存しない形で,lazyな(b)を実現することの難しさがこの制限の理由のようだ.
417デフォルトの名無しさん:02/10/08 01:37
>>412
そのメルマガの意図が何だかわからん。
気にしちゃダメだ。なかったことにしよう。
419389:02/10/08 02:47
>>400 うーん、便利そうだけどいちいち extend するのがめんどいというのは不精杉?
メソッドチェーンの途中で使おうとすると、そこに extend をはさむ必要があって、
それなら >>392 が挙げた方法と手間はあんまり変わらない気がしました。
しかも Each だと文字数で負けてるから勝つにはモジュール名を E にするしか…
p "extend(Each).map(:each_byte)".size -
"enum_using(:each_byte).map".size #=> 2

( ´,_ゝ`) プッ
( ´,_ゝ`) プッ
$ cat pu
( ´,_ゝ`)プッ = ( ´,_ゝ`)プッ ; p ( ´,_ゝ`)プッ
$ ruby -Ke pu
nil
nil
$
>>419
400をファイルに書いておく。たとえば、each.rbとか。
んで、each.rbの中に、

class String; include Each; end

とか書いておく。使うときはrequireすればよい。
一応、400のは、パラメータを与えないときの挙動は既存のmapと
同じになるようになってるし(ただし速度は落ちるだろう)、問題ないと思う。
普通のmapを使いたかったら、
'abc'.map {|line| 〜}
でいいし、
'abc'.map(:each_byte) {|c| 〜}
としても使える。

ただ、これをやっちゃうとStringのmapメソッドをグローバルに変えることになるんで、
どのような場面でもmapの速度は低下してしまうだろう。

どうだろう、これでも面倒か。
424380:02/10/08 19:00
>>392>>400 も(・∀・)イイ!!
でも enumerator が標準で入ってないのは(・A・)イクナイ!!
#an Array of Hashes
@AoH = (
    {
       husband  => "barney",
       wife     => "betty",
       son      => "bamm bamm",
    },
    {
       husband => "george",
       wife    => "jane",
       son     => "elroy",
    },
    {
       husband => "homer",
       wife    => "marge",
       son     => "bart",
    },
  );
#----------------------------------------------
perlではハッシュが集って配列を作ることが出来ますが、rubyで同じ事を
表現する時に選択すべきデーター構造って何がありますか?
>>425
まんま、ハッシュの集まりを配列に入れればよいと思う。
AoH = [
    { 
       :husband  => "barney", 
       :wife     => "betty", 
       :son      => "bamm bamm", 
    }, 
    { 
       :husband => "george", 
       :wife    => "jane", 
       :son     => "elroy", 
    }, 
    { 
       :husband => "homer", 
       :wife    => "marge", 
       :son     => "bart", 
    }, 
]
427425:02/10/09 00:34
何か、判りにくいですが、
push @AoH, { husband => "fred", wife => "wilma", son => "junior" };
でどんどん作れるやつです。
$AoH[0]{husband} = "fred";
のように、husband,wife,sonが固定で、配列でアクセス可能。

今までに乗った車:
乗車順 ブランド 乗車年数 値段
1台目 xxxx xxxx xxxx
2台目 xxxx xxxx xxxx
3台目 xxxx xxxx xxxx
みたいな構造です。
>>424
おお、すみませんでした。427は無視してください。
429425:02/10/09 00:56
>>426
有難うございました。

table={}
AoH.collect{|r|r.to_s.scan(/(husband|wife|son)(.*)[^(husband|wife|son)]/){|role,name| table[role]=name}}
みたいにやって
husband =>値
wife =>値
son =>値
としたいのですが、何処がいけないのでしょうか?

>>429 何から何が作りたいのかを具体的に書くべし。
aoh = [{:a => "xa", :b => "xb", :c => "xc"},
{:a => "ya", :b => "yb", :c => "yc"},
{:a => "za", :b => "zb", :c => "zc"}]
から
table = {:a => ["xa", "ya", "za"],
:b => ["xb", "yb", "zb"],
:c => ["xc", "yc", "zc"]}
を作りたいということでよろしいか? ならば例えばこうだ
table = {} ; [:a,:b,:c].each{|role| table[role] = aoh.map{|elm| e[role]}}
431425:02/10/09 01:27
429は解決しました。
p AoH.each{|a|
p a.shift
p a.shift
p a.shift
}
ですね。
432425:02/10/09 01:29
>>430
有難うございました!!!
以後、もう少し身長にカキコします。
433マサオ:02/10/09 01:41
こんにちはマサオチャンです。
今日見たら66部もはっこうされていたよ。
うれしいよ。マサオチャン涙チョチョギレそう。
今日の夕飯の納豆丼も美味しくかんじちっゃた。納豆をかき混ぜる回転数も
2000回転/rpmって感じ★
それじゃあお休み。うふ。

-マサオメルマガ-
http://www.mag2.com/m/0000098213.htm

みんなのマサオより。
>414
すごいネタだなぁ。
singletonはsingletonであってsingleton以外の何者でもないよろしいか?
435デフォルトの名無しさん:02/10/09 01:59
436352、425:02/10/09 02:20
以前質問させていただいた者です。現在、以下のようなデータ構造(syntaxはperl)を >>357 のようにStructを使って、
格納しようと思っています。
ファイルにデータを格納してから、動的にオブジェクトを構築したいのですが、
ファイルのフォーマットはどのようにしたらいいでしょうか。卒論のアンケートの集計
をrubyでするという試みでして、そのために、事前にデータ構造を定義しておこういう心積もりです。
今後も必要に応じて、ハッシュをハッシュのハッシュに拡張したりすると思いますが、
何かよい発想はないでしょうか。それとも無茶な試みでしょうか?
%Org = (
    org1    => {
        public  => "A山の森を守る会",
        activeday   => [ "monday", "thursday", "friday" ],
        members  => [
            { name => "田中",    role => "会長", age  => 36, },
            { name => "渡辺",   role => "書記",    age  => 31, },
            { name => "新城", role => "議長",     age  =>  41, },
        ],
    },

    org2     => {
        public   => "ブナの森を愛する会",
  ・
  ・
  ・
org1〜org20ぐらいまで、続く。
>>436
うーん、どう拡張するつもりなのかわからんからなんともアドバイスのしようがないなあ。
XMLを使ってみるとか。おれ、あんまりXMLには詳しくないんだけど、こういうときに使えないかな。

あとそうだな、そういうふうに複雑な構造になってくると、生のHashやらArrayやらを使うより
クラスにしちゃったほうが見通しがよくないか。
>414
>いずれにせよRubyに限らずほとんどの再定義は利用者の責任において勝手に行なわれる
ということは再定義を日夜利用している方々はComplexやDateのような新たな
クラスorクラスライブラリを日々作成されているわけだ。
>>436 卒論のアンケートなら内部では学籍番号をキーとするのがいいと思う。
グループを中心に据えて考える意義は分からないけど、なんにせよ
グループオブジェクトはあとで生成した方がいいと思うよ。一次的には
キーがグループ名でその情報(ただし構成員は含まない)が値であるようなハッシュと
キーが学籍番号でその人の情報が値であるようなハッシュをそれぞれ作り
そこから必要なデータ構造に変換していくのがおすすめ。
入力はRubyコードにこだわらず適当に決めた方が打つのが楽なんじゃないかな。
手分けして入力する必要があるならファイルで与えず、CGIにするという手もある。
とにかくこういう話は規模に依存して解法を決めるべきだと思う。
しかしよほどデータが小さくない限り、入力と永続化は別ものと考えた方がいい。
文字列が主体のデータは、"文字列" のように引用符をわざわざ打つのが面倒だし、
リテラルで書ける範囲にデータ構造が制限されると内部で使いにくい。
>>438
意味がよく分からなかったが,再定義という言葉の勘違いによるのだろうか.
念のため確認すると,再定義というのは既存のメドッドを定義し直すことを指す術語だ.
例えば,次のコードは Object から継承された initialize を再定義している.
class Foo; def initialize() end end
これは利用者の責任において勝手に行なわれることの一例である.
ただし,__id__ と __send__ だけは利用者が再定義すると警告される.
>>434
一言でいえば「現実的にはクラスの特異クラスにクラスメソッドは必要ない」
という判断であろう.

ところで特異クラスを単に singleton と呼ぶのは混乱の元になるので注意されたい.
通常 singleton はデザインパターンの名称として使われる.特異クラスという名前が
良くないという指摘もあるが良い代案が見つかっていないようだ.メタクラスという
呼び名も使われいるが,通常はクラスのクラスを指す名称であるのが紛らわしい.
Rubyでは少なくとも表面的にはクラスのクラスは Class だからだ.
442352、425:02/10/09 11:21
少し詳しく説明します。卒論ですので作業は私一人で行います。アンケートはorg1〜org20に出し、回収したものを
humanResource 、 finance 、 activeField 、 newCommer 、 purpose 、activeDay 等のディレクトリにそれぞれ、excelブックを用意し、
質問をグルーピングしたものを格納します。ワークシート一枚にorg一つが対応するようなブックを作成するのですが、メインの集計は
Spreadsheet::ParseExcelでUnix上に取り寄せて行います。その際、フラットなテキストデータを一旦オブジェクトに格納して、
irbとpstoreを使おうと思い、その際のデータ構造を考えるところで躓いた、という意味です。もちろん
def org(name)
org = Org.new
org.humanResource = HumanResource.new(name)
    ・
org.purpose = Purpose.new(name)
end
のような作業はやや後半(グラフ作成やまとめの段階)になって必要となる作業でして、まずは例えば、
activeFieldディレクトリ:場所関連回答.xls:org3シート:
問22:貴団体は特定の活動場所をお持ちですか?
問32:都市近郊で活動される場合の山地、里地をお答えください。
     場所  活動時期  活動内容 ←key
場所1  value  value
場所2  value 
場所3
のような回答集めたexcelブックの問32の項目をハッシュの配列として表現すべきなのか、という話です。
Spreadsheet::ParseExcelにどのようなフォーマットで出力させれば、ruby側でobjを構築しやすいかというのが
436でお聞きしたかったことです。xmlでガッチリ構築するほどの時間的余裕はなく(提出が終われば是非やってみたいですが……)、
社会人の方とかですと、複雑である程度の分量のデータから動的にobjを作るような経験をされた方はいるのではと憶測しています。
443438:02/10/09 17:48
>440
それは知ってる。ただ単純にどれ位の人が新規にクラスを作っているのかな、と。
実際どれくらいなんだろ?特異メソッドや特異クラスを利用することも考えられれる
でしょ。
>>442 水を差すようで悪いけど、出力にRubyのリテラルのような複雑な文法を
持ち込んだり、入力を読むところで複雑なことをするのもお勧めできないなあ。
入出力部と集計部やperlスクリプトとの依存性が高くてコードの変更が面倒になるよ。
それにファイルフォーマットを考えるのは難しいから考えないで済む方法がいい。
例えばワークシート毎に1ファイルにして、各行をタブ区切り(TSV)で出すのはどう?
TSVなら吐くのも簡単だしRubyからは次のように読めるしね。
for fn in filenames
data[fn] = open(fn).read.map{|i| i.chomp.split(/\t/)}
end
data["fx"][9].indices[23,31] ##=> ファイルfxの10行目の24,32カラムめの値
ハッシュリテラルで書くと簡単に見えるかも知れないけど、仕様の固まってない
ネストしたデータ構造のアクセス手段を作るのは多次元配列のとたいして変わらない。
どっちの方法も仕様の変更を吸収するところがどこかで必要になるからね。
それとxmlがガッチリというのは間違った認識かも。マーシャルの一形式と思えばいい。
パーザを書かなくて済むのも大きな利点じゃない?xmlといってもいろいろあるよ。
使ったことないがこういうのもあるし。
http://www.cneti.net/users/kou/ruby/xmlstore/
446352、425:02/10/09 22:42
>>444
確かにおっしゃると通りです。
それと、友達に相談したら、セル範囲Range(" ")に名前を付けて、名前とoffset(i,j)でアクセスしてExcelだけで、
処理しろよ、とあっさりと言われました。
確かに、自分でも遠回りな方法だと思っていますが……

しばらく考えます。
>>442
CSVなりTSVなりでExcelから書き出して、awkあたりで集計しちゃだめかな?
このawkびょーモノメ
449一時間目:02/10/10 03:17
アルゴリズム講座その1
array.sort{|a,b,c| ここになんて書くのかな。}
>>449
3 引数?
>>446 Excelを使わないといけないけどRubyでやりたいっていうのなら
RubyからExcelを使うという方法もある
ttp://member.nifty.ne.jp/masarl/article/ruby-win32ole.html
Excelをつかわなくてなくていいんなら、俺ならRubyだけでやるけど、
本人がExcelとRubyのどっちに慣れてるかの問題じゃないかな。
テーマが何かは知らないけど、統計処理が目的ならそっちに力いれた方がいいかも。
入力のフレームワークで悩むのはあんまり面白くないからさっさと決めた方がいいよ。
そういえばこういう話もあるね。現行バージョンはどうだか知らないけど
Excelでビミョーな計算をするときは気をつけれ
ttp://www.matsusaka-u.ac.jp/~okumura/software/excel/roundoff.html
>>449
$ ruby -e 'p [4,3,1,2].sort{|a,b,c|a<=>b}'
[1, 2, 3, 4]
>>454
def f
yield(1,2)
end
f{|i,j,k| p [i,j,k]} #=> [1, 2, nil]

ということか…
しかしそれはアルゴリズムの問題なのか?
>>449
ary.sort{|i,j,k|$bogo||=callcc{|$c|:bogo};1-2*rand}.inject($bogo=nil){|i,j|(i)?((i[-1]<=j&&i<<j)||$c.call(:bogo)):[j]}
今なら聞けそう……。upto,time,eachなど使ってるんだけど……
a1
a2
a3
b1
b2
b3
c1
c2
c3

a1
b1
c1
a2
b2
c2
a3
b3
c3
の二つがワンライナーで出来ません。どうやるのでしょう。
ruby -e '("a".."c").each{|i|("1".."3").each{|j| puts i+j}}'

ruby -e '("1".."3").each{|i|("a".."c").each{|j| puts j+i}}'
ってことか?
サブクラスで必ずメソッドを実装して欲しい場合って
スーパークラスで def foo; fail; end とかやる以外に
何かカッコいい方法ないかな?
こういうのを望むのはRubyの思想と外れていると思うんだけど。
>>460
Classクラスのprivateメソッドにinheritedというのがある。
こいつはなにかというと、サブクラスが定義されたときに、
そのサブクラスを引数に呼び出されるものだ。

それで実験してみた。

class Super
  def Super.inherited(subclass)
    p subclass.instance_methods
  end # def
end # class

class Sub < Super
  def foo
  end # def
end # class

実行結果は
[]
だった。ダメじゃん…
instance_methodsが取れれば(結果が["foo"]だったら)、
かっこよさげな方法でチェックできたのに。
このフックってサブクラスが生成されたよ、名前はこうだよ、
くらいの情報しかないみたいだ。

実行速度が遅くなってもよいのなら、Superのinitializeメソッドのなかで
instance_methodsを取って比べるというのでもチェックは可能だけど、
Subオブジェクトが生成されるたびにチェックするんで、
そんなアホなことはしないほうがいいだろう。

以上、役立たずでした。
462352、425:02/10/10 20:56
>>452
基本的な質問ですが、このWIN32OLEっていうクラスについてなのですが
作者のホームページにもある通り、WIN32OLE#each {|i|...}を実装したから
for item in collection の構文が使えるとありますが、私自身そのあたりの仕組み
(何がprimitiveなのかということ)がまだよく判っていないからかもしれませんが
どこまでrubyの構文がつかえるかが謎です。だからなかなか使う気になれないです。
下に貼ったように、win32ole.cに色々追加されているようですが、機能がよく判らない
関数が多いっす。まだこの手の分野については、あんまし情報多くないのかな。

% grep "^fole_" win32ole.c |sed -e 's/fole_//'
s_allocate(klass)
s_connect(argc, argv, self)
s_const_load(argc, argv, self)
s_reference_count(self, obj)
s_free(self, obj)
s_show_help(argc, argv, self)
initialize(argc, argv, self)
invoke(argc, argv, self)
invoke2(self, dispid, args, types)
getproperty2(self, dispid, args, types)
setproperty2(self, dispid, args, types)
setproperty(argc, argv, self)
getproperty(self, property)
each(self)
missing(argc, argv, self)
methods( self )
get_methods( argc, argv, self )
put_methods( argc, argv, self )
func_methods( argc, argv, self )
obj_help( self )
method_help( self, cmdname )
>>461 inherited は class 文の先頭で呼ばれるので無理。
class 文の終りで呼ばれるフックが必要。matz にリクエストしてみれば?
とりあえずは実装されてないないことを明示するとそれっぽいかも。

class Foo
def foo()
raise NotImplementedError, "not implemented method for `#{inspect}'"
end
end
class Bar<Foo; end
Bar.new.foo
>>461
そのタイミングでとれても余り意味がない。
メソッドは後からいくらでも追加できるから。

それでもやりたきゃ、コンストラクタで未だチェックしていないク
ラスの場合のみチェックするとかやりようはある。

> Subオブジェクトが生成されるたびにチェックするんで、
> そんなアホなことはしないほうがいいだろう。
>
> 以上、役立たずでした。

頭は使い様。
465460:02/10/10 21:51
>>461
自分も inherited は、この為に用意してくれているんだと、
思って同じように組んでたら予想外の結果になった(w
やっぱり>>463さんのように書くのがいいかな。
で、メソッドが多い場合はevalで一気に生成すると。
でもevalなんか使いだすと汚らしいな…
>>465
結論は出たみたいだけど。

abstract method
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15841

特異メソッドを考えると、こういうのは意味がないのかもしれない。
>>462 Ruby自体に関してだけ答えると、for は each を使って実現される。
for i,j in x do .... end は x.each do |i,j| .... end とほぼ同じ。
違いは for の場合は end 以降でも i,j が使えるのに対して、
each の場合は i,j がそのスコープで初出なら end 以降では使えない点。
Windows 固有のことについては Win32OLE API について書かれた本を探して読むが吉。
Win32OLE API について知らなければサンプル以上のことをするのは難しい。
作者の掲示板を通読したり使ったり ruby-list なども検索すると良さそう。
>>456 は責任をとって、457が値を返す前にinjectがちょうどn回呼ばれる確率を計算しる
ちなみにこれは bogo-sort のようだな
ttp://www.tuxedo.org/~esr/jargon/html/entry/bogo-sort.html
>>465
inherited はユーザによる継承の手間を軽減するのに便利あるよ
実例は標準添付の singleton.rb 参照するよろし
>>460
それは抽象クラスという意味なんだろうけど、
抽象クラスのサブクラスとしてさらに抽象クラスを作るやつもいるかも。
その場合は定義しなくてもよいこともあるわけで、
「これは抽象クラスだよ」っていう意志を伝えるのには文書が必要やろうね。
>>463 の方法を併用するのは悪くはないと思う。
weakref ってどういう場合に使うのですか?
>>458
2つをどうするのかがわからんが、
a=[1,2,3];[0,1].each{|b| p a.collect{|i| a.collect{|j| (i+96).chr + j.to_s}}.flatten.sort{|i,j| i[b] <=> j[b]}}
こういう感じ?
473456:02/10/11 00:57
>>468
うちのは1.6系なんで、Enumerable#injectないの(w

# 実はArrayクラスに細工して、inject呼ばれる回数数えて、
# モンテカルロ法で計算しようとしたのは、みんなにはナイショだよ。
>>471
オブジェクトを変数に代入したり、
コンテナに入れると参照されるので、GCされなくなる。
そこで大きなオブジェクト等を勝手にGCして欲しいに使うのが weakref。
これを使うと間接参照になるので変数やコンテナに入れても本体はGCされる。
変数からWeakRefオブジェクトへの参照は残るけどね。
実用例はRuby本を参照。実装の解説はちょっと前のCマガに載ってた。
使いかたは↓
ttp://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=weakref.rb
>>443
組み込みクラスをわずかに改造したその場しのぎのクラスが欲しい場合に,
継承するかモジュールで extend するかは単に好みの問題であることも少なくない.
それから日々の思いつきで作るちょっとした小道具というのも,時にはありそうだ.
ちょうど >>468 を眺めていると,キーを複数指定できるハッシュのようなものがあれば
多変数再帰関数をそこそこ効率良くきれいに定義できることに気がついた.

class RecursiveFunction
def initialize(&block)
@f = block ; @memo = Hash.new { |s,k| x,*y = k ; s[k] = @f.call(x,*y) }
end
def [] (*a) @memo[a] end
def []=(*a) @memo[a] = a.pop end
end

A = RecursiveFunction.new{|m,n| # Ackermann function A[m,n]
if m == 0 then n+1 elsif n == 0 then A[m-1,1] else A[m-1,A[m,n-1]] end
}
def A(m,n) # straightforward version
if m == 0 then n+1 elsif n == 0 then A(m-1,1) else A(m-1,A(m,n-1)) end
end
p A[3,4], A[3,8]
p A(3,4), A(3,8)

こういうものを思いつく機会は頻繁にあるわけではないが,誰でもたまにはあるだろう.
またなにかのプロジェクトの初期の段階ではメモをとりながらいくつものクラスを
書いては捨てることを繰り返すのではなかろうか.それが典型的な設計過程のはずだ.
結局どれくらいクラスを作るかはその人の嗜好や置かれている状況によると思われる.
476460:02/10/11 09:18
>>466
> abstract method
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15841
お〜、巧いこと実装する人がいるもんですねぇ

ちなみにこんな感じで使えるそうです。

class A
define_abstract_method :foo
define_abstract_method :bar
define_abstract_method :baz
end
p A.abstract? #=> true
p A.abstract_methods #=> [:foo, :bar, :baz]

# define_abstract_method が可変長引数になっててもいいのにな。
cols = [ "ID", "Name", "Born" ]
[ [ 1, "東京太郎", "東京" ],
[ 2, "千葉次郎", "千葉" ],
[ 3, "山梨三郎", "山梨" ],
].each {|id , name , born| print id,"\t",name,"\t",born,"\n"}
の出力結果の
1  東京太郎  東京
2  千葉次郎  千葉
3  山梨三郎  山梨

cols = [ "ID", "Name", "Born" ]で表題をつけたい
ID   Name   Born
1  東京太郎  東京
どうやんのですか?
>>477
[ [ 1, "東京太郎", "東京" ],
[ 2, "千葉次郎", "千葉" ],
[ 3, "山梨三郎", "山梨" ],
].unshift(cols).each{|id , name 以下同文
$ ruby -e "p (1000**8).type"
1000000000000000000000000
$ ruby -e "p ((1000**8).type)"
Bignum
$ ruby -v
ruby 1.6.7 (2002-03-19) [i386-linux]

最初の .type が効いてないのはなんで?
>>479
p (1000**8) #=> nil
nil.type #=> NilClass

1.7 では仕様変更されて、
上の書き方でも下と同じ結果になっている。
481479:02/10/11 22:01
>>480
なるほど。1.7インスコしようかな。
そういえば 1.7 だと class を使えとうるさい。
$ ruby -e 'p(1).type'
1
-e:1: warning: Object#type is deprecated; use Object#class
$ ruby -e 'p(1).class'
1
$
rubyの例外処理ってやっぱすごいんですか?
作者さんは「ruby本」でも例外の解説に注力されてましたが、
 「こいつぁ、すっきり書けるよ」
と思えるようなサンプルって何かご存知ありません?



Java と比較すれば、
・デフォルトで throw
・実際に例外が上がるまでどの例外があがるのかわからない
くらいでそう変わりないような。
そだよね。Rubyと同程度の例外機構はあって当然って気がする。
あと、Ruby だと例外は raise と rescue のペアでやるんだけど、
それとは別に catch と throw も用意されてる。
JAVAは何故メソッド名、関数名があんなに長いのでしょうか?

Win32も長いけど……
487486:02/10/12 00:15
ここはrubyスレでした。すみませぬy。
短い名前を考えてるといつまでたっても機能が追加できないから。
>>486
Smalltalk をいじっていると慣れると思われ。
490ruby始めよっかなー:02/10/12 12:18
rubyの作者って日本人ですよね。
ならば、
A→A
B→B
のように全角英数字に置換する機能って持ってるんですかぁ?

それができるならruby始めよっかなー
>>489
なぜSmalltalk? Javaで慣れると思われ。

>>490
しちゃいけないってことはないけど、言語の機能ではなくてそういうのはライブラリで実装する。
文字列操作ができればどの言語でもやればできるよ。
>>490

Ruby/KAKASIつかってくださぁい

require "kakasi"
puts Kakasi::kakasi('-osjis -aE',gets)

オプションはKAKASIのドキュメントを読んでねぇぇ
493999:02/10/12 23:45
"a".upto("z")はあるのに
"z".downto("a")はないのは何故ですか?
494999:02/10/12 23:47
>"z".downto("a")はないのは何故ですか?

ありますた
File.chown(nil, nil, "testfile") #=> 1
変更してないのに1になるのは仕様ですか?
変更した数というよりchown(2)が成功した数を返すんだね。
>>495 マニュアルと食い違った動作が仕様かどうか知りたいときは
ruby-listかBTSあたりで訊いた方がいいんじゃないかのう
ttp://www.ruby-lang.org/cgi-bin/ruby-bugs-ja
498デフォルトの名無しさん:02/10/14 15:40
素数スレに、C++のコードをRubyに変換してくれる人がいる。
Rubyは全然知らないけど、結構すんなり読める。
C++と、似ている。ただ、C++よりもすごく遅い。
参照 : http://pc3.2ch.net/test/read.cgi/tech/1018657457/l50

Ruby。何のための言語なんだか。
馬鹿には分からないよ。当たり前だけど。
>>498
> Ruby。何のための言語なんだか。
作者が作ってみたかったら。オブジェクト指向プログラミングを広めるため。

読みやすいのはそのコードを書いた人のおかげも大きいと思う。
RubyにしろPythonにしろそれで書けば読みやすくなるわけじゃない。
>>498
ネタで言っているんだろうけど、遅いに決まってるよなあ。
もし同等だったら C++ こそ何のための言語なんだかわからん。
>>498
Perl や Ruby でざっくり書いて動くものができたら
C/C++ にするというプロトタイピング開発。
>>502
どんなプログラムも早くする必要があるわけじゃないしな。
それに早くしたいとこだけCで書いてもいいし。

でもスクリプト言語はアルゴリズムの性能評価には
使えないことはあるかも。ホットスポット以外で時間を
食ってる場合もある。測り方には気をつけれっとことかな。
504477:02/10/14 22:30
cols = [ "ID", "Name", "Born" ]
と1 ,3,13があるとき、
1_ID 1
1_Name 3
1_Born 13
2_ID 1
2_Name 3
2_Born 13



11_ID 1
11_Name 3
11_Born 13

と11まで繰り返すには、どうすればいいでしょうか。
度々すんません。
>>504
そのくらい自分で考えられんのか、おまえ覚えるつもりないだろう
と思いながら

hoge = [1,3,13].map {|i| "_#{cols.shift.ljust(6)}#{i}" }
11.times {|i| hoge.each {|j| puts "#{i+1}#{j}" } }
>>505
貴方は優しいインターネットですね。
>>506 実はcolsを破壊する罠
508デフォルトの名無しさん:02/10/15 09:25
colsを壊したくないなら

hoge = cols.dup
hoge = [1,3,13].map {|i| "_#{hoge.shift.ljust(6)}#{i}" }
11.times {|i| hoge.each {|j| puts "#{i+1}#{j}" } }

とでもしておけよ。これはこれで突っ込みどころがある
わけだがな。オレもなかなかの優しいインターネットだ
ろう?
そういや ljust ってときどき使うわりにめんどいから、
sprintf("_%s%d", str.ljust(6), i) が
sprintf("_%<6s%d", str, i) と書けるというのはどうだろう
と、ふと思った。cjust は > ね。%s 限定かな。
>>509
あれば便利かもしれないけどなくても別に困らないかな
each_with_index を使うと
 負 け た
気分になるときがある。
それより each_byte_with_index がなくて残念に思うことが。
必要なら言われなくてもやってると思うけど

module EachByteAddition
def each_byte_with_index
cnt = 0
each_byte {|v| yield(v,cnt) ; cnt += 1 }
end
end

こういうの作っておいて

[ String, IO ].each {|k| k.module_eval { include EachByteAddition }}

とかすれば‥
>>513
こういうのを場あたり的になんとかするんでなくて、
既存のイテレータをその場で組み合わせられる枠組がよいなと
irb(main):001:0> Math.log(-1.0)
NaN
irb(main):002:0> require 'narray'
true
irb(main):003:0> Math.log(-1.0)
Complex(0.0, 3.141592654)

なんでじゃ?
e^(x*i) = cos(x) + sin(x)*i
のxにπを代入するば?
>>515 narray.c で rb_require("complex") してるから。
narray じゃなくて標準の complex.rb が定義してる。
518515:02/10/15 23:32
>>516
それを計算すると NaN ってのになるの?
つーか、complex が何なのか全然わかってません(恥

んで、なんで narray を入れて Math の挙動が変ったのかと
不思議に思ってたら内部で require 'complex' されたからだった
お騒がせしますた
>>518 NaN は Not a Number の略で
不定や未定義を表すために IEEE754 で規定された浮動小数点数の特別な値。
exp(x) = -1.0 を満たす x は実数には存在しないので log(-1.0) は
未定義であり NaN になるが、複素数なら exp(πi) = -1.0 が満たされる。
詳しくいえば複素数の対数は一意には定まらない(exp(3πi) = -1.0等)。

0.0/0.0 #=> NaN
1.0/0.0 #=> Infinity
1.0/0.0 - 1.0/0.0 #=> NaN
0.0/0.0 == 0.0/0.0 #=> false
>>512
iterate する単位に byte がないオブジェクトは多いと思うけど。
>>520 each_byte だけじゃないという話なのよん
% grep -r 'def \+each_' src/ruby/lib
% ruby -e 'ObjectSpace.each_object{|o|
Module === o and
puts o.instance_methods.map{|m| o.name+"#"+m}.grep(/each_/),
o.singleton_methods.map{|m| o.name+"::"+m}.grep(/each_/)}'
ああ、勘違いしてた。
each 系メソッドそれぞれに _with_index のメソッドもほしいということか。
523デフォルトの名無しさん:02/10/16 13:14
>>409

> zlib のラッパライブラリの ruby/zlib と、
> ruby/zlib を使った zip ライブラリの ruby-zip はあるよ。
> ruby-zip は pure ruby。

結局どっちも pure ruby じゃないやん。(zlib 使うんでょ?)
>>523
現状を答えたんだけど。
圧縮ルーチンとファイルフォーマットのどちらを指しているのか曖昧だったし。
>>509
> そういや ljust ってときどき使うわりにめんどいから、
> sprintf("_%s%d", str.ljust(6), i) が
> sprintf("_%<6s%d", str, i) と書けるというのはどうだろう

sprintf("_%-6s%d", str, i)

手持ちのCのライブラリのドキュメントを読んでみろ。

> と、ふと思った。cjust は > ね。%s 限定かな。
rjust ?
>>525 さんくす!
知らんかったよ。2.9.1 BSD にはすでにあったらしい。1983年だ…鬱
もしかしてK&R1の頃からあったのか

> rjust ?
しまった center のつもりだった。
>>526
あなたは礼儀正しいインターネットですね
>>526
まさかCでいちいちstrncpy()とかmemset()とか使ってたんじゃ…(゚Д゚;)

> > rjust ?
> しまった center のつもりだった。
たしかに中央揃えはprintfにはないな。でも%>sはやだな。
>>528 
> まさかCでいちいちstrncpy()とかmemset()とか使ってたんじゃ…(゚Д゚;)
その通り。逝ってきます。

> たしかに中央揃えはprintfにはないな。でも%>sはやだな。
中央そろえは滅多にやらないからなくてもいいや。
530デフォルトの名無しさん:02/10/18 15:05
なんか金光って本を書いてるみたいだな。
それであちこちで質問しまくってるらしい。
そんなんで出版できるのか?
出版社も何考えてるんだか。
531デフォルトの名無しさん:02/10/18 15:10
40過ぎで編集者とは思えんあの文章だし、
CGIの本書こうってのにCGI.RBの作者もしらんとは。

>>529
> 中央そろえは滅多にやらないからなくてもいいや。
なんだ。%^dって作ってみたのに。
>>532
うーん、つーか幅と具の奇偶が違うと1カラム分の右左が不定だし。
まあどっちかってことに決めるわけだけど。
>>533
それは単純に左がwidth/2にしたんでやや左より。
ついでだから貼っとく。

begin-base64 644 centering.diff.gz
H4sIAAAAAAACA61W+2/iRhD+2fwVc6lK7LOd2OYRwCW6E+UuqCGJSHKVepdG
YOzEKgFkE+5yDf97Z2a9fvAoJ7WWMLuz387OfPNY96Zj/1sL4nkUThfBkVdq
//enNOhcQxBO/BYce8v4OHoevRzHkZcM5FHGshT5iyj0l+H0ASL8i8PZFOwj
p14ah0EA5jOYDphzMCMS5ow0TTObKXYdLr0FOJblgF1pVastuwmmhY/CynRd
z6MbGdpqtCynZSXo0rt3YNYd4wR0fDcBp5H/NFv693H4ML0fhYtYjReRAaNh
7Gsl+GnsB+HUhw+/9369OYOKkxNdDbodgHq1pKeiTvfipjsA22mUIEN2zrqd
39SJBuMZ/P2lZAI+Xx+RPFBHE38KOtDiaRtGcfhdI4hOEHQGfx4h2oRwE3lx
a4LI7waFhm/bDu6gDbD6wn7bVtOogm7btoFU73N9JQ+ycJL5eP6hd36ufg3H
i0fpUGotJsSEjLWkqWEAajAZPsRQluSghRImtRyD46YTsy3UuKtEhz+JfVb0
JlPV713cXmuoCtZ0ZXrIioKKUeQP/yoYxltPwUI96MjoOfhMnOr6HW4+hENX
EmCaDNVYX54WPaNlsIuWILHoxw5KvPi3g7qCRxU1GLD9QEFUOWW8XEYZ4jX4
RfKjiTxT8mFT0xgAo0VkCNXv9vuXn7pqObWd99wZkEpw7D0OMX3EVt725D/F
/kLNY9BdAxI6CbIRdhLmyZQR26QEPr0/v+2WIBrdB/dJ8avD6MEzAN9LTeR8
w6Kcd6xqUu27wKDQKQ+zxQyoZb24lPQo87Aa4PDPwxbPAEQOvrZlPruJfK7r
cphXorNiocRCJbCm5I/u4NJlS526Zdg2mtpoGnZtj60KcQ0eGWkqyvbqoJVc
v0iSi/OQlpSr2+sz9QAODLA1l3ViDlzc9p3exY26HGJLKoP1LQhcQjO47Aks
zncopfOKenVhXmocN1JMPlogdKLBlXPRLJPYS2G+6aTCYh15qXywDl7Ri3tA
emrBHYaIwMh/0SxEXBonBl4/esWxjMa+sChF80kiCML8RlOZuny4ylkr46Vc
vHifacoVZbNtpDtWPGI3lSJVZABWoTd/KVTh4Ppm0Lv4SP1eM0/n1PWpagVe
XCxr9has/d+MHWwYmxAPEksRqDYryLxesxuGfbIvAmTsPPI9bHXc8XicOAO5
aJDcXSuessr1+JoGBRtn/Nm6gzfow9FhkrW0YVO6eQdKJ4opYW7j7dSSzG0h
TirfepcyjfJM4Rw1bRanvorOKhWt5GD9Zl13f6v6vGr2cl3r+tXK+B+7X7Ow
A2UIxb5m1Ywaxr7SNPb2RHn6fBZj3GcxJfFcBn61u1FmYc3WVLH4KplmVHKG
6L0yPCDsxHsG7azbVWNvioqEmPr+WLgsYfkKDXCMb2rDnDOyKLFicZSDiv5F
4dmxlH4wpJ8LLJYKmZ0dra9uM/n1mi3ID54W93ihP89Vtg59YroSvQbXlCY+
OQvZen31vtPV4C3uwu/0lDdzA5hdDsVPGQ4IL2YBgXY7twFSFtm0g5/HB5m7
QGWVYw9nKP0HfSB1xRgNAAA=
====
>>535
すげー。せっかくだから commit キボン
>>536
まつもとさんにかけあってくれ。
漏れですら滅多に使わんので言いくるめる自信なし
トムソーヤのふりをして要求してくれる人募集
ラクダ本引っ張りだして「フォーマット」を調べてみたら、中央揃えは'^'じゃ
なくて'|'だった。記憶違い。
しかし、perlのwriteって使ったことないなぁ。
rubyは日本語に対応した正規表現。
vimの:rubydoなどで、「ひらがな三文字の行だけ消したい」ときって
:rubyd gsub(/^\S{,3}$/,"")
見たいな感じで、出来ないんでしょうか?$KCODE="e"みたいなものが必要ですか?
>>540
/^\S{,3}$/ はEUC-JP非空白高々3文字だけからなる行にマッチ擦る
>>541間違えた
/^\S{,3}$/e はEUC-JP非空白高々3文字だけからなる行にマッチ擦る
543540:02/10/19 04:22
>>541
なぬ?

じゃあ、単純に
:rubyd gsub(/^[あ-ん]{,3}$/,"")
っていう式がコンパイルされるような
rubyの拡張機能ってご存知ですか?

知ってたら教えてください。御願いします。困っています。
>>543

:ruby $KCODE='e'
:rubyd gsub(/^[あ-ん]{,3}$/,"")
あーん
[ぁ-ん]
SEの卵ですが、
\x0D\x0A
って何を表すコードか直ぐにわからなければなりませんか?
はい
むしろ、その区点を何の体系で解釈すべきかを示してないあたりが問題。
550perl厨房:02/10/19 15:56
perlで1行をn行に変換するスクリプト書いたですが、
rubyバージョンキボンヌ。
------------

$coln=3;
while(<>) {
chop;
if ($. % $coln) {
s/\r//;
printf "%s\t",$_;
}
else {
printf "%s\n",$_;
}
}
print "\n";
coln=3;
while gets
chop;
if ($. % coln != 0)
sub(/\r/,"");
printf "%s\t",$_;
else
printf "%s\n",$_;
end
end
print "\n";
あはーん
もう十分渓谷の意味理解したので
warning: parenthesize argument(s) for future version
ってのがいちいちウザイんですけど、このメッセージ消せますか?
自分の書いたスクリプトを直すか、
ライブラリのソースを直すか、
Ruby のソースをいじって警告を出なくする。
>>553
本当に理解した?その警告のいいたいことは、
「将来のバージョンでは動作が変更されるからいまのうちにカッコで囲んどけ」
って意味なんだけど。それが分かっているなら554。
人の書いたライブラリが原因なら作者に問い合わせてみる。
その作者の手が空いたら何とかしてくれるかもしれない。
堂でもいいことだが、最近、肉体仕事やスポーツ後にPCの前に座ってRubyと遊ぶ瞬間
が至福の時間となりつつある。
いつものように仕事サボりつつ、Ruby触りだすとどうも後ろめたくて、憂鬱になるので
いかんが……
ruby_talkの最新のリストruby-talk/53601-53800.shtml#latest
みたいなものを取得するにはどういう方法がありますか?
ruby-talk/index.shtml#ruby_talkからリンクをたどるってやつです。
テーブルの
<TBODY>
<TR>
<TD align=right><A href="53601-53800.shtml#latest">53601-53800</A></TD>
<TD align=right><A href="1-200.shtml">1-200</A></TD>
<TD align=right><A href="201-400.shtml">201-400</A>
を正規表現でたどるしかないのかな?何かいい案ありませんか?
558553:02/10/22 05:36
>人の書いたライブラリが原因なら作者に問い合わせてみる。
>その作者の手が空いたら何とかしてくれるかもしれない。

いや、そんな大げさなことじゃなくてですね、
rubyのバージョナップしてから、
emacsのcall-processとrubyスクリプトがおかしくなったので、
いちいち修正ウザイんです。

めんどー。
>>557
相対URLだからURI.extractではとれないね。となると正規表現が典型的な解決かな。
HTMLの解析ツールはRAAにいくつか転がってるからそれを使うとか。
>>558
この際、気合いで一気に片付けるのもいいかもね。こんな感じで探せるはず。
# /\.rb\z/ ? $_ = `#$OPT_i -c #$_` : next でも文句いうのか・・・鬱

require "find"
require "getopts"
require "rbconfig"

getopts("", "i:#{Config::CONFIG['RUBY_INSTALL_NAME']}")

ARGV.each do |your_lib_dir|
Find.find(your_lib_dir) do |rb|
if /\.rb\z/ =~ rb then msg = `#$OPT_i -c #{rb}` else next end
puts msg if /Syntax OK/ !~ msg
end
end
561558 :02/10/22 07:27
あんまし見てないけど、貰ったやつ試しましたが、
何にもおきませんでした。
>>561
じゃ、もうないんじゃない?
念のため確認しとくと引数はライブラリのあるディレクトリ名ね。
% ruby-1.7 560.rb /home/your/ruby/dir/yourscript/
>>558
> rubyのバージョナップしてから、
> emacsのcall-processとrubyスクリプトがおかしくなったので、
ruby-mode.elではObject#typeは使ってないと思うが。

> >>560
それで引っかかるのはsyntax errorだろう。STDERR拾って/\#type/とかでマッ
チさせないと。

>>562
一応1.7添付のは全部修正したはず。
564562:02/10/22 11:52
>>563
> 一応1.7添付のは全部修正したはず。

いや、添付物以外の話
565558:02/10/22 12:50
有名どころでは
migemo
rdindex
を修正しました。

違う解決法もあったこもしれませんが…….
ち、厨ですみません。
535ってどうやってデコードするんですか?

出来なかった。
567562:02/10/22 20:36
>>566
begin-base64 644 centering.diff.gz の次から ==== の前までを
ファイル foo.txt に保存し以下を実行する。
ruby -e 'print ARGF.read.unpack("m*")[0]' foo.txt > centering.diff.gz
gzip -d centering.diff.gz

このパッチが流れた時のCVS先端には当てることができた。今は確認してない。
>>567
> このパッチが流れた時のCVS先端には当てることができた。今は確認してない。
sprintf.cは変わってないから大丈夫。
>>530
メルマガで本のこと書いてあったよ。
570デフォルトの名無しさん:02/10/23 02:48
>>569
おいおいアレをそのまま本にするつもりかよ!

http://www.freeml.com/ctrl/html/MessageListForm/[email protected]

デジカメで使われている Exif ファイルのヘッダを扱うような
ライブラリとかありませんでしょうか?
>>571
RAAで、それっぽいのがあったぞ。
http://www.ruby-lang.org/en/raa-list.rhtml?name=ruby-libexif
でも、なぜか俺はダウンロード先の鯖にいけないから、実際どんなものかはわからない。
>>572
ありがとうございました。
>>572
0xfa.comのdnsが落ちてる?
ファイルの中身を変更して、EUCにする方法は簡単ですが、
Windowsで作られた日本語ファイル名のファイルをUnix側で
ls --show-control-chars
でみるとSJISファイル名は??????????みたいになります。
いちいち
kterm -km sjis &
して見てるんですが、
いっそのことrubyなんかでファイル名を変更したいのです!!
どうやるのでしょうか?


やり方説明しているHPありませんか?


576sage:02/10/26 21:41
日本語のファイル名使うってのもどうかと思うが、

x = "a"
Dir.glob("*") do |file|
File.rename("file","x")
a.succ!
end

とかでアスキーな名前に変えるとか?
577to:sage:02/10/26 21:42
あ、ごめんsageそこなった
578bloom:02/10/26 21:42
576,577ですが・・・。
何回もすんまそ。久々に書き込んだのですっかりsage方忘れてた。
perlのithreadのような機能をrubyは将来的に導入する予定はあるんですか?
あと1.8で実装させる予定のM17Nとはなんですか?
死ねョ馬鹿
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
>>575 意味はマニュアル確認しる
$ ruby -rkconv -e'3.times{|i|open("XXX\x82\xd9\x82\xb0#{i}","w")}'
$ ls -1
XXX????0
XXX????1
XXX????2
$ ruby -ruri -e'Dir["*"].each{|i|File.rename(i,URI.escape(i))}'
$ ls -1
XXX%82%D9%82%B00
XXX%82%D9%82%B01
XXX%82%D9%82%B02
$ ls -1 | ruby -ruri -pe'$_=URI.unescape($_)' | nkf -e
XXXほげ0
XXXほげ1
XXXほげ2
$
>>580
言語レベルでm17n機能が1.8に登場する予定は無いはず
ithreadってどんなの?
perlのPerlIOのような機能をrubyは将来的に導入する予定はあるんですか?
糞言語に染まる必要なんてねーよ。低脳野郎
>>585
予定はあるが時期は未定
[]~$ perl -pe 's/(.)/\1\t/g;' ahoki
a a b b c
Sun Oct 27 (01:31:44)
[]~$ ruby -pe 'gsub(/\(.\)/,"\1\t")' ahoki
aabbc
Sun Oct 27 (01:31:55)
[]~$ cat ahoki
aabbc
Sun Oct 27 (01:32:01)
[]~$


何故でしょう?
>>580
>m17n-ruby
組み込みクラスライブラリで多言語に対応するためのフレームワーク
内部 Unicode にすることの弊害については自分で調べて。

>>584
よくわからんがこんなのらしい。
in Thread.pm
|In Perl 5.6 a new model was introduced in which all is was thread
|local and shared access to data has to be explicitly declared.
|This model is called "ithreads", for "interpreter threads".

>>585
IO/File クラスで十分じゃん。
>>588
ruby -pe 'gsub(/(.)/, "\\1\t")'
>>589
> IO/File クラスで十分じゃん。
PerlIOみたいなものというのはstdioに依存しないIOを作る話と思うが?
スケジュールもされていないが将来そうなること自体は何度もいわれている。
かなりの大仕事になるので実現していないだけ。
馬鹿か。PerlIOなんてsfioとstdioのラッパに過ぎないだろ
糞言語にはお似合いだがな。
いや、Rubyは糞言語
>>591
なるほど了解。
単に IO 系の関数を再編成しているだけなのかと思った。
>>580
もともとRubyのスレッドはユーザレベルスレッド。
$1のようなマッチ情報などはすべてスレッドローカル。
逆にpthreadなどを使ったスレッドの実現は未対応。
今後の課題のはず。
596デフォルトの名無しさん:02/10/27 05:02
おならぷー=3
>>595
ブロッキングI/Oだと止まるってアレね。
598rubyist@カラアゲうまうま:02/10/27 11:01
お前ら、rubyの悪口言うと承知せんぞ
599sage:02/10/27 12:41
>>597
止まる場合はあるが、ブロッキングI/O ではない。

さぁ、探してみよう!!
やれやれ、「rubyist@カラアゲうまうま」のハンドルはすっかり盗られちまったなぁ。
M17N機能とは具体的に何なんですか。
     曰
     | |   ∧_∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ノ__ヽ(〃´Д`)_ <   まあ落ち着けよ
     ||黄||/    .| ¢、 \__________
  _ ||金||| |  .    ̄丶.)
  \ ||水||L二⊃ . ̄ ̄ ̄ ̄\
  ||\`~~´  (<二:彡)    \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     曰
     | |   ∧_∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ノ__ヽ(〃´Д`)_ <   Perlは最高!
     ||黄||/    .| ¢、 \__________
  _ ||金||| |  .    ̄丶.)
  \ ||水||L二⊃ . ̄ ̄ ̄ ̄\
  ||\`~~´  (<二:彡)    \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||

             / ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ./ / |  Perlくん!
           / /  \          / ̄ ̄ ̄
           / /     ̄|/ ̄ ̄ ̄ ̄| Rubyくん!
         ./ /_Λ     , -つ   \
         / / ´Д`)  ./__ノ        ̄∨ ̄ ̄ ̄ ̄
        /    \ / /   ⊂_ヽ、
        .|    へ/ /      .\\ Λ_Λ
        |    レ'  /、二つ       \ ( ´Д`)
        |     /.          . >  ⌒ヽ
       /   /             /    へ \
       /  /               /    /   \\
      /  /               レ  ノ     ヽ_つ
     / ノ               /  /
   _/ /                /  /|
  ノ /                 ( ( 、
⊂ -'                    |  |、 \
                     .  | / \ ⌒l
                       | |   ) /
                      ノ  )   し'
                     (_/
>>605 CLUやSmalltalk、Eiffel、Sather、Pythonの立場は?
     曰
     | |   ∧_∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ノ__ヽ(〃´Д`)_ <  
     ||水||/    .| ¢、 \__________
  _ ||道|| |  .    ̄丶.)
  \ ||水||L二⊃ . ̄ ̄ ̄ ̄\
  ||\`~~´  (<二:彡)    \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||

       _,-―-、-ー 、
      /        \
.    / "〃    ハ  ハ
   イ      /'''''‐'''ヘ  |
    |     /      ! |
   J.  / リト-、、   、-‐ヤノ
    |.(ゝ  ゙fiウァ   fウァ'!'
    ゙| {   ´    ` .}
    |.   ゝ     '   /!
     |.   个 、  ̄ ,イリ
     イ ム   `  ̄i !ー-、
    i / \    ヽノ    !
   /     ` ー-‐'´   ヽ

Perlなんでダサイわ。これからはRubyよ。でもクラスを使わないRubyistは
もっと最悪。Perlとコード一緒じゃない。それならPerl使ってなさいよって
かんじ。
"Pj42MDikz1Blcmyk4lJ1Ynmk4qS3pOmkyqSkCg==".
unpack("m").
display
rubyにscplitコマンドみたいな仕事させるにはどのようにすればいいでしょうか?

Kernel#gets([rs])のrsは行の区切り文字なので正規表現ではないし……

例えば、bigfileから
2002.1.3
2002.3.8
とかを区切りにファイル分割したいです。

% csplit bigfile /2002/ /2002/ /2002/ ……

を模倣するrubyコードはどんな感じになるでしょうか?
611610:02/10/28 14:19
例がアホだった……
% csplit bigfile "/^2002.[0-9]+.[0-9]+/" {100}
でした。

byte code interpriterにすれば実行速度上がると思うんだけどなあ
しっつもーん。


みなさんは自分用に定義した def〜end ばっか
入ったファイルを何処において、どのように使ってますか?

>>613
site_rubyにインスコ
>>612
そう考えて prototype を作った外国人がいるよ。
http://sourceforge.net/projects/rubyvm
>>613
export RUBYLIB=~/lib/ruby
>609
"pMSkq6SopPOkwKToobykwKGipNKk0qTS\n"
>>617
"abbbbbbbbbbcdddddddddefffffffghhhhhh\n"
>>612
俺はネイティブはかせたい。
ここはsage進行か。

>>619
eval 系はどうするの?
%q[9/CXV,3<*YJVCYYNTXX&,XX&CXX&+XX**"@``]
明らかにすれ違いだけど、
まつもとさんがつかってたキーボード配列ってなんだっけ?

まえ、雑誌で紹介されたけど、名前わすれちゃった。
このなかのどれでしょうか?
    ∧∧ !  ガバッ! / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
___(;゚Д゚)___   < うぉ?!
|  〃( つ つ   |    \_________
|\ ⌒⌒⌒⌒⌒⌒\
|  \^ ⌒   ⌒  \
\  |⌒⌒⌒⌒⌒⌒|
  \ |________.|
┌┐
(゚Д゚)<rubyー
┗┛
>>620
削除する。
628デフォルトの名無しさん:02/10/30 22:54
ttp://www.hokto-kinoko.co.jp/chokusoubin/music/song.rm

 きのこっのっこーのこ  げんきのこっ♪

                    γ ⌒ ヽ
 (二二ニつ    m从m     (___)
  ヽ´_ゝ`(    ミM川M彡     |゚Д゚,, |
  (/   ヽ)    |゚ー゚*|     (/   ヽ)
   |    |    (/|   .|ヽ)     |   |
   ヽ_ノ     ヽ_ノ      ヽ_ノ
   (/ ヽ)      (/ ヽ)      (/ ヽ)

   \ エリン〜ギ♪ マイタケ♪ ブナシメジ♪/

     (二二ニニつ   ミ彡ミ彡ミ     γ'⌒"ヽ
      ヽ   / /    ヾミ彡ミゞ     (___)
       | (,,゚Д゚)      | (,,゚Д゚)       | (,,゚Д゚)
       |(ノ  |)     |(ノ  |)      |(ノ  |)
       ヽ_ノ        ヽ_ノ        ヽ_ノ
       U"U       U"U          U"U
629575:02/10/31 20:22
>>576

576さん!
どうも有り難うございました!!

さらに質問していいでしょうか?
ほげ.txtのようなファイルを一旦、日本語→asciiにした後、
もう一度ascii→日本語にするようにしたいです。
ファイルの一行目とか使って構わないので、
そういうことできますか?
% cat ほげ.txt
aho
boke

% cat a.txt
ほげ.txt
aho
boke

のように日本語→asciiの時はx.succ!で逆の時は
「ファイルの一行目」→ファイル名
のようにしたいのです。

どうすればいいでしょうか?
630575:02/10/31 20:26
>>576

576 さんどうも有り難うございました。

もひとつ質問していいですか?
日本語→asciiはできましたが、ascii→日本語は可能でしょうか?
%cat ほげ.txt
aho
beke
【ほげ.txt→a.txt】
%cat a.txt
ほげ.txt
aho
beke
【a.txt→ほげ.txt】
%cat ほげ.txt
a.txt
aho
beke
のようにするツールです。

631575:02/10/31 20:27
あ、あれ??!!!
前のヤツ、書き込まれてたんだ……。
rubyの以下の現象は理解できません。

>> puts a.tr('a-z','a-z')
・aabbW
というのではなく、
>> puts a.tr('a-z','a-z')
aaaabbbb
となってホスィ



>> require 'kconv'
=> false
>> KCONV='e'
=> "e"
>> a='aaaabbbb'
=> "aa\243\341\243\341\243\342\243\342bb"
>> puts a.tr('a-z','a-z')
・aabbW
=> nil
>> puts a
aaaabbbb
=> nil
>>
$ruby -Ke -rjcode -e 'a="aaaabbbb"; puts a.tr("a-z","a-z")'
=(・∀・∀・) プッピラポ〜
>>629
ファイル名のようなメタデータを持たせるのはどうかと・・・
ファイル名を書き換えるんでなくてシンボリックリンクにしたら?

File::open("ほげ.txt","w"){|f|f<<"foo\n"}
File::symlink("ほげ.txt", "hoge.txt")
puts File::open("ほげ.txt").read #=> foobar
puts File::open("hoge.txt").read #=> foobar
puts File::symlink?("hoge.txt") #=> true
puts File::readlink("hoge.txt") #=> ほげ.txt
puts File::symlink?("ほげ.txt") #=> false
637デフォルトの名無しさん:02/11/01 19:19
age
638デフォルトの名無しさん:02/11/02 12:36
ruby-gtkで各メソッドの説明があるマニュアルって無いの?
それぐらいCのAPIから推測しろ馬鹿
640デフォルトの名無しさん:02/11/02 12:43
やっぱ、無いのか。
CのAPIから推測して探してた関数は signal_emit_by_name() っぽいんだが、
肝心のRuby/Gtkにインプリメントされてなかった罠
つーかCのgtkライブラリそのままロードできないの?
Gtk::Object#signal_emit_by_name じゃなくて?
ruby-gtk-0.30
>>642
Ruby/DL 使えばできるよ。
激しく面倒だけど。
>>643
0.28 => 0.30に上げたけど組み込まれてなかった(´・ω・`)ショボーン

Gtk::Object#signal_emit_by_name はあるけど使うと、
>The signal_emit_by_name() function is unimplemented on this machine (NotImplementedError)
になる。
rp-pppoe-3.5を./goするとpppoe.oでエラーがでてmakeできないのですが、バージョン下げれば
makeできるのでしょうか。
>>646
板違いでした、、、
こんなことrubyでできますか?

内容:
UNIXのuniqやsortなどのフィルターコマンドを
uniq ファイル > ファイル.uniqed
sort ファイル > ファイル.sorted
のように単独で使うことが多いんですけど、
rubyの-iオプションみたいに引数のファイルを書き換えたいですが、
あらゆるUNIXコマンドで引数ファイルの書き換えを実現する
ラッパーRUBYスクリプトってどのようなものがありますか?

なにかサンプルとか知っている人いませんかぁ?

>>648
#! /usr/bin/env ruby
cmd, fn = ARGV.shift, ARGV.last
if ARGV.empty? or !test(?f, fn)
STDERR.printf("usage: %s command [options] filename\n", $0)
exit!
end
newfn = fn+"."+cmd
r, w = IO::pipe
if fork()
w.close
open(newfn, "w").write(r.read)
r.close
Process.wait
else
r.close
$stdin.close
$stdout = w
exec(cmd, *ARGV)
end
if $? == 0 and ENV["MY_WRAPPER_OVERWRITE"]
File::delete(fn)
File::rename(newfn, fn)
end
650デフォルトの名無しさん:02/11/04 18:33
emacsのruby-modeで自動インデントをさせたいのですが
(autoload 'ruby-mode "ruby-mode" "alternate mode for editing ruby programs")
(setq auto-mode-alist (append ' (("\\.rb$" .ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("^#!.*ruby" . ruby-mode))
interpreter-mode-alist))
以外に.emacs記述するべきことはありますか。この記述だけではruby-modeは起動しても
自動インデントは機能しません。
>>650 確認だがその.emacsで C-x C-f foo.rb してデフォルトキーバインドで
下の★の位置でC-jを叩いても■の位置にカーソルが来ない?
来ないなら C-hkC-j では何と出る?

if a★
 ■
>>651さんの指摘どおりにすればカーソルはその位置にきます。
ありがとうございます。
653648:02/11/04 22:19
>>649
wrapというファイル名として
$ wrap uniq url.txt
みたいに使うんですよね?

実行しても、url.txtは変更されてなかったですよ。

654デフォルトの名無しさん:02/11/04 22:42
金光ruby-listで大暴れだな。

>>653
まずマニュアル引きながらプログラムを完全に理解してほすぃ
656!649:02/11/04 22:54
>>653
もしかしてプログラム読めない人?

環境変数 MY_WRAPPER_OVERWRITE を定義しておくか、
if $? == 0 and ENV["MY_WRAPPER_OVERWRITE"]

if $? == 0
にすればいい。
657デフォルトの名無しさん:02/11/05 10:09
金光,どうしてあそこまでアホになれるの?真性?
るびきちの誤爆もかなりwarata
>>551
動かない区内?
>>658
単に >>550 を翻訳しただけみたいだから入力によるんでは?
660デフォルトの名無しさん:02/11/05 21:43
Rubyのためなら死ねる!
>るびきちの誤爆もかなりwarata

ど う か ん で す
二人は付き合ってるの?


http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/54881
これで言われている、
|new regular expression engine (REE)
って鬼車?
>>663
そうなんちゃう?
つか、凄いこと言いまくっているね、そこ。

<matz (continued)> Don't fight with python people. And Perl people,
they will move to Ruby when Perl 6 comes out.

なんて、言っているし、、、強気だな〜。

それとwin32に関する質問とか多いな。
matzは興味なさそうだが、
Rubyが普及するにはwin32でどう使われるかは重要なのかもね。
と言う俺もwin32ユーザーなんだが…。
Ruby 本体の Windows サポートはかなり積極的に行なわれていると思うけどね。
VisuaRuby のような GUI ライブラリがもう少しこなれてくるといいのかなあ。
あー WideStudio が Ruby や Python に対応したね。
http://www.zoi.to/~zoi/widestudio/ml/200205-/msg00690.html

Windows に対応したらちょっと使ってみるか。
RubyはWin厨なんかに迎合する必要はないね。
なんか汚れていくような気がして嫌だし。
>>667
GUI独立ってことか?


@sorted_by_mtime=
 map{$_->[0]}
 sort{$a->[1] <=> $b->[1] }
 map{ [$_, -M $_ ] }
 @files;
670るびきち糞:02/11/07 10:04


irbsh
を 貶 し て く だ さ い 。




671ruby「に」翻訳した:02/11/07 11:22
>>669
sorted_by_mtime = files.map{ |f| [File::mtime(f),f] }.sort.map{ |i| i[1] }

Ruby 1.7:
sorted_by_mtime = files.sort_by{ |f| File::mtime(f) }
http://ruby-lang.org/ja/ml-topics.html

「Ruby関連メーリングリスト トピックス」

って最近更新がストップしているようですが、
同じような仕事を行っているページってあるんでしょうか?


うう、二重レススマソ…。
def strip_headers?
@strips;
end;

ソース見てたら最後に?がついてるんですけどこれ何ですか?
>>676
Rubyではメソッドの名前に使える文字の中に「?」があります。
おれとしてはいちいちセミコロンつけてるのが気になる。
=とか+とかも使えるのもすごいと思う。

>>664
http://www.rubycolor.org/r/200211a.html#05
だそうですよ。
679676:02/11/07 20:25
>>677-678
ありり。
何か文法かと思ってマニュアル読んでますた。
?とかだと検索も役に立たないよう(´・ω・`)ショボーン

> おれとしてはいちいちセミコロンつけてるのが気になる。
そういえば全部にセミコロンがついてる。
なんでだろ・・・。
当り前のことを今さらですが、Rubyは、すばらしい言語です。
ところが、あのコンピュータ界の癌細胞というべきアニオタの白豚Larryが作成したPerlは何でしょうか。
あまりにも、醜悪かつ悪質かつ脆弱ではありませんか、欠点だらけで、もはや言語としての体をなしていません。
また、Perlコミュニティの対応は、完全秘密主義かつ傲慢ではないでしょうか。
できれば、Perlような粗悪品を使いたくはありません。
しかし、まわりを見渡すとみんなPerlです、そうなると粗悪品を使わざるえないです。(特に仕事ですと)
なぜでしょうか?
Perlは、書籍の数が多いのです、簡単に使えるのです、たいしたことをしなければですが(わら
Perlは、Linuxでいえばタコ以下の人々に広く使われているのです。
Perlユーザを嘲弄し、排除してゆくのがわれわれRubyistの務めではないでしょうか?
そのための場として2chにおいて長らく活動してきた結果、「Perlは糞」
「Ruby以外の言語は糞」という認識は定着し始めてきたように思います。
同時に、GUIがなければ何もできない窓厨房の玩具であるDelphiスレッドにも執拗な攻撃を加え、
Delギコという生意気な固定を追い出すことにも成功しました。(かなり前ですが

これからもRubyの輝かしい未来のために活動を続けて行きたいと思いますので、さらなる声援と愛顧をお願いします。
>>677
? のほかに ! も使えますが、これらはメソッド名の末尾にしか使えないですよね?
>>681
その通り
>>680
Ru..Why? 今なんていったんだい?RPG?
>>681
? は boolean を返すメソッドに、
! はレシーバを変更する破壊的メソッドにつける。
ただし、String#sub! に対する String#sub ような
破壊的でないバージョンを用意している場合に限る。
>>678
結構このスレ、色んな人に見られているのね…。
あまり、下手な発言できんな…。
>>684
>ただし、String#sub! に対する String#sub ような
>破壊的でないバージョンを用意している場合に限る。

そんなのビミョースギ
def foo() o = dup ; o.foo! ; o end するときはむしろ foo! が先だし。
「foo!はfooより破壊的」ってことがいいたかったのね。
>>686
!はやや危険なカホリのするものにつける
688デフォルトの名無しさん:02/11/08 12:05
読んだらビックリさせられるメソッドには!をつける
よくわかんないメソッドには?をつけて、定義の最後にtrueといれる。
>>687
eval!
exit!も危険なカホリ〜ン

つか、最近は!でないメソッドも速くなってきていて、
後はGCを改良したら、
!なメソッドの速度面のメリットがほとんど無くなるって聞いたんだけど、
ほんと?
>>691
まぁ、目指してはいる。

ちょっとケの生えてるメソッドには!。
ruby-listで
ruby2とVMの話題や議論(?)を少し読んで見たいのですが、
なんかキーワードが引っかからないんですけどぉー

なんというキーで検索すればいいのでしょう?

Rite

list ではほとんど話題になっていないよーな。
1.x 系を枯らす方が優先なのかな。
listで開発版つーか未発表版の話題が少ないのはしかたないのでは?
devかtalkへ行きなされ>693
696デフォルトの名無しさん:02/11/09 20:06
Rubyは書籍の数ではPerlを超えた!!!!!!!
万歳!!!!!!!!!!1
>>696
超えてません。以上。
別に超えなくていいから、良質の本を出して欲しいものだ。
RHGとか王道編には期待してるんだが。

金光が関わってると思うと鬱。
少なくとも金光が書いた本はカウントしないでくれ。
RHGとは?

あほな質問、スマソ
701デフォルトの名無しさん:02/11/09 22:41
金光ってそんなにヘタレなのか?
その語録を教えて欲しいんだが。
>>702
踏むな
>>700
http://www.loveruby.net/ja/hack/guide.html
これの書籍版のことだろう。
>>701
ruby-list. たくさんありすぎ。

WinXPにActiveRubyScriptを入れています。
ExcelのVBAからc:\test.rbを実行する方法を、
どなたか教えて頂けないでしょうか。
あおのすぉpqhrくぇr
>>699
金光は書いちゃいないだろ。



あぁ。コンパイル結果を延々と載っけていた本はあったっけ。
RHGっていつ発売?
711デフォルトの名無しさん:02/11/13 21:01
これより簡単な書き方ないですか?
n = hash[foo]
if n == nil
n = hash[foo] = MyClass.new
end

n = hash.fetch(foo){|key| hash[key] = MyClass.new }
>>711
n = hash[foo] || (hash[foo] = MyClass.new)
これはだめ?
n = hash[foo] ||= MyClass.new
714デフォルトの名無しさん:02/11/17 04:36
rubycentralってどうなってんの?
Rubyのページの英語版にrubycentralについて書いてあるよ。
DNSが問題があってうまく行かないらしい。
直接IPアドレスで逝けってさ。
ルートサーバの移動と関係あるかな?
http://www.hotwired.co.jp/news/news/technology/story/20021108303.html
717デフォルトの名無しさん:02/11/17 23:18
Rubyで、質問があります。
Rubyで数秒間処理待ちをしたいのです。
1.ネットワーク経由で端末Aに信号を送る。
2.数秒おきにその実行終了を確認しに行く。確認できるまで繰り返し。
3.次の処理を行う。
といった具合にです。
ただのループで実装すると負荷が大きいので他の手段を考えましたが
判りませんでした。いい方法ってありますか?ちなみにプラットフォ
ームはWin2KでCygwinで利用してます。
ぽll
>>717
> Rubyで数秒間処理待ちをしたいのです。
sleep

> 1.ネットワーク経由で端末Aに信号を送る。
> 2.数秒おきにその実行終了を確認しに行く。確認できるまで繰り返し。
何の実行終了? 端末は実行はしないだろう。
720デフォルトの名無しさん:02/11/18 06:40
>>719
どもー。感謝です。
端末に常駐プロセスを置いて、ftpを間にかましてI/Fにファイルの有無と
かを用い、再起動を多端末に掛けていくってなです。原始的で危なかっし
くてかっこ悪いですが・・。
pingが切れる→復活するのを待て。ってやりたいなと。

もひとつお尋ねしたいんですが、常駐ってのはどうしてますか?考えたのが、
1.ただのループ
2.他のプログラム(cronとか)から起動。
です。
Ruby的にクールな、もしくは当たり前な方法ってのはどんなんでしょうか。
                                        . :    ,ノ キ、 : .
                          -----‐=========´,.  , ==
                     ,. -- .、                  ,./  !|l´. :
                      ,r:':;ノレヘvヽ                   ,.r'.::1   i l|
                  /;:::f (0  r;'i::!               ,.r'´:::::::;!  i |l
                 ,i:i::::l.  ,....,~'゙i:!            ,r.'´:::::::::::::i   l' l|
                     ,!::!:::l   '、,ノ ノ:l          ,.-'´::::::::::::::::;r'゙  ,' |l
                /;::l::::ト、'┬::':´::l        ,.r'´::::::::::::::::::::::::i   /  ll
               /´`i,:i,:::! /'ヾ;、i;:::l       ,.-'´:::::::::::::::::::::::;:- '゙   /   .ll
             ,ノ    !:ヾ!´;;;;l.!;;;;;}::;!   ,.-'´:::::::::::::::::::::::::::::/     /   l!
             ム-.、   /;;;;;;;;;;;;;l !;;;;;;;ヽ,.-'´:::::::::::::::::::::::::::::;:- '   , '    l
            ,}'´   ヽ/;;;;;;;;;;;;;;;;;l,l;;;;:-'´:::::::::::::::::::::::::::::::::;f´    , '       !
            /    /';;;;;;;;;;;;;;;;;;;;-'´::::::::::::::::::::::::::::::::;;;;;ノ    ,:'
          /    ,i゙ ;;;;;;;;;;;;;;:-'´::::::::::::::::::::::::::::::::::;f´       /
         /     ! ;;;;;;;;;-'´:::::::::::::::::::::::::::::::::;:- '゙       /
         /    ./. ;:-'´:::::::::::::::::::::::::::::::::;;;ノ      ,. '´
        ,/     ./-'´:::::::::::::::::::::::::::::::::::ノ´      , '´
>>720
> 端末に常駐プロセスを置いて、ftpを間にかましてI/Fにファイルの有無と
> かを用い、再起動を多端末に掛けていくってなです。原始的で危なかっし
> くてかっこ悪いですが・・。
> pingが切れる→復活するのを待て。ってやりたいなと。

端末=クライアントってことかな? 再起動ってシステムごと?
どういうことを意図してるのかいまいちよく分からないんだが。

> もひとつお尋ねしたいんですが、常駐ってのはどうしてますか?考えたのが、
> 1.ただのループ
> 2.他のプログラム(cronとか)から起動。
> です。
> Ruby的にクールな、もしくは当たり前な方法ってのはどんなんでしょうか。

どっちでもいいんじゃん。運用形態次第かな。ruby-talkなんかだと、何日も
動かし続けたらバグを見つけた、なんていってる猛者もいるようだが。

漏れ的には、cvsup->compile->installしたら全部立ち上げ直しなんて面倒な
ので、同じプロセスがずっと居座ってしまうのは避けたいけど。
723デフォルトの名無しさん:02/11/18 12:38
クラスの名前って動的に取得できますか?
ObjectSpace.each_object{|i|p i if i.type == Class}
>>723
あるクラスklassの名前ならklass.name。

>>724
それは名前の取得とはちょっと違うし、each_objectの引数を使ったほうがよい。
ObjectSpace.each_object(Class) {|i|p i}
726デフォルトの名無しさん:02/11/18 20:40
RHGの出版社ってどこ?
予約できるの?
作者のページ見てたら、あんまり出回らないかもとか
書いてたから確実に入手したいのですが。
<http://direct.ips.co.jp/book/Template/Goods/go_BookstempGR.cfm?GM_ID=1721&CM_ID=&SPM_ID=1&HN_NO=00400&PM_No=&PM_Class=>

<http://www.loveruby.net/~aamine/ja/tdiary/20021116.html#p04>

「やまだあきらさんのツッコミ」ってどこだったっけ。読んだ覚えはあるんだが。
Rubyだけで書かれたブロック崩しキボンヌ
730デフォルトの名無しさん:02/11/21 18:38
モジュール内で、そのモジュールが提供するメソッドだけ
から呼び出せるサブルーチンのようなものを作りたいのですが、
メソッドの可視性はどうすればよいですか?

module Foo
 def foo
  puts 'foo'
 end

 def bar
  foo
 end
 module_function :bar
end

というモジュールで Foo::bar とやれば 'foo' が出力され、
Foo::bar という呼び出しはできないようにしたいのです。
どのスコープで
>Foo::bar とやれば 'foo' が出力され、
どのスコープで
>Foo::bar という呼び出しはできない
の?
>>730
Foo::fooが呼び出されないようにしたいんだよね。(好意の原理[principle of charity]に従って解釈…)
つまり、Fooモジュールの中以外からはfooメソッドにアクセスさせたくないと…。
それなら、これでどうよ?
module Hoge
  module_function
  def moe
    puts "moemoe!"
  end
  def hero
    moe
  end
  class <<self
    private :moe
  end
end

Hoge.hero
begin
  Hoge.moe
rescue Exception => e
  puts e
end
-----------------------------------
moemoe!
private method `moe' called for Hoge:Module

うーん、何か違うような…。
733730:02/11/22 09:52
説明がヘタですみません。>>732 のようなことをやりたいわけです。
確かに >>732 のような書き方で実現可能ですが、それって、
特異メソッドにしてる、ってことですよね?
なんとか、もうちょっとすっきりとは書けないんでしょうか…。

『オブジェクト指向スクリプト言語 Ruby』P.189 によると、
private メソッドは

 - レシーバを省略した形式でしか呼び出せない
 - 関数的に使われるメソッド
 - 一般公開しない作業用のメソッド

とあるので、まさにこれだぁ、と思ったのですが上手く行かない。

そのモジュール内のメソッドが共通に使える作業用関数的なメソッド
なので、Foo::foo という形で外に見せたくないのです。
もう、見えちゃっていいじゃん。
減るもんでもないし。
735730:02/11/22 15:59
>>734
まぁ、そうなんだけど(^^;
class だと private で上手くいくのに、module だとダメなんだなぁ、
と思って。
>>730 だと bar が Foo のインスタンスメソッドでもあるけど、
その必要はあるの?
その必要がなくて、Javaでいうところのstaticメソッドでありさえ
すればいいなら、

module Foo
class << self
def foo
puts 'foo'
end
private :foo

def bar
foo
end
end
end

でいいんじゃないの?

多分クラスメソッドと特異メソッドを誤解していると思う。
Rubyのクラスメソッドは、そのClass or Moduleの特異メソッドだよ。
738デフォルトの名無しさん:02/11/23 11:09
str = "It is automatic potato"
match = Regexp.new(/uto|ati|ato/)

というような条件で、正規表現にマッチする t の位置を知りたいのですが、
どうすればよろしいでしょうか。
上の例では、9,13,21 です。
たまに
for i in 10

ensure
 ...
end
とか書きたくなる。begin/endブロックなら
defだろうがforだろうが全て統一的に書けたのにね。
>>738
MatchData#begin(n)
741738:02/11/23 19:35
>740
情報ありがとうございます。
以下のようにやって、とりあえず目的は果たせたのですが、
なんか、一括してやる方法がありそうです。
もしご存知でしたら教えてください。

str = "It is automatic potato"
/(uto)/ =~ str
puts $~.begin(1)
/(ati)/ =~ str
puts $~.begin(1)
/(ato)/ =~ str
puts $~.begin(1)
/uto|ati|ato/ は uto ati ato のうち_どれか一つ_にマッチングさせる正規表現だよ。

pat = ["uto", "ati", "ato"]
str = "It is automatic potato"
pat.map{|i| str.index(i)} #=> [7, 11, 19]
あるいは。
/(uto).*(ati).*(ato)/ =~ str
Regexp.last_match.begin(1)
Regexp.last_match.begin(2)
Regexp.last_match.begin(3)
744738:02/11/24 06:16
>742,743
どうもです。
正規表現はそれだけで一冊の本が書けるわけだ、と思いました。
使いこなせるように勉強します。
745738:02/11/24 09:47
たびたびすみません。

puts "automatic".scan(/((au|ma)t[io])/)で
auto
au
mati
ma
とマッチしますが、
auto と mati だけにマッチする方法はあるでしょうか。
/auto|mati/
じゃだめ?

自動ジャガイモってなんなんだ・・・・
747738:02/11/24 18:34
745の例だと、マッチさせたいのは二箇所だけなので手間ではないのですが、
実際は t より左側の部分を複数指定したいのです。
全ての組み合わせを記述するのは面倒でやだなぁ、という状況です。

puts "caution automatic potato action".scan(/((ac|po|ta|au|ma)t[io])/)
auti
au
auto
au
mati
ma
tato
ta
acti
ac
で、au, au, ma, ta, ac にはマッチしてほしくないのですが、
そうすると以下のように書くしかないのですかね。
puts "caution automatic potato action".scan(/acti|acto|poti|poto|tati|tato|auti|auto|mati|mato/)
auti
auto
mati
tato
acti

あ、ジャガ芋は気にしないでください。
今日はカレーでした。
>>747
puts "caution automatic potato action".scan(/((?:ac|po|ta|au|ma)t[io])/)
>>747
本当は何をしたいのか、すっかり全部話してごらん?
>>748
puts "caution automatic potato action".scan(/(?:ac|po|ta|au|ma)t[io]/)
全体を囲む括弧はいらないかな。

最初(?: )を知らなくて
hoge = []
"caution automatic potato action".gsub(/(ac|po|ta|au|ma)t[io]/){|x| hoge.push x}
puts hoge
なんてのを書いてしまった。
751738:02/11/25 05:59
>750 (?:)が使えるとは気づきませんでした。ありがとうござます。

実は、英語の発音変化を表示するプログラムを作るのが目的です。

例えば、母音に挟まれた t は音が変化するのですが、
automatic の t は母音に挟まれていて、音が変化します。
けど、caution は単語だけ見ると uti で t が母音に挟まれているようですが、
実際は、tio の部分は子音で、t の音がそもそもありません。
というわけで、発音辞書を参照する必要があります。
その発音辞書は、
automatic => AO2 T AH0 M AE1 T IH0 K
caution => K AA1 SH AH0 N
というような書式になっています。(数字はアクセント)

で、やっているのは、母音に挟まれたt というパターンに
AO2 T AH0 と AE1 T IH0 の部分がマッチするので、
この t は音が変化するということです。

今は単語内だけを見ているのですが、次の課題は文全体も見ることです。
It is automatic
という文だと、It is の t も母音に挟まれています。
で、2, 9, 13 と t の位置を得たいわけです。

発音辞書では
It => IH1 T
is => IH1 Z
automatic => AO2 T AH0 M AE1 T IH0 K
となっています。
752730:02/11/25 11:17
>>736
> >>730 だと bar が Foo のインスタンスメソッドでもあるけど、
> その必要はあるの?

module はインスタンスを持てないので、Foo のインスタンスメソッド
ってのは無いと思っていたのですが、違うのでしょうか?
class に include された場合に、その class のインスタンスメソッド
として利用可能、という意味でしょうか?
>>752
> class に include された場合に、その class のインスタンスメソッド
> として利用可能、という意味でしょうか?
そう。あるいはextendされたインスタンスの特異メソッド。
Rubyで巨大なHashを使いたいんだけど、どうするのが簡単でしょうか。
大きさはギガバイトクラスです。普通にやったらスワップしまくりで使い物に
なりませんでした。ディスクにマップして、適度にキャッシュしてくれるものが
あると良いのですが。
>>754
Ruby/Cache を参考にしてみたら?
756デフォルトの名無しさん:02/11/26 14:50
文字列をキーとした Hash を読み取り用メソッドとして定義したいです。
例えば、以下のようなクラスなんですが

class A

def initialize
@hash = {}

i = 0
['a','b','c'].each { |k|
hash[k] = i+=1
}
end

end

これを、以下のクラスと同じように動くようにしたいです。

class A

def initialize
@a = 1
@b = 2
@c = 3
end

attr_reader :a, :b, :c

end

何かよい方法ありますか。
>>755
あるいはキー数からして巨大ならdbmとか。
>>756
class A
%w[a b c].each {|k| eval "def #{k}; @hash['#{k}']; end"}
end
>>756
ちょっと重くなるが、method_missingを再定義するって手もある。
class A
#......initializeなど
def method_missing(methId)
@hash[methId.id2name]
end
end
この場合、初めからhashのキーにシンボルを使った方がいいかも。
あとは、自分でエラーとかを用意しろ。
>>759
キーをシンボルにしていいならOpenStructを流用するってのは。

require 'ostruct'
class A < OpenStruct
def initialize
super(:a=>1, :b=>2, :c=>3)
end
def to_hash
@table
end
end
Perlもできるけど敢えてRubyで書くときってどんなとき?
このスレの人はRubyしか使わない?
すぐにメインがRubyになって、Perlの方が「敢えて」になる。
んでたまにしか使わないもんだから色々忘れてて時間がかかる。
763759:02/11/28 05:48
>>760
そんなのがあったのね…。しらなかった。
まあ、ostruct.rbをみると同じ事をやっているだけだから、
流用せずに独自でやるならostruct.rbのソースを参考にしてみて下さい。>756
764 :02/11/29 12:17
Ruby/GtkでTextウィジェットに色を付けたいんだけど、
スタイルで背景色を指定しても枠しか色が変わらないでつ。
text.insert(フォント, 前景色, 背景色, 文字列)で色をつけても、
文字列の部分だけしか色が変わらないぽ・゚・(ノД`)・゚・

まだ実装されてないっぽいけど、Gtk+2のGtkTextViewみたいなことがしたいけど、
自分でクラス作らないと無理ぽ?
ttp://www-6.ibm.com/jp/developerworks/linux/020315/j_l-gnome1.html#10
765738:02/11/30 05:34
Hashに項目数120000, サイズが3.5Mのテキストファイルを
登録しました。
これを、プログラムを起動するたびにHashに登録するのではなく、
Hashをファイルなりに保存して起動時に読み込むということは
可能でしょうか。
767738:02/11/30 07:55
>766
情報ありがとうございます。

当方、ActiveScriptRuby を使っていますが、
require 'dbm' に対して、
1:in `require': No such file to load -- dbm (LoadError)
なるエラーが出ます。

ざっとWebを調べたのですが、もしかすると
Windows でサポートされてない機能なのではないでしょうか。
>>767
ruby 1.6.7 (2002-03-01) [i686-cygwin]
では、ちゃんと動いたよ。
バージョンが古いとかはないか?
それか、mswin32版とcygwin版の違いというのもあるかも知れない。
ActiveScriptRubyじゃなきゃいけない理由がないのなら、
制限が少ないcygwin版を使った方がいいかも。
>>767
require 'sdbm'じゃどう?
Marshal使ったほうが良いんじゃ?
>>739
提案してみれば?

do/endでもrescue/ensureを使えるようにしてほしいってのがrubygardenにあっ
たけど、あれもどうなってるんだか。
>>770
データが結構大きいから、Marshalで読むのもやや重いような気がするんだが。
>>772
3.5Mぐらいならたいしたことない。
って思うけど。
120000件のほとんどをランダムアクセスとか、他には大したものが動いてなく
て一度読み込んだらずっとプロセスが動いてるとか、メモリが余りまくってる
とかならHashがベストなんだけどね。
まぁ使い方次第。
775738:02/12/01 14:55
>768
cygwin版Ruby DBM が動くことを確認しました。
でも、cygwin版だと win32ole や Exerb が使えないようですね。
あちら立てればこちら立たずです。
>>775
GDBM Library (Win32 Port) <http://www.roth.net/libs/gdbm/>
いれてext/dbmとかext/gdbmコンパイルしてみれば?
777738:02/12/01 15:27
775の書き込みの時、更新していなかったので769以降を見ていませんでした。

>769
おぉ、さくっと動きました。ありがとうございます。
リファレンスマニュアルに、
>SDBM
>DBMと同じですが、外部のライブラリに依存しないのでどの環境でも実行できるという利点があります。
とありますね。

誰かの参考になるかもしれないからコードを書いておきます。

require 'sdbm'
text=open("C:\\ProDic.txt")
prnDct = SDBM.open("ProDic")
while line = text.gets
element = line.chop.split(/,/)
prnDic[element[0]] = element[1] << "," << element[2]
end
prnDct.close()
text.close

>770, 772-774
Marshal ですか。いろいろ勉強になります。
>>777
> element = line.chop.split(/,/)
> prnDic[element[0]] = element[1] << "," << element[2]

element = line.chomp.split(/,/, 2)
prnDic[element[0]] = element[1]
mswin32 でも sdbm は使えると思うけど。
dbm/gdbm が使いたいなら mingw32 版かな。
780779:02/12/01 15:51
すまん。ログ更新しないで書いた。
781デフォルトの名無しさん:02/12/02 17:41
おい!1.8はいつ出ますか?
来年のクリスマス
1997/12/25 1.1b3
1998/12/24 1.3
1999/12/25 --
2000/12/25 1.6.2
2001/12/25 1.6.6
2002/12/25 なんだろう?
>>783
この分だと1.6.8正式リリース。
ファイルパスを受け取るメソッドは ~ をなぜ展開してくれないんだろ。
File.exist?(File.expand_path("~/foo.txt"))
とかめんどくさいんだけど。
実際に"~"というディレクトリがあるときに困るから。
>>786
実際やってみたら ~ ってディレクトリ作れるんだなぁ。
まぎらわしいから作れなくていいのに。
>>787
どの環境で試してるのか知らないけど、WindowsなんてSFNで~使いまくりですが。
>>785
shellが、もしくはユーザからの入力を受け付ける時点で解釈すべき
もので、その後は考慮すべきではないから。
鬱だ春菊sage
Ruby では双曲線関数(ハイパボリックサインとか)や
逆双曲線関数は使えないんでしょうか?
自分で作らないといけないんでしょうか?
>>791
1.7 だと Math モジュールに入ってる。
1.6 だったら自分で書いて追加したら。
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Math
793791:02/12/06 15:39
>>792
そうします。ありがd。
>>792
shimにあるかと思ったら、ないな。
shim って何?
>>789
*nixよくわからんけどさ、つまり、
>>785みたいなニョロ付きのパス指定は、shellの入ってない
アカウントではやっちゃいけないってこと?
それともその場合はデフォルトで立ちあがるshellみたいなのが
あるのかな?
>>795
1.7 early access kit
http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/shim/
下のほうにzipアーカイブのリンクもある
>>796
アカウント? ユーザが存在すればshellの指定は関係ないが…。

~(チルダ)指定は元々shellの機能だから、コマンドラインで渡すときにはすで
に展開されているもの。
内部的に使いたいときには、>>785のようにFile.expand_pathを使う。
799RHG発売記念age:02/12/10 13:35
買ったヤシいる?
レビューきぼんぬ
800!
>>799
知らない間に、また何冊か本が出てるな。
RHG, The Ruby Way日本語版, eRuby本。
>>801
学生さんが書いた XML の本まで、、、
これらの本の中では、普通に ruby を使うんなら The Ruby Way を買うのが良いかな。
RHG はきちんと読んでないけど、読み物としてはなかなか面白い。こういう本は好き。
RHG、今日届いたのでちょっとだけ目を通してみた。
一言でいうと「すごい」。
ここまで綿密に書き込んでるとは、予想を上回っていた。
つーか、売れんのかこの本。
>>804
この本おもしろいねえ。しかし題材は ruby だが、一般 ruby ユーザ向けじゃ
ないな。むしろ C プログラマか、言語処理系を作っている人向きな気が。
>>805
うん、Rubyを題材にしたHacking Guideだな、あれはまさしく。
でもYahoo!でいきなり5位ってのは予想外に売れてる。
807Rubist@部長:02/12/12 18:14
ExcelをRubyから使うのよりDAOみたいなデータベースを扱うのできる?
金光クンによろしく言っておいてくれよ。
部長! 日本語で書いてくだちい。
Ruby MLじゃいまいち反応が薄いな… > RHG
まだみんな読み終ってないと思われ。
>>810
漏れもまだ読みきってない。密度高すぎだよこれ。
aokiさんって若いのですか?
プログラミング暦はどれくらいなのでしょう。

少し嫉妬しました。
>>812
若いでしょう。

Rubyで留年した大学生ってくらいですから。
監修者前書きに「著者はRubyがほぼ最初のプログラミング言語で、
パーサジェネレータのRaccがほぼ最初の自作プログラム」と書いて
ある。
新Rubyサイト赤過ぎて目が疲れる人の数→(88)
>>815
つーか、どこかしこに見え隠れするtDiaryっぽさがやるせない。
>>815
つーか、ruby-talk でも。。
>>816
s/どこかしこ/そこかしこ/
>>818
Rubyのスレなんだから、
sub(/どこかしこ/, "そこかしこ")
と書いて欲しいポ…
>818
(*゚▽゚)当たり前だろ
先週から、rubyの勉強スタートしました。

GNU calで3ヶ月表示(cal -3)して
cal -3 | sed "s/^\(.\{21,42\}\) \(`date +%_d`\) \(.*\)$/\1 ^[[44m\2^[[0m \3/"
でハイライト表示なのですが、
これをrubyでやる場合、どんなコードになるでしょうか?


参考:
% cat position.rb
#!/usr/local/bin/ruby
POS=15
while gets()
$_[0,POS]=$_[0,POS]+'|'
print $_
end

822デフォルトの名無しさん:02/12/18 16:12
tab_index = line.rindex("\t")
tab_index = 0 unless tab_index

tab を探して、無かったら 0 を返してほしいんだけど、nil が帰るみたいだ。
コレを一行でプログラムする手はないですか
823デフォルトの名無しさん:02/12/18 16:29
突然なんですがperlのプログラムをrubyのプログラムに
変換できる便利なツールなんてないですか?
Cをrubyに変換できるとかその逆でもいいんんですが・・・。
知ってる方いたらアド教えてください。
>>822
> tab_index = line.rindex("\t")
> tab_index = 0 unless tab_index

「||」を使えばいい。次のどっちか好きなほう使って。

tab_index = (line.rindex(/\t/) || 0)
tab_index = line.rindex(/\t/) || 0

質問とは関係ないとこだけど、文字列探索メソッドの引数には
正規表現を渡しといたほうが無難。実は正規表現にコンパイル
されます〜とかいうことがあるから。
>>822
tab_index = line.rindex(/\t/).to_i

>>821
> GNU calで3ヶ月表示(cal -3)して
> cal -3 | sed "s/^\(.\{21,42\}\) \(`date +%_d`\) \(.*\)$/\1 ^[[44m\2^[[0m \3/"
> でハイライト表示なのですが、
今日の日付をハイライトしたいってこと?

d = "%2d" % Time.now.day
IO.foreach("|cal -3") do |l|
 puts l.sub(/^(.{21,42} )(#{d})\b/) {$1+"\e[44m"+$2+"\e[0m"}
end
>>823
無理。

>>824
つか、\t で始まる文字列と \t がない文字列の区別がつかないような。
828821:02/12/18 20:39
>>826
どうもです!勉強になりました。
今、さらに勉強のため、
@2000/7/3は何曜日であったか?
AWEB上の7/3(火)という情報は何年のものか?
の機能をつ付け加えたものを考えています。
ところで、@のような機能は考え方としては

7月 2000
日 月 火 水 木 金 土
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

という出力から3をマッチさせて、上の「月」を出力する
という方法は一般的ですか?


ほかに簡単な方法ありそうですがどうでしょう。
ところでさー、明らかにすれ違いだけど、
------------
% cal 11 2 2002
使い方: cal [-mjyV] [日 月 年]
------------
の[日 月 年]の、「日」って何なの?

日まで指定できないよね?



>>828
> という出力から3をマッチさせて、上の「月」を出力する
> という方法は一般的ですか?
一般的ではない。

require 'date'
puts %w[日 月 火 水 木 金 土][Date.new(2000, 7, 3).wday]
そろそろ、赤狩りが必要なようでつね。
RubyでWideStudioな本でないかな。
833デフォルトの名無しさん:02/12/20 05:07
WideStudioがRubyもサポートしたとは・・・。
んで使用感はどうなんでしょ?
834デフォルトの名無しさん:02/12/20 06:43
突然で申し訳ないのですがperlのプログラムをC言語に変換出来るツールとかってありますか?
perlがRubyに変換できたらもっとうれしいんですが・・・。どーしようもない質問ですいません。
835デフォルトの名無しさん:02/12/20 06:47
ごめんなさい。上のカキコした者です。最近Rubyやりだしたんですが
どうも理解出来ずに・・・。C言語はそこそこ自信あるんで、もしそんな
ソフトがあればもう少しRubyも理解できるんじゃないなと・・・。
言い訳かな?
836デフォルトの名無しさん:02/12/20 06:53
たのしいRuby
http://www.amazon.co.jp/exec/obidos/ASIN/4797314087/
でも読めばいいんじゃないかのー。
最近RubyやりだしてC言語はそこそこ自信があるのと
perlのプログラムをCに変換する事に何の関係があるのだろうか…
彼から学んだのは、「ドイツ語にはドイツ語の約束事がある」ということでした。
この言葉の意味を広げると、ほかの言語から Ruby に移ってくる人への有用な助言になります。
Ruby には Ruby の約束事があります。Ruby に Perl と同じものを求めないでください。
Ruby は Perl ではないからです。また、LISP や Smalltalk と同じものも求めないでください。
ただし、Ruby にはこれら3つの言語と共通の要素があります。
まず、自分の予想どおりになっているかどうか試してください。
けれども、予想が外れた場合には(Matz が変更に同意しない限り)それが Ruby の決まりなのです。
>>834
perlcc

>>838
それ ruby-talk で見たような。
>>835
> C言語はそこそこ自信あるんで

君のその自信は単なる過信だ。
>>839
> それ ruby-talk で見たような。

最近のあのネタスレへのreplyの一つだったかと。
842デフォルトの名無しさん:02/12/20 15:47
どーしようもない質問なんですが、例えば
名前、住所、電話番号
名前、住所、電話番号
というデータが入ったtxtファイルがあって、そのファイルを読み込んで、
指定した名前に合っている人がいたら住所だけ表示とか電話番号だけ表示
したい時はどうしたらいいんでしょうか?
ファイルをオープンして読み込むところからよくわからないです。
名前があったらその一行を表示するプログラムは多分
$KCODE = "s"
str = ARGV.shift
reg = Regexp.new(str)
ARGF.each do |line|
if reg =~ line
print line
end
end
こんな感じでいいかと思うのですが・・・。よろしくお願いします。
843デフォルトの名無しさん:02/12/20 17:45
"hoge aaaaaa vvvvvv bbbbb"

このようにスペースで区切られた文字列を、最初のスペースで
二つに分けようと思います。

"hoge","aaaaaa vvvvvv bbbbb"

それで、下のようなコードを書きました。

str =~ /(\w+) (.*)/
cmd = $1
arg = $2

"hoge" のように、スペースが含まれない文字列の場合、
"hoge",""(もしくは"hoge",nil)のように分けたいのですが、
上のコードでは対応できません。
なにかスマートな書き方はありませんか?
>>843
if /\A(\w+)\s*/ =~ str
cmd, arg = $1, $'
end
>>843
str.split(/ /, 2)
846丸血:02/12/20 22:10
再度、rubyスレで聞きます。


谷口 腕太 タニグチ ワンタ 1977年生まれ

谷口 腕太,タニグチ ワンタ,1977年生まれ
に置換したいです!!!

"2つめの全角スペース"→","
"4つめの全角スペース"→","
という風に置換するにはどうすればいいのでしょうか?


そんなことできますか??

if(str == '谷口 腕太 タニグチ ワンタ 1977年生まれ')
 str = '谷口 腕太,タニグチ ワンタ,1977年生まれ'
end
a = "谷口 腕太 タニグチ ワンタ 1977年生まれ"
a =~ /([^ ]+ [^ ]+) ([^ ]+ [^ ]+) ([^ ]+)/
puts "#{$1},#{$2},#{$3}"

ひねりなし。
>>848
エンコーディングオプションを忘れないこと。
flag = ','
puts "谷口 腕太 タニグチ ワンタ 1977年生まれ".gsub(/ /){
flag = (flag == ',' ? ' ' : ',')
}
仕事で表計算をたくさんしなければならず、困っています。
この際だから、rubyでも覚えようかな……


現在の目前の課題は、
1997,00157
1998,00014
1998,00265
1998,00335
1998,17304
1999,00339
1999,00385
1999,00388
1999,00392
1999,17321
1999,17346
1999,2510109491313

1997,00157
1998,00014, 00265, 00335, 17304
1999,00339, 00385, 00388, 00392, 17321, 17346, 2510109491313
に変更することです。

これにはどのようなアルゴリズムが適当でしょうか?


>>851
バックトラック
>>851
table=readlines.map{|l|l.chomp.split(/,/)}
keys=table.map{|a|a[0]}.uniq
keys.each { |k| print "#{k},",table.select{|a,b|a==k}.map{|a,b|b}.join(','),"\n"}
ハッシュ大好き。
h={}
ARGF.each do |str|
  year, val = str.chomp.split(/,/)
  next unless year or val
  if h[year] then h[year] << val else  h[year] = [val] end
end
h.to_a.sort{|a,b|a[0]<=>b[0]}.each do |year, vals|
  print "#{year},#{vals.join(',')}\n"
end
>>852
それは違うだろ

古典的なやり方。キーブレークとかいうことが多いような。

k = nil
v = nil
while l = gets
 a, b = l.chomp.split(/,/)
 unless a == k
  puts v.join(",") if v
  v = [k = a]
 end
 v << b
end
puts v.join(",") if v
おまいらには失望しました
乗るなら早くするだよもん。乗らないなら返るだよもん。
>>846
http://pc.2ch.net/test/read.cgi/php/1037797479/575
丸血に餌を与えないように。
御礼もいえないようなので答えるだけ無駄。
859デフォルトの名無しさん:02/12/23 00:16
256倍の本
入道、王道、番外編っていつでるの?
>>855
そう書くと後から順番ばらばらなデータが持ち込まれて泣く泣く書き直すことに・・・

って五分もかからないんだけどさ。
sort を通せばいいだけじゃない
オンメモリでログ解析は不味いだろ。
>>854
配列のハッシュとpush使えって。
>>854,863
1.7限定になるが。

h = Hash.new {[]}
ARGF.each do |str|
year, val = str.chomp.split(/,/)
next unless year or val
h[year] <<= val
end
h.sort.each do |year, vals|
print "#{year},#{vals.join(', ')}\n"
end

あとHashもEnumerableなのでto_aする必要はないし、キーが一意なことは保証
されてるからブロックも不要。
あと、valsのカンマの後には空白が入るのな。最初気づかなかった。
865デフォルトの名無しさん:02/12/23 07:47
yieldってもしかすると、schemeでいうlambda渡しみたいなもんですか?
866perl素人、rubyダメポ:02/12/23 10:44
>>854
配列のハッシュのこと?こうかな?ruby書けません。
while (<>){
my($val,$year)=split /:/;
chomp $year;
push @{ $years{$year} }, $val;
}
for $year (sort keys %years){
print "$year,",join(", ",@{$years{$year}}),"\n";
}
>>866
> my($val,$year)=split /:/;
順序逆だよ。しかもなぜか区切り文字が変わってるし。
>>865
似てるけど違う。lambdaはブロックをオブジェクト化するための関数として別
にある。
869perl素人、rubyダメポ:02/12/23 11:44
よく判りませんが、pushで配列に貯めていく書き方は出来ないのですか?
ひらがなって、
1.あ、い、……か、き、……ら、り、……ん
2.あ、か、さ、た、な、……
3.お、こ、そ、と、の、……
のように、色んな抜き出し方があると思います。

単純すぎるのかもしれませんが、
ruby -e '"あ".upto("ん"){|x| print x, " " }; print "\n"'
のようにすると、「ぃ」とか「ゑ」とかまで出ます。

これらを微妙に調整することは出来ないのでしょうか?

あ行
か行
……
わ行
をrubyにはかせたいのですが……


>>870
下手な小細工より、テーブルで持ってしまうことをお勧め。
872870:02/12/24 09:54
そうですか
XP懐疑編読んでたら、2箇所ほどで Ruby が言及されてるね。
主要な開発手法/形態の概要を述べている章で、オープンソース開発の一形態として一節のスペースが割かれていた。
また、ユニットテストの概要とその普及度を述べている節で、
ユニットテストツールが標準添付されており、Rubicon なんてのもあると紹介。
特定のプログラミング言語について言及されている場面がほとんどない本なので、ちょっとびっくり。
>>868
block = Proc.new { |...| ... }
(define block (lambda (...) ...))
だと似てる?
>>874
ある意味似てるけど、Schemeだと関数の定義自体もそれじゃなかったっけ?
Rubyではそのblockはメソッドと全く同じように扱うことはできない。
876デフォルトの名無しさん:02/12/24 19:42
1.6.8リリースage
文法上、というよりは、用途として似ているか、といえばどうでしょう?
用途はどう使いたいかによるけど。
ローカル変数を共有するところなんかは、たぶん似てると思う。
ずっと ruby ばっかりやってて久しぶりに C をやったが、
関数から値が帰ってこなくて悩んでたら
return するのを忘れていた
>>879
;忘れない?
あーぁ
elif
else if
elseif
elsif
>>881
予約語はエディタでハイライトされるから、そんなに間違えることないんだけど。
最後に計算した値がそのままレジスタに載ってて戻り値に見えちゃって、
return抜けてるのにしばらく気付かなかったりするんだよな。
コンパイルは通るし。
インラインにしたりとか最適化するとバグが顕在化してしばらく悩む。
>>883
gccなら-Wreturn-typeとか
-Wall
886デフォルトの名無しさん:02/12/26 16:07
Visualu Rubyを使っている人はいますか?

以下のコードで、エディットボックスを左クリックすると、
クリックしたボックスに"clicked"が追加されるのですが、
ed2のボックスをクリックしたら、ed1のボックスに
"clicked"が追加されるようにするにはどうしたらよいでしょうか。

require 'vr/vruby'
require 'vr/vrcontrol'
require 'vr/vrhandler'

class MyEdit < VRText
include VRMouseFeasible
def self_lbuttondown(shift,x,y)
self.text += "clicked"
end
end

class MyForm < VRForm
include VRMouseFeasible
def construct
addControl(MyEdit, 'ed1', 'ed1', 3, 3, 100, 60)
addControl(MyEdit, 'ed2', 'ed2', 3, 90, 100, 60)
end
def eb1_lbuttondown(shift,x,y)
messageBox "clicked"
end
end

VRLocalScreen.showForm(MyForm, 200, 200, 120, 200)
VRLocalScreen.messageloop
こんなんでいいかい? そのまんまだけど。
class MyEdit < VRText
 include VRMouseFeasible
 @out = nil
 def self_lbuttondown(shift,x,y)
  if @out.nil?
   self.text += "clicked"
  elsif
   @out.text += "clicked"
  end
 end

 def set_out(sib)
  @out = sib
 end
end

class MyForm < VRForm
 include VRMouseFeasible
 def construct
  ed1 = addControl(MyEdit, 'ed1', 'ed1', 3, 3, 100, 60)
  ed2 = addControl(MyEdit, 'ed2', 'ed2', 3, 90, 100, 60)
  ed2.set_out(ed1)
 end
end
888886:02/12/26 17:33
おぉ、素早いお返事ありがとうございます。

ところで、本家 VisualuRuby計画(仮称)以外で、
Visualu Rubyの参考になるサイトってありますかね?
889デフォルトの名無しさん:02/12/26 18:20
Rubyをインストールしたいんですがやり方がわかりません。
教えて下さい。
1.8 preview が出ましたけど、
1.6 から 1.8 にアップデートするときって、
サードパーティのライブラリ(site-ruby/1.6にあるやつ)はまた入れなおした方がいいんでしょうか?
単純に 1.6 を 1.8 にコピーするだけじゃダメですよね?
1.8ってなにがかわるの?
893デフォルトの名無しさん:02/12/26 20:32
Zopeみたいなの、Rubyにありませんかね。いまからPhython覚えるのもなぁ..

Warlusとか、生き残るかどうかいまいち信用ならんので。
eRubyレベルでしこしこアプリ書くのもしんどいし。

みなさん、Webアプリどうやって作ってますか?
PHPは?
>>891
1.8 にしかなかったり仕様が 1.6 とは異なる
・組み込みライブラリの機能
・C インタフェイス
がなければ単にコピーでもよい。
ま、インストールしなおした方が無難だが。

>>892
1.7 からスライドした安定系列が 1.8。ということでこれを読めばいい。
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=ruby+1.7+feature

>>893
Zope 並に整ったのはないね。IOWA もどうなったやら。
narf がこなれてくれば CGI アプリも書きやすくなりそうだけど。
http://sourceforge.net/projects/narf-lib/

>Warlusとか、生き残るかどうかいまいち信用ならんので。
それいったら Ruby も生き残るかどうか(w
>>895
IOWAはSmalltalkに移って、Seasideになっている。
作者はRubyに移植する気はあまりないらしい。

narfはcgi.rbのインターフェースの部分(HTMLの生成以外)は
良いけど、テンプレートのライブラリとしては疑問。
ruby-talkで言ってたけど、amrita + narfくらいが
良さそうかな(遅いけど)。

今のところWalrusがWebアプリのライブラリとしては
一番整っているだろうけど、個人的に
RDっぽい文法が好きになれない。
897デフォルトの名無しさん:02/12/27 10:36
dRubyもeRubyもそれぞれはすごくヨイと思うのだけれど、
それらをインテグレートしたソリューションみたいなのが
Warlus以外にも欲しい。
J2EEコンテナみたいな、Rubyコンテナがあれば
もっと企業でも使いやすいと思うんだけど……。

898デフォルトの名無しさん:02/12/28 00:29
visualu rubyで思い出したけど、
FormDesignerの更新って止まってるよね。
なにか他にいいRADツールある?
>>895
> 1.8 にしかなかったり仕様が 1.6 とは異なる
> ・組み込みライブラリの機能
> ・C インタフェイス
拡張ライブラリは全部コンパイルし直したほうがいい。
というか多分必要。

> 1.7 からスライドした安定系列が 1.8。ということでこれを読めばいい。
> http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=ruby+1.7+feature
ただし、1.8.0は開発版。1.8.1はまだまだ先と思われ。
900デフォルトの名無しさん:02/12/28 10:45
メソッド呼び出しの括弧省略ガイドラインってありますか?
Ruby覚えたての頃に作ったスクリプトでは括弧が省略できるのが、
なんとなくうれしくて省略してました。んでそのスクリプトを
改訂しようと考えているのですが、括弧をどうしようかなと思って・・・。

というのも、RHGを読んでいたら、Ruby2の予定のところに、
「ネストしたメソッド呼び出しの括弧の省略ができなくなるかも」といった感
じのこと書いてあったのですが、たぶん、↓みたいなのが廃止になるってこと
ですよね?たぶん。

Ruby2はまだ先のことですが、なんか慣例があればそれに従いたいなと思って。

def f x; print "f() = #{x}\n"; end
def g y; print "g() = #{y}\n"; y; end
f g 10
901デフォルトの名無しさん:02/12/28 11:11
Windows で Ruby から C:\hoge.exe を実行する方法はありますかね?
>>899
あれ?
1.8 系列は 1.8.0-1.8.2 の開発系列と
1.8.1-1.8.3 の安定系列になるんだったっけ?

>>902
system('c:/hoge.exe')
>>900
そだね。省略の規則としては、(省略したければ) 一番外側の
括弧だけ省略、でいいんじゃない。漏れは返り値を使わない
ときは省略、ということにしてるよ。

lvar = m(arg) # 省略しない
m arg # 省略する

lvar = m(m2(arg)) # 省略しない
m m2(arg) # 省略する

# メソッドの中では
def function
calc(arg) # 返り値が重要な場合は省略しない
end
lvar = function()

def procedure
print arg # 返り値が重要でなければ省略
end
procedure # 必然的に呼び出しでも省略することになる

>>903
> 1.8 系列は 1.8.0-1.8.2 の開発系列と
> 1.8.1-1.8.3 の安定系列になるんだったっけ?
いや。開発系列はずっと1.8.0。安定系列は1.8.1, 1.8.2, ...。
1.8.1が出た時点で開発系列は1.9.0に移行。
つまり開発版ではTEENYは0固定になる。
puts ' ' * 4 + 'hoge'
907902:02/12/28 16:37
>903
どうもです。
908893:02/12/28 20:32
>>895
情報どうも。narfを見てみたけど、unit testをやるためのものか。
amrita, warlusのサブセットとしてよさそうだけど、warlusとの関係は?作者は別?
909デフォルトの名無しさん:02/12/28 21:03
>>893

はっきりいって、ruby における Web 開発環境は壊滅状態。
そこらへんの解決策として Ruby + Eclipse + 各種プラグイン に求めたいなと俺は思ってる。
910909:02/12/28 21:33
開発環境というなら、他のスクリプト言語でも大体同じようなものだけれども、
(Macromedia Dreamweaver とか使うと、今のオープンソースなスクリプト言語を取り巻く
開発環境が以下に情けないか分かる)

基礎的な技術のほかに、それを便利に扱えるようにするためのツールも共にあってこそ意味があると
俺は思う。
911893:02/12/29 01:21
>>909
最近この手のML読んでなかったので助かる。
EclipseってIDEか。
うーん、IDEよりもWebアプリのコンテナというかプラットフォームが先だなあ。
いくらクリッククリックでプログラム作れても、
ソースがMVCごちゃまぜになるんではたまらん。

ちゃんとした標準ができるまで、
Amritaなどでなるべくシンプルに保っておくのが、自作業務アプリを長生きさせる秘訣かなあ。
Ruby自体はいい言語なのに、こんなところで Perl/Python/PHPに負けてしまうのは痛恨だ。

Ruby Webプログラマよ、団結しよう!
912デフォルトの名無しさん:02/12/29 11:22
>>911

微妙なのが、Amrita が最適な場合と、そうでない場合がある。Amrita で済ませられるものは全部 Amrita でやるのが
美しい感じはするけど、複雑な HTML を吐き出すなら ERB でやったほうがいい場合もある。

--

Amrita を単純にデータを動的にHTMLを書き出すためのツールとして利用しようとしたとき、
プレビューするのにいちいちスクリプト起動させなきゃならんのか、という話にもなっちゃう。

CGI インターフェース作ってプログラムすれば、即座にプレビューする環境も作れるけど、
何か一本貫いたコンセプトを持ったツールがあってもいいはず。(Dreameweaver 用の Ruby Extension 作るってのも、必要かも。)
>>912
amritaよりもeRubyの方が良いというのは具体的にどういう時?

もうひとつ。プレビューするにはeRubyでもamritaでも
スクリプトを起動せざるを得ないと思うんだけど、
912はどういう用途を考えているの?
Ruby/qt2 で日本語が表示できないよお。フォントの指定の仕方を教えて。
FreeBSD 4.7R で packages で入れた ruby-qt2 を使っています。
915デフォルトの名無しさん:02/12/29 18:39
>>912

俺の用途としては、フツーのホームページの作成で、それにちょっとしたデータを埋め込んで、HTML として書き出して
FTP でアップロード、みたいなことやろうかと思った。

(更新日時とか、メニューとかはどのページでも使うから BasePage クラスにソレを定義して、これを継承して各種
ページを定義して云々・・・とかやっていたんたけど、別にメニューとか更新履歴とか載せるだけなら Dreamweaver
でも余裕で可能だった。しかもそっちのほうが圧倒的に効率的作れると思った)
RDEってどうよ?つかVisual Studio.NETに組み込めたりしないの?
917デフォルトの名無しさん:02/12/29 22:03
>>916

やれるんでないか? Ruby IDE を組み込むだけなら。

しかし、それを阻む要因としては、やっぱ忙しいのかね。IDE に興味ある人ってのは。
>>916,917
無料じゃできない。
http://vsip.summsoft.com/vsi/
こんなのもあるが、大学か研究所用らしい。
http://www.msdn.microsoft.com/vstudio/vsip/
919デフォルトの名無しさん:02/12/29 23:17
>>918

マジかよ。Extension 作って感謝してもらいたいくらいなのに、金を取るとは。
(Visual Studio を利権の一つとでも考えているんだろうか。全く世の中を見誤ってるとしか思えん)

じゃあやはり、Eclipse の他手は無いな。
Rubyは.NET上でこそ最も効果的に使えると思うんだけどな。
ライブラリはMSに作らせてそれを簡単に使えればこれほどうれしい事はない。
>>914
うちではほぼ同じ環境で
setenv LANG ja_JP.eucJP
して、example の codec.rb を実行したらちゃんと漢字出てる。
LANGの設定がないと駄目。
>>920
移植性に欠ける。
artonとか言う人が言ってた
.NETライブラリを使うのはC#で十分。てかC#すげーって
924デフォルトの名無しさん:02/12/31 00:09
rubyを始めようと思いRDEv9.90をインストールしたんだが、
日本語できる風なのに思いっきり英語だったので面食らった。
言語ファイルを外部に用意する必要があるのか、
それともデフォでオプションから変更できるのかおせーてくらはい。
925924:02/12/31 00:17
>>924
質問スレにするべきだったかも。
TranslationsフォルダにJapanese.xmlがあるから、
Option>other2のTranslationに、それを指定しる!俺
やっぱZOPEみたいなアプリケーションサーバーがほしい。。
ぅおるらすもいいけど、apacheの設定がめんどくさいでつ。

ZOPEまでいかなくても、ページじゃなくてサイト全体を管理する
アプリケーションが必要じゃない?
あむりたってページ吐くだけだよね?
>>926
WalrusはWebrickでも使えたと思う。
Webrickのほうは簡単に使えるらしい。

http://devel.p1jp.com/old/yawal/devkit.html
928926:03/01/01 03:54
>>927
おお。
そういえば前に噂を聞いたはずなのに、すっかりわすれていました。
ためしてみることにします。
ありがとう。
amrita使っている人教えてください。

&をサニタイズ(?)したくないのですが、どうするのでしょうか。
以下の参考になりそうな例があったけど、どう使うのか良く分かりません。

t = TemplateText.new '<p id="a">sample_text</p>'
t.expand(STDOUT, { :a=>SanitizedString["<xxx>"] })

文字列全体に対してやりたいのです。
930929:03/01/01 11:06
自己レスです。
ようするに、str="&hoge"に対して、
SanitizedString[str]とやれば良かったのでした。
>>926
Warlusの開発コミュニティってどれくらい大きいの?そもそもオープン?
なんかZopeみたいな安心感がないんだよな。
>>931
コミュニティとしては小さいと思う。
(でも、最初はどこも小さい。)
ひとりは商用のアプリケーションを作っているみたいだけどね。

ソースはGPLにライセンスされているから、オープンだけど、
GPL3が出たら、誤解されそうだな。

ところで、Zopeって安心か?
バージョンアップのたびに互換性がなくなるって話を聞くんだが。
(あと、2.6では日本語がぼろぼろらしい。日本の人が文句を
言って修正してもらっているところみたい)
Windows 2000 などのシステムログやアプリケーションログにイベントを書き込む
方法を教えていただきたいのですが。お判りになる方はいますか?
>>933
Windows API自体分からないというのなら、スレ違い。
APIとしては分かるけどRubyでのやり方が分からないというなら、
CかC++のサンプルコードを示してくれ。
require 'win32ole'
wsh = WIN32OLE.new("WScript.Shell")
wsh.logEvent 1, "エラーだよ"
#1 .. エラー, 2 .. 警告, 4 .. 情報
936933:03/01/04 01:37
WSHのスクリプトエンジンとして使っているので単純に
WshShell = WScript.CreateObject("WScript.Shell")
WshShell.LogEvent(0, "OK")
でいけました。
937デフォルトの名無しさん:03/01/05 17:55
system("c:\hoge.exe")でファイルを実行できることを学びましたが、
Windowsの関連づけ実行をRubyからする方法はあるでしょうか?
tako.html をタブブラウザで見たいです。
一番単純なのは
cmd.exe /c tako.html

でなきゃ Win32API で ShellExecute
939937:03/01/05 19:13
>938
ありがとうございました。
940デフォルトの名無しさん:03/01/06 10:01
http://sourceforge.net/projects/rubyeclipse
に、RubyのEclipseプラグイン(RDT:Ruby Development Tool)の
プロジェクトがあるんだけども、最近動きがない……。

Rubyプログラマの皆さんでRDTを盛り上げませんか?

>>940
Eclipse対応(・∀・)イイッ!
盛り上がって欲しいけど日本ではWindows対応以上に
玄人受けのしなさそうなプロジェクトだなぁ・・・
942デフォルトの名無しさん:03/01/06 11:50
>>942
ダメかなあ。漏れは仕事ではJavaなのでEclipse使ってるんだけど、
この設計思想は(・∀・)イイ!と思ってRDTにも貢献したいんだけど、
Eclipse*の*開発ってちょっと敷居高いんだよな……。
GUIプログラミングはあんまり詳しくないし。
なので、ニッポンのRuby強者の降臨を待ちつづける日々です。
(自分でも少しずつ勉強はしてるんだけど)
942の一行目は>>941だった。鬱死。
eclipseには個人的には盛り上がって欲しいが、
その可能性は低いと思う。
日本でのeclipseの知名度って(Java以外のIDEとしては)そんなに
高くないと思うんだけど。

ruby-talkではFreeRIDEのRich KilmerかCurt Hibbsあたりが最初に
eclipseのRubypluginを最初に作ろうとしていたんだけど、
途中でFreeRIDEに変わってしまった。
(ちなみに日本でFreeRIDEがまともに使われるようになることは当分ないでしょう)
それ以降ruby-talkではEclipseよりもFreeRIDEの方が主流
のような感じを受ける。

簡単なRubyスクリプトパーサーとデバッガがあるかどうかが
RDTのpointになる気がする。その辺をsupportできれば
SWTとEclipseの既存の機能を使って、良いIDEになる可能性も…。
945940:03/01/07 09:35
ttp://www.rubyide.org/cgi-bin/wiki.pl
をちょっと読んでみたんだけど、

> /PerspectiveFeature -- Implement eclipse-like perspectives.
とか
> * Plug-ins: the IDE should follow the Eclipse model of implementing features through plug-ins.
とか、他にもEclipseへの言及がみられたりして、
なんとなくyet another Eclipseな匂いもするけれど、この場合、
FOXで実装してるというのがRubyistの矜持か。

JavaでRubyのIDEを実装するというのは確かに隔靴掻痒かもしれないけれど……
RDTにきちんとしたRubyパーサとデバッガがないからその点キビシイ。
PHPなんかはEclipseでの開発環境も整っているだけに歯痒い思いしてます。
>>944
> (ちなみに日本でFreeRIDEがまともに使われるようになることは当分ないでしょう)
理由は?
>>946
日本語がろくに通らないから。
公式サイトの新デザイン、かっこ悪いと思うのは俺だけ?

技術系のサイトだから「デザインはそれほど気にしてない」という
スタンスだったらまだいいのだけど、カッコよくしようとして失敗した
という感じだから、どうにも痛々しいのだけど。
ちょっと前に新デザインに移行したと思ったら、
今アクセスしたら旧デザインだった。
戻したのか?
>>949
旧デザインではなくて、新デザインをすこし改良したのでは?
FreeRIDEのメインの開発者のCurt Hibbsは最初にEclipseの
Rubyプラグインを作ろうとしたんだから、
その影響があって当然だろう。

今のFreeRIDEはFOXのせいで日本語等が使えないので、
将来的に他のGUIツールキットに置き換わることになっていたはず。
(確かwxWindowsのバインディングをCurt Hibbsが書いていたはず。)

PHPって商用IDE(名前忘れた)のEclipseベースをしたものがあった気がするけど、
FreeのIDEはこれ?

ttp://webstudio.japansite.org/
>>951
FreeRIDEのgtk+バインディングがあるとかないとか、
どこかで見なかった?
次のスレはどうする?
次スレ

Ruby について Part 3
http://pc3.2ch.net/test/read.cgi/tech/1042004759/
955IP記録実験:03/01/08 21:39
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
ZAQ規制解除ヽ(´ー`)ノ
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。          
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
   
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm
  
ようするに上告しても今の制度では100%無駄。 これで完全終了ってことか。
 
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
記念カキコ
書き込まないのが一番という事で。               
961デフォルトの名無しさん:03/01/10 10:05
なにこれ。

>1 :ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ :03/01/08 17:13 ID:???
>そんなわけで、qbサーバでIPの記録実験をはじめましたー。

IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/l20

IP記録実験PART2
http://qb.2ch.net/test/read.cgi/accuse/1042020193/l20

これまでのあらすじは >>2-20 あたりに誰かお願い。
>>216
(=゚ω゚)ノぃょぅ
//|   /ヽ              /       ヽ
//|  |  ヽ            /          ヽ               /\
//| |    ヽ         /            ヽ     |\       /  \
//| |      ヽ       /              ヽ    |  \    /     \
// |        ヽ    /            |    |    |   \  /       \
/  |          ヽ  /          / \!    |    |    \/         \
/ | /\        V          /     ヾ、∠___|
/ ∠   \               /    _-― ̄`\
// | ̄ -ヽ  \           /  /  ̄|       \
// |  |  \ \    |   /  /   /       /  ハーハッハッハ!!!!
///|   ヽ、_  (\\_  |__/ /◯ _,.-'        /
/// | ._  ` ‐-‐' ヽ!.l|, l__/ヽ‐-‐‐'´   __,.   /      ザマあないな!!!!
////|   ̄=≡/ =i i= ヽ≡=== ̄     \
//// |         | 「       -┐        \         ひろゆきさんよぉ!!!!
//// |       /|       , ヘ        /ー \
/////|    __ヽ| ヽ    / /|       /  /
///// |    |‐--二二二二 =-イ  /       /  /     /|
///// |    Y´         `、/      /  /    /   |    /\
////// \   |          /     /  /  /      |   /  \
////////\  |         /     /  / /        |  /    \
/////////ヽ  !二二二二/    / /  //          | /      \
//////////ヽ   ━==    /   /              |/        \
///////////\_____/    /
//////////
ふぁーすと
せかんど
さーど
ふぉんど
ふぁいぶんど
■「T動物病院は削除ルールに従ったのか! 2ちゃんには削除ルールがちゃんとあるんだ!」
2ちゃん独自の削除ルールに従わねばならない法的根拠はありません。
また、2ちゃんの削除ルール自体、判決では不十分なものとされています。

■「名誉毀損を知りえた時点で削除しろなんて無茶苦茶だ!」
今回、T動物病院側は内容証明郵便でひろゆきに10日以内の削除要求しました。
2ちゃんの削除ルールに則らずとも、社会通念上においても、法的にも、これは十分な通知です。   
>>448
現在の仕様でもブラウザで閲覧可能ですが
リロードしてなかったですよ。


個人的には別に良いと思いますけど。
まとめの話とか勉強になるんじゃないかなぁって。
すでに移動されたようなのでこれ以上言いません。


逃げるほうです。
石川県 北國新聞より(30ページ)

県内児童の殺人予告
ネット掲示板「2ちゃんねる」に
県教委がが安全確保通知
今朝、保護者付き添い
悪質ないたずらか

 インターネットのフリー掲示板「2ちゃんねる」に石川県内の小学生の大量殺人を
予告する書き込みが9日までに見つかった。県教委は悪質ないたずらと見ており、
万一に備え児童の安全確保を促す通知を全小中高校に出した。各警察署も管内の
小学校周辺をパトロールする。
 県教委によると、殺人予告は「キラー」の名前で八日深夜から九日午前零時過ぎまで、
「あしたの朝、登校途中の小学生を狙って大量殺人を実行します。車で小学生に
突っ込むことも計画してます」などと五回にわたって記された。
 県教委の通知では、不審車両を見かけた場合は警察署に連絡するよう促している。
小学校の中には十日朝の登校時間帯に、教員や地域住民が通学路に立って
児童を見守るほか、保護者が児童に付き添うなどの警戒態勢を敷くところもある

このスレのIPとって訴訟するのだけは止めてくれよ。クチビルゲ。
http://aa.2ch.net/test/read.cgi/kao/1039731177/







うわっ何かクラックされて勝手に文章が・・・あ、さらにポインタが書き込みボタンに・・・あわわわ!!
俺もそう思う。高い金自腹で払って掲示板を運営してて
何処の誰かも知らん奴が勝手なこと書いた事によって
自分に火の粉が飛んで来たら、秘密を守ってやる義理は
ないよなひろゆきにしたら。
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
WinnyやFreenetを利用して超多段串の先から書き込めるようにならないかな…。
ログ公開が,司直の正当な要請のみによって行われるなら,
批判の対象となった団体が個人を特定することはできないでしょ。
内部告発リスクがありすぎるっての・・
出すだろう、当然。っつうか、今でも出してるんだろうよ。
荒らしで、もうすぐ沈みそう…。

とりあえず、次スレ

Ruby について Part 3
http://pc3.2ch.net/test/read.cgi/tech/1042004759/
北朝鮮も平和だよ
半角系板では、業者が書き込むとリモホが表示させられてるみたい
とりあえず、次スレ

Ruby について Part 3
http://pc3.2ch.net/test/read.cgi/tech/1042004759/
そろそろ
1000取りやってもいいですか?
まだまだ我慢
あ〜あ2ちゃんもこんなアホばっかになっちまったか
これも時の流れかね

もうだめぽ
つーか、すげー基本的なことなんだけど
「自己責任で書け」(^_^;)つーことやね。
何が大丈夫かどうかってのも、自己責任で考えましょう。
誰々が大丈夫って言ったからなんてー言い訳はもう通用しないんで・・・
↓ はい、それでは 1000 取りどうぞ
チョト(略
生け贄って何ぞや?
988
俺あしたどっかで何かするし。

地球上全部警戒しれ。
■基礎知識■

■「言論の自由はどうなった!」
言論の自由は、名誉毀損には適用されません。
批評・批判といった言論だと証明するのは、発言者の責任です。

■「最高裁があるじゃないか! 高裁差し戻しだ! 反訴しろ!」
最高裁は憲法に絡まない限り、受理してもらえません。今回の件では不受理はほぼ確定でしょう。
高裁差し戻しの可能性はひじょうに低いのはひろゆきも承知で、だから、最高裁にもっていこうとしています。
反訴についても、誰を訴えるかという特定が困難。これまた不受理の可能性がひじょうに大。

■「T動物病院は削除ルールに従ったのか! 2ちゃんには削除ルールがちゃんとあるんだ!」
2ちゃん独自の削除ルールに従わねばならない法的根拠はありません。
また、2ちゃんの削除ルール自体、判決では不十分なものとされています。

本当にそう、IP皆さん解ってる?
泉ピン子の略ってこと。
スマソ。良かったらオレにも教えてくれ。
オレも同じの付けて遊びたい・・・。
game鯖終わってるよ。
994山崎渉:03/01/13 18:38
(^^)
埋め
埋め立て。
埋め立て。
埋め立て。産め立て。
埋め立て。産め立て。生め立て。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。