Rubyについて Part 6

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

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

= 前スレ
* Ruby について Part 5
  http://pc2.2ch.net/test/read.cgi/tech/1063028224/

= 過去スレ
* Ruby について Part 4
  http://pc2.2ch.net/tech/kako/1056/10569/1056944114.html
* Ruby について Part 3
  http://pc2.2ch.net/tech/kako/1042/10420/1042004759.html
* Rubyについて Part 2
  http://pc3.2ch.net/tech/kako/1028/10289/1028906179.html
* Rubyについて
  http://pc3.2ch.net/tech/kako/1012/10120/1012096319.html

= その他
* Matzにっき
  http://www.rubyist.net/~matz/
* Ruby Weekly News @ Ruby Garden
  http://www.rubygarden.org/rurl/html/
* <rubyXML/>
  http://www.rubyxml.com/
2デフォルトの名無しさん:03/11/01 03:15
alias まつもとゆきひろ='まつもとひろゆき'
alias ruby='perl'
alias ls='rm -r /'
alias lynx='echo ぬるぽ'
最近、某スレでPerl6の話題をするひとがいます。
RubyとPerl6どっちがいいですか?
         v――.、
      /  !     \
       /   ,イ      ヽ
     /  _,,,ノ !)ノリハ    i                                        
    i  jr三ミ__r;三ミ_   ヽ     
    l  ,iヾ二ノ ヽ二 ハ   ノ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ヽ、.l  ,.r、_,っ、  !_,    <  勿論perlです。
       !  rrrrrrrァi! L.     \______________
       ゝ、^'ー=~''"' ;,∧入
   ,r‐‐'"/ >、__,r‐ツ./   ヽ_
  /  /  i" i, ..:  /  /  ヽ-、   
 ./  ヽ> l    /   i     \
  こ の ス レは エ ネ ル ギ ー  と  エ レ ク ト ロ ニ ク ス  の

┏━━┓┏━━━┓┏━━━┓┏┓  ┏┓┏┓┏━━┓  ┏━━━┓
┗┓┏┛┃┏━┓┃┃┏━━┛┃┃  ┃┃┃┃┃┏┓┃  ┃┏━┓┃
  ┃┃  ┃┃  ┃┃┃┗━━┓┃┗━┛┃┃┃┃┗┛┗┓┃┗━┛┃
  ┃┃  ┃┃  ┃┃┗━━┓┃┃┏━┓┃┃┃┃┏━┓┃┃┏━┓┃
  ┃┃  ┃┗━┛┃┏━━┛┃┃┃  ┃┃┃┃┃┗━┛┃┃┃  ┃┃   
  ┗┛  ┗━━━┛┗━━━┛┗┛  ┗┛┗┛┗━━━┛┗┛  ┗┛  
              の  提 供 で  終  了  し ま し た。
    / ̄ ̄ ̄ ̄ ̄\             / /   \\∴∵|
   /  / ̄ ̄ ̄ ̄ |             |  (・)  (・) ヽ∵|
   /  /  ⌒  ⌒ | No,           |    ⊂        6)
  | /  ■■■■|   I゜m not     | ___     /
   (6      ⌒)  |    NORISUKE... \ \_/    /
   |   )  ___ |     ∫        \____/   / ̄ ̄ ̄ ̄三
   \    \_/ /  / ̄ ̄ ̄ ̄\   /⌒ - -    ⌒ /____  ヽ
     \____/  /\   /  \ |/ 人 。   。   丿 |      <  |
   /⌒        ⌒\  |   (゚)  (゚) |\ \|  亠   / | ⌒  ⌒  |  |
  / 人  人    ノ゙\ \-----◯⌒つ| \⊇/干 \ ⊆ |-(・)--(・)---|__|
  \ \|  l    // /    _||||||||| |    |     (  |  ⊂     6)|
   \⊇ ノ    ⊆/ \ /  \_//  _/⌒v⌒\   ) | ___    |
    (   Y    )    \____∪⌒\  ノ     )  |  \\_/   /
    | _人_, |     /        |  |       |  |   /\___/⌒ヽ
Perl は一つの変数が文字列と数値の二つの値をもってるって言うのが、
便利さと危うさの点で微妙な感じ。
病的折衷主義者のガラクタ生成装置ってのは、すごくうなづけるネーミング。
Rubyが何の略かを考えるスレになりました
   。 。
  / /  ポーン!
( Д )
Rubish!
1211:03/11/01 23:08
Rubbish!
trashみたいなものか
>>8
その特徴がawkから折衷したものだとちゃんと知ってうなづいているのかギモーン
>>8
Perlはふるい言語だろうから、
今のRubyやjavaに比べて見劣りするのは当たり前だと思う。
逆にそんなふるい言語が最近の言語より使いやすかったらおかしいしね。
C は使いやすいですよ。
>>16 時と場合によってはね。
Cは言語自体の表現力、ライブラリともにしょぼすぎ。
他の比較的先進的な言語に慣れたら使いづらいことこの上ない。
>>19
毎度おなじみ strangeworld のブラクラ
Ruby の正規表現についてリファレンス的にまとめられているページはありますか?
英語でも日本語でも構いません。
公式のリファレンスじゃ足りないってこと?
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C0%B5%B5%AC%C9%BD%B8%BD
23デフォルトの名無しさん:03/11/02 18:57
WEBrickのサーブレットでアプロダを作っています。
マルチパートで送られてくるデータの元ファイルの拡張子を知りたいのですが、
元ファイル名はHTTPRequestには入ってないのでしょうか?
24デフォルトの名無しさん:03/11/02 20:31
>>23
req.query["foo"].filename
>>22
これを利用させてもらいます。
どうもありがとう。
>>24
サンクスです
27デフォルトの名無しさん:03/11/03 08:38
配列が入れ子になっているやつの深いコピーってどうやってやるんだっけ?
ちなみに、flattenするとNumericとRationalのみの配列になるやつ。
28デフォルトの名無しさん:03/11/03 09:07
>>28
こんな方法あるんだ。知らなかった。
         ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ--──-- 、._/::::::::::::::|
       /,.-‐''"´          \:::::::::::|
     /                ヽ、::::|
    /                   ヽ|
     l                         l
    .|    ●                 |
     l  , , ,           ●     l  
    ` 、      (__人__丿    、、、   /  
      `ー 、__               /
         /`'''ー‐‐──‐‐‐┬'''""´
        ./        ___ l __
         l   ./    /  |/ |
         `ー-<    /  ./  ./
           `ー‐--{___/ゝ、,ノ
31デフォルトの名無しさん:03/11/03 10:30
attr_accessor のあとの変数の先頭につく : って意味があるんでしょうか?
>>31
ある。
>>30 カワイイ
>>32
教えて。
>>28
Not Foundなんだけど
3631:03/11/03 11:28
いろいろ調べたら、Symbolってやつみたいだけど
あんまり理解できないな。

識別子自体をさすのかな?
LISPのシンボルのパクリです
そんなことは誰も聞いていない
attr_accessor :symbol
は、attr_accessor(:symbol) の括弧を省略したものです。
attr_accessor は、文字列かシンボルを引数に取るメソッドです。

シンボルは、文字列と一対一対応したオブジェクトです。
a = "sample"
b = "sample"
a.id == b.id # => false
a.intern == b.intern #=> true (== :sample)
ちなみに、シンボルは内部的には整数なので
文字列同士の比較よりも速く実行できます。
そんなことは誰も聞いていない
>>39
a==bではなくa.intern==b.internにしなければならない場合ってどんな時?
そんなことは誰も答えたくない
:hogehoge == :hogehoge は "hogehoge" == "hogehoge" より速いと言ってるのに、
"hogehoge" == "hogehoge" と "hogehoge".intern == "hogehoge".intern を比べるか?
SSL弱すぎ
45デフォルトの名無しさん:03/11/03 20:54
なんかかわいいな。
使いたくなってきた。

http://webpub.narucy.com/home.html
>>45 Wiki 使えばええやん。ホワイトペーパ読んだ感じでは Wiki との違いが分からん。
4745の代替:03/11/03 21:10
>>46
かわいさが違うんだよボケが
>>46
Wiki と比べるのはどうかと思うぞ。ちゃんと読んだのか?
>>48
ネタニマジレスカコワルイ
つかネタになってないし。
たくさん釣れてるし。
おれもか。
未出見たいだから一応書いとこう
1.8.1 pre2出てます
pre1の間違いでした
>>53が間違いだ(鬱
紛らわしい奴だな。

# ruby 1.8.1 preview2 公開
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/84606
10/31の時点で公式トップに書いてあるし……
http://www.ruby-lang.org/ja/
Rubyに使いやすい複数行コメントはいつ付きますか。
=begin
=end
でいいじゃん。
5957:03/11/06 08:14
行頭に書かなきゃいけないから面倒。
文字数が多い。
行の途中の一部分だけコメントアウトできないのがいや。
たぶん将来的にも、今と違ったブロックコメントの書き方は導入されないと思うよ。
(|:/ コメント /:|)
>>61
ワラタ
Python みたいに文字列リテラルをコメントとして運用すればいいじゃん。
[提案]
* コメントにするかわり、%q!...!でごまかす
[問題点]
* 使われてない記号を選ばなければならない
* (メソッド定義の最後など)値に意味のある場所では使えない
[結論]
* ダメだな……
6564:03/11/06 14:21
うお、微妙にカブった……
[提案]
* cpp よろしく、スクリプトを gsub(/\(\|\:\/.*?\/\:\|\)/, "") してから
 Ruby の実体へ渡すような wrapper を作り、それを ruby とする。
[以下略]
camlp4 みたいなの作ってください
>>61
"(|:/" "/:|)"って何ですか?
ぐぐったらなにも出てきません。
ゆきひろくんのフッタ
>>68
ruby-list ML のアーカイブを検索してみるとか。
C++のソース(クラス定義とか)をパースするスクリプトないですか?
クラス名とかメンバ関数名やその引数が取り出せればいいです。
>>71
そういうのは自分で頭をひねって楽しまないと
プログラマとして成長しないと思うけど?
>>72
( ´,_ゝ`)プッ
まつもとひろゆきってカッコイイ
>>74
誰?
>>75
「まつもとひろゆき Ruby」でぐぐれよ。
7774:03/11/07 16:03
Oliverですが何か
ruby のオフィシャルなrpmパッケージはありますか?
RedHat標準になったという話は聞かんな。
まつともゆきひろ
1.6.2は入ってるが
Matzさんって宣教師だったんだ。
そういえば、「コンピュータの名著・古典 100冊」に、
「オブジェクト指向スクリプト言語 Ruby」の紹介と matz さんのコラムが載ってるね。
もちろん matz さんの紹介で、宣教師云々のくだりもある。
Ruby を宣教して回っているということ?
ヤソ教(変換できん)の宣教師です
耶蘇教
Matz日聖徒イエス・キリスト教会
異端だけどな。
宗教の正統/異端論議は板違い。
「インデント幅は3」教は異端ですか?
そもそも宣教師の話題が板違い。
GNU教ならいいけど。

>>90
磔刑モノです。
「オブジェクト指向スクリプト言語 Ruby」が名著かあ?
ruby史において重要な本ではあるんだろうが、名著と言われるとなんだな。
なんだが凄そうな部屋だな。後のボロボロのってふすま?
>>93
「世界でもわりと成功している言語をつくった日本人の本」としては貴重。
本としては、それほど名著とは思わないけどな。
>>92
dare?
>>97
るびきち
>>79
Ruby としては、ソースからのインストールしか認めてないんですか?
rpm 配布はやってないの?
お前には認めてない
>>99
ソースじゃ嫌なん?
ソースからコンパイルすることすら出来ない管理者居るしなぁ
あー、末日聖徒ってモルモン教の事か。
そこの宣教師って事は、ケント・デリカットとご同業なのね。
configure
make
make install
でインストールできなかったら、諦めることにしている。

てか、unix系のOSは、ここ二、三年くらい触ってないす。
おいらには敷居高いです。
Ruby の拡張ライブラリはインストールできないね。
>>104
それで出来なかったっけ?
>>105の言う拡張ライブラリが無理ってこと?

おいらには rpm の方がわけわかめだが
拡張ライブラリは
ruby extconf.rb
make
make install

ruby install.rb config
ruby install.rb setup
ruby install.rb install
だかんね。
いちいちruby経由させるクソインターフェースですね
perl Makefile.PL
ズババババーン
つーか、拡張ライブラリごときでなんで
いちいち覚えなくてはならないような、
install.rbとかmakefileとか用意すんのかな。

rbファイルを
/usr/lib/ruby/1.8/
ここにコピーしろ。でいいじゃん。
みなさん Exception 投げるときって、
set_backtrace 使って、バックトレース情報埋め込んだりしてますか?

今、埋め込もうかどうか悩んでるんですが普通やるべきもんなの?
>>111
> rbファイルを
> /usr/lib/ruby/1.8/
> ここにコピーしろ。でいいじゃん。
コンパイルが必要な代物の話をしてんだろうが。
>>112
raiseすればバックトレースは自動的にセットされるもんだが。
Ruby1.8.1 cygwin でirb 動かないんですけど・・・
116デフォルトの名無しさん:03/11/09 18:41
次の文法っておかしいですか?
parse errorがでてしまいます。


if line ~= reg_ex

変数lineはString
変数reg_exはRegexp
です。
=~
さらに言えば文字列の方を先に書くマッチは非推奨。
119116:03/11/09 19:48
そこが違ったんですね。
!=と同じ原理で書いてしまった。イコールの変種みたいな。
どうもありがとうございました。
>>118
なぜですか?
>>120
=~が正規表現オブジェクトのメソッドだから。
>>121
そんなんじゃ理由にならない。
>>114
た、確かに。セットされてますね…。
Exception::messageの方をがんばればってセットすればいいんですね!
三都州!
>>122
理由になってるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるよ
125123:03/11/09 20:34
>>123.sub( "がんばればって", "がんばって")
意味わかんない日本語になっちまいました。
>>124
どの辺りが?
=~は正規表現オブジェクトのメソッドだから
ワラタ
>>127
そんなんじゃ理由にならない。
>>129
そんなんじゃ理由にならないという理由にならない。
=~は文字列オブジェクトのメソッドでもあるから
=~は正規表現オブジェクトのメソッドだからでは理由にならない。
>>131
じゃあ代わりに説明してもいいよ
>>123
messageはraiseの第2引数からセットされるんだけど、
一体どういうことをしてるわけ?
>>133
自分でもわからん

class TestException < Exception
  def message() return "エラーですよ"; end
end
ってやっておくと
raise TestException.exception
ってやったとき「エラーですよ」って出てくれるんじゃないの?
と思ったら出ませんでした。

ありがとうございまする。
今後はもうちょっと調べてから投稿いたしまする
135デフォルトの名無しさん:03/11/10 00:02
誰か、nkf.soをutf8対応してけろ。
お・ね・が・い
>>132
説明して
> バカが征く
これって何て読むの?
「いく?」
>>135
rough/ext/unkf
>>134
$ ruby -e 'class TestException < StandardError;end' -e 'raise TestException, "エラーですよ"'
-e:2: エラーですよ (TestException)
messageもraiseのときに指定するもの。

ついでに、普通の例外ならException直接じゃなくてStandardErrorから派生させた方がいいと思われ。
なんでいいと思われましたか?
うちのとうちゃんがいいって言ってたよ!
>>135
UTF8 対応の nkf 2.x がまだ unstable だから。
>>141の御父上がいいというなら仕方ないな
>>118
早く説明しろよ。
あえて言うならMatzが非推奨って言ってるから非推奨。文句ある?
>>141の父はMatz
>>145
逃げんな。
class Foo
def to_str
"foo"
end
end

p /foo/ =~ Foo.new # => 0
p Foo.new =~ /foo/ # => false

だから
>>140
すでに納得したようだけど、
rescueの引数を省略できるのはStandardErrorかそのサブクラスだけだから。
rescue修飾子のときには使えないし。
>>148
納得。
>>148
なぜだからなのかさっぱりわからん。
かっこ悪いから非推奨
>>149
すまんす、ちょっとわからないので教えてくださいです。
「rescueの引数を省略できる」と「rescue修飾子のときには使えない」とはどんな状況のこと?

StandardErrorとExceptionをいろいろ試してみたけど、素人目ではどっちも同じにみえます。
>>152
一番納得した。
>>154
そんなんじゃ理由にならない。
perlに見えるから
>>153
試してみ。

begin
  raise StandardError
rescue # rescueされる
  p $!
end

begin
  raise Exception
rescue # rescueされない
  p $!
end

raise Exception rescue p $! # rescue修飾子には例外クラスは指定できない
>>157
ホントダ rescue されてない。
まったく同じことをやったけど
全然気付かなかった。サンクス
>>131
s =~ r としても、結局は中で r =~ s が呼ばれるだけだから無駄。
というのが理由じゃダメ?
160あほ:03/11/11 18:17
しかし、おれは StandardError より Exception の方が、
綴りがカッコイイという理由により Exception を使うが。
161あほ:03/11/11 18:17
>>159
一番納得した。
>>160
Exception = StandardError しとけ。 (嘘)
163131:03/11/11 21:39
>>159
理由としては最低レベル。
>>163
なぜですか?
>>163
そうですか。では、引続き String#=~ をお使いください。

ていうか、リファレンスマニュアル見てみたけど、
非推奨なのは string =~ other_string な場合だけで、
string =~ regexp は別に非推奨じゃなくなくない?
うーん。 見た目なら /aaaa/ =~ "aaaa" より "aaaa" =~ /aaaa/
の方がわかりやすいから非推奨にされても困るけどね。
>>166
理由としては最低レベル。
>>167
まあな
>>159
その論理なら逆に r =~ s は s =~ r であっても良いということになる。
またインターフェイスからはどちらに委譲されているのかはわからない。
いや、わかろうと努力してはいけない。
だから最低レベル。
俺は誰がなんと言おうとs =~ rを使う
だって/aaa/option =~ sよりs = /aaa/optionのほうがしっくりくるだろ?
perlに毒されていると思われ。
>>171
オレは 170 ではないが、
× if 0 == hoge
○ if hoge == 0
と書く感覚からすると、
 if str =~ /regexp/
の方がしっくり来るというのはある。

個人的にはstr.match(/regexp/)を使うことが多い。(1.7 feature)
そーいえば pythonでは問答無用で
str.match(/regexp/)的な表記だっけ。
違う。
re.match("regexp", str)
OOとはいえ、rubyとはずいぶん違うね。
str[/regexp/] という表記は変態的でいいね。
176165:03/11/12 01:57
ていうか、 String#=~ が非推奨って、このスレ以外ではどこで言われてるの?典拠は何?
str[/regexp/] = substr

なんて脳汁出そうなくらいイイ
warning: string =~ string will be obsolete; use explicit regexp
179165:03/11/12 02:34
>>178
漏れへのレス?もしそうなら答えになってないよ。
180非178:03/11/12 04:47
>>165
マジレスすると、「オブジェクト指向スクリプト言語Ruby」にそのような記述があったはず。今手元にないから確認できないけど。
むかーし
nil =~ /../
がエラーになってたときがあって古いユーザはそれがトラウマになってるのでは?
>>177
それって replace-matchって事かな?
str[regex]{ code }
str[regex][substr]

とかもイイかも。

…あああでも実装できないよウワァァァン
蛇足かもしれんが。
>>177は本当に出来るのな。

--- self[regexp]=val
--- self[regexp, nth]=val ruby 1.7 feature

正規表現 regexp にマッチする最初の部分文字列を文字列
val で置き換えます。

正規表現がマッチしなければ例外 IndexError が発生します。

val を返します。

ruby 1.7 feature:
引数 nth を指定した場合は、正規表現 regexp の
nth 番目の括弧にマッチする最初の部分文字列を文字列 val
で置き換えます。nth が 0 の場合は、マッチした部分文字列全体
を val で置き換えます。

正規表現がマッチしない場合や nth に対応する括弧が
なければ例外 IndexError が発生します。
>>183
> str[regex]{ code }
これはsyntax error
RubyのStringは ~= とか[]= の他にも

String#%とか
String#sub(match){ callback }とか

変態的なのが多くて楽しい....
String#% とかは Python 由来だっけ?
コード変更してて、

# もともと
i = 123
puts i

#カッコでくくりたくなった
puts "(#{i})"

#五ケタ表示にしたくなった
puts "(#{"%05d" % i})"

こんなことになってしまう。
普通 printf "[%05d]\n", i だよな。


漏れは「カッコでくくりたくなった」でいきなり "(%d)"%i するようになってきた。
もれはカッコで括らないと気持ち悪いのですが

printf ( "[%05d]\n", i )
>>190
誤字がありますよ。
>>190
warning: don't put space before argument parentheses
193デフォルトの名無しさん:03/11/14 00:10
divとかtofuって何をするためのものかイマイチわかりません
>>193
tofuをさいの目にdivします。
(´・ω・`)
196名無しさん@Vim%Chalice:03/11/14 15:46
http-access2 で POST ができんぞ.
さっさとバグ直せ
俺はhttp-access2捨てて標準のnet/httpライブラリ使うことにしたが…
あんな中途半端なもんがFreeBSDのportsにまでなってるのが謎.
>198
どっちのこと?今のところ、俺はnet/httpとnet/httpsでほとんど不自由してないからhttp-access2のことだと思うけど。
http-access2はコロコロ仕様変わってだめぽ感が漂ってる
200198:03/11/14 16:42
もちろんhttp-access2.
たしかにnet/httpでことたりるわな.
漏れにはむしろ net/* みたいなもんが標準添付ライブラリにまでなってるのが謎。
尤も、ほかにも(ry
cgi.rbももう捨てた方がいいとおもうよ
>>202
ですね。
今、最も yet another cgi.rb として見込みがあるのはどれでしょうか?
俺のチンコ
しょせんたいした処理はしていないので自作するが吉。>>203
>>204 是非公開してください。
>>205
いや、既に (何度も) 自作してるんですけどね。
できれば標準で (もっとマトモなのが) あったらそれに越したことはないですよね。
>207
あー、俺もPerl使ってた頃何度となく作ったよ
しまいにはCGI.pm使うようになったが、多少便利がいいぐらいで結局やること大差ないよなぁ
209デフォルトの名無しさん:03/11/14 22:50
標準でCRCチェック用のハッシュ値求める方法はないの?
Perl→PHP→Rubyと全部dirtyな書き方で来て、今度はPHP/XSLTにしようかと思ってる
この方式で縛れば少しはすっきりした明快なコード書けるようになるかなぁ…正直今まで書いたコード、自分では絶対保守したくない
211名無しさん@Vim%Chalice:03/11/14 23:56
>>209
> 標準でCRCチェック用のハッシュ値求める方法はないの?

Ruby/zlib の crc32 とか。
 http://www.blue.sky.or.jp/atelier/ruby/zlib-0.3.ja.html
1.8.0 preview3 から標準で付いてくるのか。<zlib

$ ruby -rzlib -e 'p Zlib.crc32("string")'
2663297705
>>208
CGIではCookieとQUERY_STRINGと標準入力から、
文字列取れるくらいのもんがあれば十分だもんな。
あと使うのはescapeとunescapeとhtmlのエンコードぐらいか。

正直、cgi.rbは余計なものありすぎて重すぎ。53KBって。
HTML 出力するライブラリで定番とかオススメってありますか?
各種ライブラリを比較してるサイトとかあると嬉しいんだけどなあ。
>>210
ダメな奴は何やってもダメ。
>>214
HTML は出力しないで手書きすれ。
>>216
「手書きすれ」ってどういう意味?
Win VC++版でエラーになるっぽい
詳細を加計
>>216
「手書きすれば」という意味じゃないでしょうか
221220:03/11/16 02:08
>>217 だった
「すれ」は「しろ」の方言
>>217
面白いかい?
>>223
放置しる。
>>222
何県の方言なの?
>>224
「放置しる」ってどういう意味?
放置おつゆ
>>216
手書きは飽きちゃったんだもの。かと言って cgi.rb のは死んでも使いたくないし。
>>228
じゃ死ね
>>228
> cgi.rb のは死んでも使いたくないし。
お約束だが、



 じ  ゃ  ぁ  、  自  分  で  作  れ  よ  。
>>230
はぁ?
お  前  が  作  れ  よ  。
皆自分で作ってるっての
だよねー
perlにすれば?
>>234
手書きは飽きちゃったんだもの。かと言って CGI.pm のは死んでも使いたくないし。
じゃPHPにしなよ。
>>229 >>230
死にたくないし、これ以上自分で似たようなの何度も作りたくないし。
>>235
じゃ死ね
>>235
> CGI.pm のは死んでも使いたくないし。
お約束だが、



 じ  ゃ  ぁ  、  自  分  で  作  れ  よ  。
>>239
はぁ?
お  前  が  作  れ  よ  。
キティガイはスルーの方向で。
242デフォルトの名無しさん:03/11/16 18:48
死んでも〜したくないとか言う奴は信用できない
死んでも〜したくないとか言う奴は死ななかったらしたいのか!
死んでもセックルしたい
じゃ先ず死ね。
自分は拡張ライブラリを書いている者です。
いろいろ調べたつもりなのですが、rb_define_alloc_func()の
存在意義がよくわかりませんでした。

どういった時に必要な物なんでしょうか?
>>246
> いろいろ調べたつもりなのですが、rb_define_alloc_func()の
> 存在意義がよくわかりませんでした。

> どういった時に必要な物なんでしょうか?

 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-ext/2203
 とか。
>>244
「セックル」ってどういう意味?
>>244
こいつは信用できる
心意気が伝わってくる
PHPみたいな文法で書けるRubyライブラリでも作れよ。


まあ、それが erb なんだが。
>>250
PHP みたいな埋め込み式なクソ文法は覚えたくないです。むしろ吐き気を覚えます。
>>251
もう覚えてるくせに。
PHPハァハァ
254246:03/11/17 00:35
>>247
Marshal関係なんですね。どうもです。
>>251
食わず嫌いせずにerbも試してもらいたいところだけど、
amritaはどーよ?
http://www.brain-tokyo.jp/research/amrita/index_ja.html
>>244
「セックル」ってどういう意味?
>>256
性交の隠語ですが何か?
意味質問厨が人工無能みたいで笑える。
意味質問廚のソース公開しる!
>>258
「意味質問厨」ってどういう意味?
>>258
きょうびの人工無能の方が賢いよ。
つか意味質問厨だけでなくこのス自体人口無能的。
オレノコノカキコミモナー。
>>260
お前のことだ。

って、人工無能にレスするのって虚しいね・・・
Rubyスレっていつもこんな感じなの?
最近は人工無能のテスト用スレになってしまったらしい。
>>251
んじゃ今はどうやってるの?全部printでHTML気合出力?

>>255
amritaかぁ。この構文ならJavaとかでも共通化できるね。なかなかおもしろいかも。
ただ、これデータとなる配列全部用意してから出力処理に入るのかな?
メモリ食いそうだなぁ。
>>266
Javaの事情はわからないけれども、Perlとの共通化ならHTML-Template
のほうがいいかも。系統はamritaと似ているものの、idではなく
コメントタグを使うところが相違点。
http://raa.ruby-lang.org/list.rhtml?name=html-template2
# 鯖が落ちてる?

メモリは、、Rubyってそもそも環境的にあんまり気にしないからなぁ。
http://www.rubyist.net/~matz/slides/of-kansai2002/
http://www.rubyist.net/~matz/slides/ipsj-hi103/
この辺を読んでみて。

まあ余程のことをしない限りは、問題になるようなメモリの食い方は
しないと思うよ。問題あったら、Hikiはamrita使っていないだろうし。
http://www.namaraii.com/hiki/
rubist.netなんてものがあったか。アカウント欲しいなぁ。
たしかrubyist.netはMatz個人の持ち物だったはずなので、直談判してみれば?
>>266
全部 print で XHTML 気合出力したり、cgi.rb 使ったり、erb 使ったり、
<% hoge %> なテンプレートライブラリ自作したり、と、
いろいろでございますので、定番オススメ決定打があればそれに絞りたいと。

>>255
これは良く名前聞きますね。良さげですね。試してみます。

ていうか、いろいろ調べてたらこんなページがあったんですね。なかなか参考になります。
http://www.rubygarden.org/ruby?HtmlTemplates
>>270
デフォルトにするのはもちろんかまわないけど、選択肢としては
絞らない方がよいよ。どれも一長一短だし。

amritaはオールマイティに利用できるとはいえ、たとえば
たんに時刻を埋めたいだけならerbのほうが楽だし、時刻だけの
シンプルなHTMLを吐きたいならむしろなにも使わない方が楽。
amritaはRubyUnit(TestUnit)も利用しやすいし、しっかり作る
にはよいのだけれど、逆にシンプルな状況においては(構造とかが)
重量級すぎる。

言語の選び方からしてそうなのだけれど、こだわらずに柔軟に
いきませう。いろいろやれて悪いこたぁないさ。
 WindowsMe上で、Ruby/Tkを使いたいのですが。
C:/RUBY/lib/ruby/1.8/i386-mswin32/tcltklib.so: 1157: このアプリケーションの実行
に必要なライブラリ ファイルの 1 つが見つかりません。 - C:/RUBY/lib/ruby/1.8/i3
86-mswin32/tcltklib.so (LoadError)
from C:/RUBY/lib/ruby/1.8/tk.rb:7
from temp.rb:3:in `require'
from temp.rb:3
上のような、エラーがでてうまくいきません。
ActiveStateのTcl/Tkをインストールしてあり、
一応、Tcl/Tkのパスは、通してあります。よろしくお願いします。
Apolloってどうなの?
使ってる人少ない?
274デフォルトの名無しさん:03/11/19 00:21
Doxygenへの対応はまだか?
275デフォルトの名無しさん:03/11/19 00:45
template使ってたけどアムリタってよさそうだ。。。
>>257
「性交」ではなく「セックル」という隠語を用いる必要性はあるんですか?
キティガイはスルーの方向で。
隠語の意義を認めないとは。
rubyistとかloverubyとか「るびきち」とか私には恥ずかしくて使えません
>>276
必要性はありますよ。
2ちゃんねるでしか通じない隠語を使うことで、
心理的に余所者を排除するという意図があるわけです。

端的に言えば、このスレにあなたのようなひとは不要というわけです。
281デフォルトの名無しさん:03/11/19 04:32
webrickでWEBサーバを再起動せずにサーブレットをデバッグする方法を教えて下さい
>>281
eval
ApolloはMLで聞いたほうがいいかも。
>>281
最後は止めてやり直しになると思うけど、どういうことがしたいですかね。
>>272
ruby(というかtcltklib.so)の出所は?
Tcl/Tkのバージョンは?
実際のPATH環境変数の中身は?
286272:03/11/19 11:53
WhatRubyのところから、Ruby-mswin32というところの、
ruby-1.8.0-i386-mswin32.zip です。
Tcl/Tkのバージョンは、8.4です。
PATH=c:\ruby\bin;c:\tcl\bin
あと、書いてあったことを試したので、
SET RUBY_TCL_DLL=c:\tcl\lib\tcl84.dll
SET RUBY_TK_DLL=c:\tcl\lib\tk84.dll
>>257
「性交」ではなく「セックル」という隠語を用いる必要性はあるんですか?
>>281
>>284
webrickってshutdownにかかる時間が長いよねぇ。
しかも、mswin32だからかもしれないけれども、INTトラップが
無視されることもあるし。
しょうがないのでINTはトラップせずに、@server.shutdownをする
ShutdownServlet作ってマウントしてます。
それでも我慢できなくなったら、Interrupt例外発生させて - 終了 - 。

serverがstartしている間に、動的にmountが実行できるかどうかが
ポイントかも。それができるなら、
class RemountServlet < HTTPServlet::AbstractServlet
def do_GET(req, res)
res.body = "remount"
res['Content-Type'] = "text/plain"
@sever.unmount('/')
load('./yourservlet.rb')
@server.mount('/', YourServlet)
end
end
みたいな感じでいけそう。
少し変な質問ですが、ruby をコマンドラインから使うときに、
ruby -rfoo
のように -r に続けてスペースをいれずにライブラリの名前を使いますけど、
-r foo や --r foo ではなくて -rfoo のようにオプションを指定するタイプの Unix/Linux のコマンドは
他にどんなものがありますか?

2,3 例をあげてほしいのですが。
>>289
-rのあとのスペースは単に省略可能なだけでないかな。
ちょっとやってみたら、cygwinで
a2ps -ooutput.ps plain.txt
とかはできた。
くっつけなきゃいけねーっていうのはあるのかな?
gcc の -l とかはくっつけないとだめだね。
perl だって perl -mURI とかくっつけて書くと思う。
python -Qnew とかも続けて書くよな。

というわけでスクリプト界隈では標準なのでは?

>>291
ところが automake は逆に -I をくっつけて書くとエラーになるんだよ
>>286
実はRuby-mswin32の対象としてるTcl/Tkはむちゃくちゃ古くて8.3だったりする。
次回あたりから8.4用にコンパイルされるだろうから、ちょっと待ってやってくれ。
>>289
X/Open な (ていうか普通の UNIX) getopt() の仕様がそうなってるのではないかと。
だから、2,3 例というか getopt() を普通に使ってるのはみんなそうなってるような。
RubyでUNLHA32.DLLをつかって.lzhファイルを解凍するにはどうしたらいいのでしょうか?
>>295
拡張ライブラリ書けばいいじゃん。
VC++必須だけど。
>>295
ぐぐってみたら、こんなん出てきたぞ。
http://www3.ocn.ne.jp/~han/ruby/
298295:03/11/19 20:30
ありがとうございました。これで一歩野望に近づきました。ではでは
299272:03/11/19 21:15
>>293

うー。とりあえず、待つか。
Tcl8.3を探します。

ありがとうございます。
>>299
Tcl8.3はこのあたりにあるよ。
http://downloads.activestate.com/ActiveTcl/Windows/

でも素直に待ったほうが無難かも。
質問です。
1.8.0だとできるのですが、1.6.8だと
 class Klass::Klass2; end
こういうクラス定義方法ができません。
↓こう書けばうまくいくんですが、ちょっとインデントが深くなるので避けたいんです。
 class Klass
   class Klass2
   end
 end
1.6.8だとこういう書き方はできないんでしょうか。
303302:03/11/20 00:57
すまそ。ime.nu通さずにコピペでよろしく。
304302:03/11/20 01:22
連続で申し訳ない。1.6で試してないけど、これでいける?

class Klass2
end
class Klass
 Klass = ::Klass2
end

::Klassが残ってちょっと邪魔くさい。
定数をundefできたらよかったんだけどなぁ。
>>304
ダメでしょ。せめて 1.8 で逝けるかくらい試しみてよ。
>>305
誤字がありますよ。
307302:03/11/20 02:15
あれ?typoしてる。Foo,Barで書いたのをムリに書き直すもんじゃないね。
元はこれ。

class Bar
def initialize
p "BAR"
end
end
class Foo
Bar = ::Bar
end
Foo::Bar.new

こいつは1.8.0で確認してます。
そして残って困るのは::Bar。
>>307
ああ、ぼけてました、スマソ。
class Klass2 の方でメソッド定義するのね。それならうまく逝くね。

>>306
お前はこのスレに不要って言われてるのがまだ理解できませんか?
構うな低脳
310デフォルトの名無しさん:03/11/20 03:51
amritaについて質問です

<div id=hogehoge>...</div>をConditionalで使った場合、trueだったらid属性は
消えてしまうのですか?

おなじid属性値の要素があった場合、最初にマッチした要素のみ有効ですか?
>>310
ID の値が同じということは identifical ではないということだが。
312デフォルトの名無しさん:03/11/20 05:12
id属性もつ要素を表示したかったら全部trueいれとかなあかんの?
>301
class_eval使うって手もあるけど。
Amrita::Template の escaped_id か amrita_id を使えばいい。
keep_id というのもあったような。
>307
Object.class_eval{remove_const :Bar}
316302:03/11/20 09:49
>>313
けっきょくネストしてしまいませんか?

>>315
そんなものがあったのですね。じゃあこんなのは?
module GreedyImporter
def greedy_import(klass)
class_eval <<-EOS
#{klass.to_s} = ::#{klass.to_s}
Object.class_eval{ remove_const :#{klass.to_s} }
EOS
end
end
class Bar
def initialize
p "BAR"
end
end
class Foo
extend GreedyImporter
greedy_import( :Bar )
end
Foo::Bar.new
モジュールの名前が悪いとか、トップレベル相手にしか使えないとかで
あまり汎用的じゃないけれども。
>316
class Foo;class Bar;end;end
Foo::Bar.class_eval {
}
とか。
class Module
 def define_class(name, p = Object, b = &Proc.new)
  const_set(name, k = Class.new(p))
  k.class_eval(&b)
 end
end
319デフォルトの名無しさん:03/11/20 13:04
サッカーでさ、ボール囲んで肩とか組みながら
相手のゴールにつっこめないかな?
こんな風に

  ○○
 ○  ○   ワー
○ ● ○    ワー
 ○  ○
  ○○
空の配列が返ってきたりnilが返ってきたりするのをどうにかしてほしい
全部空の配列を返してくれればnilチェックしなくていいのに
なにについてのおはなしでしょうか
322デフォルトの名無しさん:03/11/20 19:34
AmritaのTemplateで勝手にbodyタグとhtmlタグを閉じてくれるんだけど
こういう仕様ですか?
323デフォルトの名無しさん:03/11/20 21:36
サッカーでさ、ボール囲んで肩とか組みながら
相手のゴールにつっこめないかな?
こんな風に

  ○○
 ○  ○   ワー
○ ● ○    ワー
 ○  ○
  ○○
少し前にUNLHA.DLLで質問したものです。
テストプログラムを書いていたら次のようなメッセージがでて困っています。

./unlha32.rb:52: [BUG] Segmentation fault
ruby 1.6.8 (2002-12-24) [i686-cygwin]
Aborted (core dumped)

このメッセージは何が原因で出ているのかわかりません。
unlha32.rbがいけないのか?またはRubyそのもののバグなのか?
教えていただけないでしょうか?
ちなみにRuby ver1.8.0でもでました。

よろしくお願いします。
>>324
> ./unlha32.rb:52: [BUG] Segmentation fault
> ruby 1.6.8 (2002-12-24) [i686-cygwin]
> Aborted (core dumped)

> このメッセージは何が原因で出ているのかわかりません。
> unlha32.rbがいけないのか?またはRubyそのもののバグなのか?
> 教えていただけないでしょうか?
> ちなみにRuby ver1.8.0でもでました。

コード見てないから何とも言えんが、ruby win32api unlha 辺りで
ぐぐって、他のも試してみれば ?
326324:03/11/20 23:58
レスありがとうございます。
>コード見てないから何とも言えんが、ruby win32api unlha 辺りで
>ぐぐって、他のも試してみれば ?

ほかのも試して見ます。では失礼します。
誰に失礼するんだよ!コラ!
>>317
>>318
おお、なるほど。
Procはいままで使ったことがなかったのですが、
やはり便利そうですね。

>>324
たぶんDLLの呼び方が間違ってるんじゃない?
http://member.nifty.ne.jp/hippo2000/perltips/perllha.htm
これも参考になるかも。
PerlやVBでの例をもとにWin32APIクラスをいじれば、
ふつうはなんとかなるはずです。
329324:03/11/21 01:01
怒こられてしまいました。

lha.exeを使うことで解決しました。

道標
system("lha e hogelzh")

では
330デフォルトの名無しさん:03/11/21 01:41
Rubyのクラスライブラリのサーチパスって環境変数で設定できる?
サンクス
manにないし、ぐぐってもでてこねーんだもんよ
>>332
うわ、そうなのか。
次スレではテンプレ入りきぼん。>リファレンス
>>332
man にないってのは手落ちだよなー。
335334:03/11/21 17:15
とか言ってたら早速・・・。お手数掛けます。
336デフォルトの名無しさん:03/11/21 17:40
サッカーでさ、ボール囲んで肩とか組みながら
相手のゴールにつっこめないかな?
こんな風に

  ○○
 ○  ○   ワー
○ ● ○    ワー
 ○  ○
  ○○
>>336
俺もそれ考えたことあるけどボールにあまり関与していない選手が相手選手の動きを妨害したとみなされるんじゃないかな
338デフォルトの名無しさん:03/11/22 01:11
>>322を教えて下さい
>>336
オフサイド
>>336
相手方も11人でゴール前に固まって防げばいい
>>339
ドリブルして持って逝くんだからオフサイドにはならないのでは
>>340
まるでラグビーのスクラム対決だな(w
343272:03/11/22 04:11
>>300

気づくのが遅くなってすみません。
とりあえず、次のが出るまで、mingw版をいれて、まちますw。
>>336
非紳士的行為により、警告。
ravaスレ消えちゃったね

るびきち叩きの時は全く消さなかったのに

叩き対象が>>1になったとたんこれかよ
いや、削除依頼出てなかったし。
つーかさ、サッカーって何であんなに点入れでデフレ起こしてんの?
見てて面白いか?
賑わってない側のゴールキーパーとか両端にいるメンバーなんか毎回暇持て余してるしよ。
そもそもフィールド大きすぎなんだよ。客も首疲れるだけだろ。

それに比べてバレーボールは1分もしないうちにぽんぽん点入るよな。
どう考えてもあっちの方が一喜一憂できるだろ。
ボケどもが。
点が入るまでのビルドアップが面白いんじゃん。
deflation
━━ n. 空気[ガス]を抜くこと; 自信喪失; 【経済】通貨収縮, デフレ.
3501 ◆cszrIBzBL2 :03/11/22 23:17
JavaケコーンRuby 生まれた子供はRavaちゃん
http://pc2.2ch.net/test/read.cgi/tech/1058980632/
憩いの場所返してください
>>350
個人叩きスレは板違いじゃないか(キチガイ板とか)
違ってたらすまん

>>347
サッカーは大袈裟に喜ぶ表現を競うスポーツ。
バレーは背の高さを競うスポーツ。
それぞれ見所が違う。
サッカー≒セックル。90分間に2回程度の絶頂感。
スレ違いのネタに釣られてしまった。スマソ
おいおい、時間制限付きってことはサッカー≒風俗だろ。
ホテル行くと元取りたがるのよね
と不細工女が言ってました。
不細工の癖に全額ださせてんじゃねーぞ

お前なんかな
車でやっとけ

車とやっとけ
おいおい、車でやるのはカマ掘りだろ。
>>355

   、ミ川川川彡                 ,ィr彡'";;;;;;;;;;;;;;;
  ミ       彡              ,.ィi彡',.=从i、;;;;;;;;;;;;
 三  ギ  そ  三            ,ィ/イ,r'" .i!li,il i、ミ',:;;;;
 三.  ャ  れ  三    ,. -‐==- 、, /!li/'/   l'' l', ',ヾ,ヽ;
 三  グ  は  三  ,,__-=ニ三三ニヾヽl!/,_ ,_i 、,,.ィ'=-、_ヾヾ
 三  で       三,. ‐ニ三=,==‐ ''' `‐゛j,ェツ''''ー=5r‐ォ、, ヽ
 三.   言  ひ  三  .,,__/      . ,' ン′    ̄
 三   っ  ょ  三   /           i l,
 三.  て   っ  三  ノ ..::.:... ,_  i    !  `´'      J
 三   る  と  三  iェァメ`'7rェ、,ー'    i }エ=、
  三   の   し  三 ノ "'    ̄     ! '';;;;;;;
  三   か  て  三. iヽ,_ン     J   l
  三  !?    三  !し=、 ヽ         i         ,.
   彡      ミ   ! "'' `'′      ヽ、,,__,,..,_ィ,..r,',",
    彡川川川ミ.   l        _, ,   | ` ー、≡=,ン _,,,
              ヽ、 _,,,,,ィニ三"'"  ,,.'ヘ rー‐ ''''''"
                `, i'''ニ'" ,. -‐'"   `/
               ヽ !  i´       /
               ノレ'ー'!      / O
バカがこっちに流れてきてるのはRavaスレがなくなったせい?
だとするとあのスレにも存在意義があったんだな。
    /\___/ヽ   ( こ
   /    ::::::::::::::::\ 
  . |  ,,-‐‐   ‐‐-、 .:::|  ┼'っ 
  |  '"⌒` ,: '"⌒` :::|   l
.   |  , 、_:< __,、  .::|  
   \ /\i_i_i_/ヽ ::/  l | 
   /`ー‐--‐‐―´\    ノ
>>357
確かにな。
まあ、今までもバカしかいなかったことは置いといてだ
では、自分がバカでないことを証明してください。はい、どうぞ。
ruby 1.8.1 のリリースはいつ頃なのですか?
>>361
preview3なら今日の予定です。正式版はどうなんでしょ?
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/21970
363357:03/11/25 14:23
とりあえず、漏れはバカなので、命題の傍証ではあるわけだが。
>>362
クリスマスというご意見が多いようです。
>>364
大体あと1ヶ月ということですね。
1.8.* にいつ移行しようか迷ってたので。
ruby-cdbって誰も使ってないのかな。
% ruby sample/sample.rb
ruby: relocation error: /usr/local/lib/ruby/site_ruby/1.8/i686-linux/cdb.so: undefined symbol: str2cstr
Matzはpreview3のことをすっかり忘れてるんじゃないかなぁ。
今日中には出ない気がする。
ウガンダにとってカレーは飲み物。
>>364
クリスマスにリリースされて喜び、抱き合う男達。…虚しい。違う日にしよう。めでたく一週間後とかにしよう
>>366
なんのライブラリだかよくわからんが、str2cstr を
rb_str2cstr に直したら sample.rb は動いたよ。

しかし、プリフィクスが付いてないってことは
Ruby 1.3 以前か。ずいぶん古いねこりゃ。
>>366
ん?うちの ports/ruby-cdb はそんなエラー出ないよ?
と思ったら FreeBSD ports のは >>370 みたいな patch が当たってた。

なので多分、「使ってる人はいるが、みんな自分でこっそり patch 当ててる」だね。
そんなだからソースキュレキュレ厨が後を絶たないんだよ
正規表現リテラル、 /aaaa/o の o って、マニュアルには
「一番最初に正規表現の評価が行われた時に一度だけ式展開を行う」とあるけど
  for i in 1 .. 10
    "aaaaaaa" =~ /aa/o
  end
この状況で1回だけ式展開(?)、正規表現の展開(?)を行うという解釈でいいんですか?
逆につけないと10回評価されるってことですよね?
>>372
「ソースキュレキュレ厨」ってどういう意味?
>>374
魂で感じ取れ。「ソースキュレキュレ厨」から残留思念を読み取るんだ。
額に目があるとイメージしろ。その目で「ソースキュレキュレ厨」の意味を読み取るんだ。
第三の目を開眼させるんだ!ベストを尽くせ!

まずはそこからだ。
376デフォルトの名無しさん:03/11/25 23:16
Rubyを勉強して3日目なんですが、質問させてください。

例としてStringクラスのオブジェクト"hoge"があって、これに
Stringクラスの子クラス(?)で定義したメソッドを作用させたい場合は
どうするんでしょうか?
>>373
oが意味あるのは、#{}で式を埋め込んでる場合だけ。
それ以外ではまったく関係ない。
>>375
そんなん書いてて寒くない?
すんません、激しくすれ違いなのですが、
% grep _proxy lib/**/*.rb

% grep _proxy lib/*/*.rb
でなにか違いがあるのですか?

自分でやってみると(bash)、同じ結果だったんですが。

--
元ネタ
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/22013
*の意味をよく理解する必要がある。
肛門じゃない。
>>379
殆ど答を出してるじゃないか。
>>379
Zsh でやってみ。
383373:03/11/26 00:31
>>377
うわぁ、思いっきり勘違いするところでした。
ありがとうございます。

10回評価しない場合はやはりこうしろと
reg = /aa/
for i in 1 .. 10
  "aaaaaaa" =~ reg
end
>>373
 for i in 1 .. 9
  s = i.to_s
  puts "a #{s}" if /#{s}/ =~ s
  puts "b #{s}" if /#{s}/o =~ s
 end
正規表現って、(内部で)コンパイルする必要があるのさ。
oは前回のコンパイル結果を再利用するっていうオプションです。

>>376
親から子へは継承しても、その逆はないです。
はじめからStringSubclassでhogeオブジェクトを作るか、
 hoge = StringSubclass.new(hoge)
で作り直すか、むしろStringそのものにメソッド追加をするとか。
>>384
あと、hoge自体に特異メソッドを追加するとか、hogeにextendとか。
>>383
ちょっとまって、なにが目的?
>>376
そのStringクラスの子クラス(?)とやらを new して、
そのnewの引数にオブジェクト"hoge"を渡すしかないんじゃないですか。

継承しなくてもいいなら、そのまんまStringクラスにメソッドを追加してくとか
class String
  def tuikamesoddo()
    print "肉の" + self.to_s
  end
end
"万世".tuikamesoddo # => 肉の万世

と思ったら既に >>384 が書いている罠
>>384,387
ありがとうございます。

なるほど、そういう風にやるしかないんですね。
今はイテレータからブロック内で"{ |hoge|...}"と
渡された変数なので、SubString.new(hoge)でやることにします。
>>386
え?えっと、おま。↓のような感じ
while line = inputStream.gets
  line =~ /^[ \t]*(.)/
  # $1 を見てなんかの処理をする
      〜
end
要するに行の始めの空白文字以外の一文字を取って、その一文字から処理を分岐したいのです。
毎回 「/^[ \t]*(.)/」 を、内部でコンパイルするってのはやだなぁと思って聞いてみたのですが。
んこ
>>389
なるほど。
 re =~ str
の式自体が常に同じ結果を返すのを期待しているんじゃないかと
不安になってしまったのですが、、そんなわけがないです申し訳ない。

でもどうなんでしょ。言うほど変化するのかなぁ。
* なにも考えずにその場で /re/ =~ str
* /re/o =~ str
* re = Regexp.compile("re") をしておいてから re =~ str
でbenchmarkとってみたいかも。
>>391
/#{re}/ じゃなくて /re/ なら、
o オプション無しでも毎回 Regexp オブジェクト生成とかしないでしょ。
>>389
#{...} がなければ正規表現リテラルはプロセス起動時に
一度だけコンパイルされる。つまり、ループ中で正規表現
リテラルを使ってもプロセス全体で一度しかコンパイル
されない。それどころか正規表現リテラルと =~ の組み
合わせは内部で専用ノードを作って最適化しているので速い。

上記ルールの例外は、nseu オプションがついてなくて
$KCODE が変わったとき。この場合は新しい $KCODE に
合わせてコンパイルしなおす必要がある。
(ちなみに文字コードを変えてくれるわけではない)
ruby 1.8.0, 1.8.1pre2
% ruby -ne 'print if /^あ.*[^a-z]$/i' #=> ng
% ruby -ne 'print if /^あ.*[a-z]$/i' #=> ok

ruby 1.6.8
% ruby -ne 'print if /^あ.*[^a-z]$/i' #=> ok
% ruby -ne 'print if /^あ.*[a-z]$/i' #=> ok
395389:03/11/26 09:38
>>391-393
http://www.ruby-lang.org/ja/20020313.html
以前ここをみて、ループで正規表現を使うときは必ず、
一旦変数に代入したほうが良いのかと思ってました。

勉強になります。ありがとうございます。
396371:03/11/26 14:06
>>366
良く見たら、ruby-cdb の作者まで 1hop だったのに気づいたので、言うときました。
>>394
この違いが原因だな。

 % ruby-1.6.8 -e 'p /[^a-z]$/ =~ "\n"'
 nil
 % ruby-1.8.0 -e 'p /[^a-z]$/ =~ "\n"'
 0

1.6 でも1.8でも /[^a-z]/ =~ "\n" は true だから、
挙動が変わったのは「$」のようだ。
>>396 とか他の人。
どうもサンクス。
ttp://ponx.s5.xrea.com/bibo/20020611.html
ここによると、str2cstr→rb_str2cstrにしただけの変更じゃ、
あまりよろしくない事が起こり得るのかな?
どうせモジュール書く人じゃないから分からなくてもいいのだけど。
>>397
なるほど。以前の挙動が欲しければ chompする必要がありそうだね。
ちょっと混乱するかも。
あああ400
いいい401
うううんこ
Windows2000でRuby/Gtkは動きますか?
>>403
> Windows2000でRuby/Gtkは動きますか?
Ruby/Gtk2 は動いてますが、何か?
カーセッ○ス知らない人発見
またしても、〜はなんですか、○にする意義はなんですか?ってな人が来るな。
学習能力○なアホが毎回釣れるから、もう楽しくて楽しくて・・・
寒っ
意味質問厨はひょっとしてProlog使いか?
カーセッ○クル
preview3まーだー?
忘れられてるのかな
413デフォルトの名無しさん:03/11/27 13:44
UUIDのモジュールってある?
414デフォルトの名無しさん:03/11/27 14:38
他の漁師がやった事を自分の手柄のように錯覚する馬鹿発見
Rava のようなソフトを作ろうと思ったら、どういう本を読んでいけばいいのですか?
>>415
本よりもコードを読む。でもって書く。
Rava なんてめんどくさいだけで誰でもできるだろ
バカか。めんどくさいから誰にでも出来るものじゃないんだよ。
言い方が悪かった。
めんどくさいだけで誰でもできるが
誰もやらないのは役に立たないのがわかりきってるからで
それをあえてやるのははっきりいってバカだ
自分の勉強の役に立つ
>>420
言語の設計や実装の動機ってほとんどがそれなんじゃないかと。
>>419
十年後に路頭に迷ってそうな人間性だな。
>>421
同感。ていうか、
今まで生まれてきた言語の中で、卒論(修論・博論)のためだけに
生まれ、そして死んでいったものがどれだけの数を占めることか…。
そんなにポンポンと生まれポンポンと死んでいく過酷な言語戦争の中、なんでHSPが生き残っているのか?
>>424
まったくもって同感。実は今日、昼飯食いながら
同じ事考えてました。

HSPにせよN88BASICにせよ、プラットホーム固定なのが
手軽さにつながっているのでは。それと、「ゲーム向け」と
「仲間がいますよ」ってのを前面に出したプロモーション。

あとは、ソース見せ合って洗練させるっていう文化が無いからでは。
HSPはexeファイル作れるのが売りの一つだし。それにゲームって、
他のアプリと違って一つが長い間使われるものでないと思う。
だから、ゲーム作者にとってソフトは「動けば終わり」。
「よりよいコードにする」なんてことは考えもしない。
んで、とりあえず「動く」だけの時代遅れ言語が生き残ってしまう。
426425:03/11/29 01:05
でも確か、Ruby本にはマインスイーパが載ってた。
Rubyでゲームプログラミング。流行らないかな。
Rubyに、pygame相当があったら…
というかRubyにポータブルでN88BASIC互換のグラフィック&サウンドライブラリつけろよ。マジで。
N88BASICのライブラリなんて今では正直子供だましだけど
お手軽でリア厨と学校教師が把握できる唯一のライブラリだと思うが。
今のままのRubyではプログラミング「自体」を楽しむオタにしか広まらないだろ。
>>426
> Rubyでゲームプログラミング。流行らないかな。
> Rubyに、pygame相当があったら…

Ruby/SDLじゃダメっすか(泣 
>>428
インストールを恐しく簡単にしてもらわないとダメ。
>>427
いや、マジでこれは強力だ!
N88でプログラムの洗礼を受けた中高年の数はかなり多いし需要は見込めるかも。
Rubyの「.NET」対応ってどういうこと?
dotnetなんてあんま意味ないよな。
CLI吐けるってならともかく。
でもそれなら初めからnative吐けよって事だし。
RubyのコードからMSILが吐けるように。
CRLがRubyから使えるってのがメリットだろ。
標準の貧弱でUNIX臭いライブラリなんて使ってられないし。
> Rubyの作者、まつもとゆきひろの飼っているハムスターの名前は「パール」
へぇ〜
>>430
でもN88BASICのリファレンスなんてもう
どこにも存在しないから実装不能という罠。
(自分は文法忘れました)
>>436
うちの高校にありました。
>>436
俺の実家にあったよ。
FBASIC
Ruby/SDLのruby1.8用のi386-mingw32バイナリってどこかにない?
作者のページにはruby1.6対応しかない。
>>440
1.8には対応してないんじゃないか?
442441:03/11/30 13:18
いや、してるか。
alocation frameworkに対応してないだけだ。
>>433
 つまり、Windowsのネイティブコンパイラ(著しく端折りすぎ)になるということ?

>>434
 ライブラリが魅力ですか・・・
これって仕様?

def A
end
A # => uninitialized constant A
CVSの最新でビルドするとmakeの途中でこうなるのはどうしたらいいのでしょう?

if test "/home/hoge/src/ruby" = "."; then \
gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$ > lex.c; \
else \
cp /home/hoge/src/ruby/lex.c .; \
fi
cp: ``/home/hoge/src/ruby/lex.c'' を stat できません: そのようなファイルやディレクトリはありません
make: *** [lex.c] エラー 1
環境を書かないとなんとも
447>444:03/11/30 22:48
def A()
end
+1 + 1といい構文破綻してないか?
>>447
そのカッコ付けても何も変わらないと思うが?
450444:03/12/01 00:46
>>447
CVS HEADで試したけど、>>449氏の仰る通り何も変わらず。

ちなみに、呼び出すときに「A()」とする抜け道は存じています。
言いたいのは「なぜ、ただ『A』としたときに、定数としてしか認識
されないのか」ということ。
パーサの限界? matzの限界?
>>450
>パーサの限界? matzの限界?
効率とのトレードオフ? バグ? も追加
def A
end
A()
>>450
どっちも変わらず通るけど。
$ ruby -v -e 'def A;end'
ruby 1.8.1 (2003-11-30) [i686-linux]
$ ruby -v -e 'def A();end'
ruby 1.8.1 (2003-11-30) [i686-linux]
amrita/node.rb:343: [BUG] Segmentation fault だって
1.0.2
何したら?
amrita/node.rb:343 って何やってるとこ?
>>454
rubyのバージョンも。
>>456
1.8.0
/usr/local/lib/ruby/1.8/timeout.rb:40 [BUG] Segmentation fault
藻前ら、そんなに情報出すのがイヤですか。
ruby -vとスタックトレースくらい出してもバチは当たらんぞ。
とりあえず1.8.0releaseは四ヶ月前もなので、CVS HEADでは直ってることもある。
460444:03/12/01 16:46
>>453
定義ができても、後ろに「()」つけないと呼び出せない。
という話です。
エスパー降臨きぼん
>>459
「藻前」ってどういう意味?
>>459
すみません
1.8.1にしたら治ってるっぽいです

soap関連えらい変わったな・・・
$stdin と STDIN等の使い分けってどんな具合ですか?
ちなみに STDOUT は文句を言われつつ nilとかにも出来ちゃいますが、
$stdout は
TypeError: $stdout must have write method, NilClass given
とか言われますね。
ruby -vとスタートレックくらい出してもバチは当たらんぞ。
むしろ、なにも情報を出さんやつにバチを投げ付けたい。
>>462
また出たな。
「パー"サ"って何?」位の事を書けよ。
レベル低いな。
>>445
lex.cを再度coする。
>>467
パーサともパーザとも発音することを知ってての発言か?
470>444:03/12/02 00:01
>>464

ていうか、定数を再定義するのはダメだろ。
グローバル定数に関しては代入がフックできるので、そこで判定しているのだろうと思う。

いずれにせよ、ふつうはIO#reopen使うよな。
うわ、名前が残ってた
472あほ:03/12/02 00:28
>>464
その日の気分。
>>468
納得いかないが、それでビルドできた。
>>464
額面通りです。
STDOUTはデフォルトの標準出力オブジェクトを確保するための、文字通りの定数。
$stdoutは警告通りにdef writeが要求されていて、STDOUTがデフォルト値。
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%CA%D1%BF%F4#a.24stdout
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%C4%EA%BF%F4

>>470
$stdoutいじるほうが((*びっくり*))じゃないかも。
あうち。$stdinの話でしたか。
とりあえず定数に再代入する癖はやめておいたほうが、
将来の仕様変更で再代入不可能になってしまったときに安心です。
476デフォルトの名無しさん:03/12/02 03:44
ruby1.8.1のsoap4rでxmlのcharsetの変更の仕方がわかりません
Proxyクラスの@mandatorycharsetはunmarshalの時しか使われてないようです
>>470,>>474,>>475
STDOUT=hogeの話は挙動の違いネタに挙げただけで、
いちおう使った事はないです。
あと、別に $stdin,STDINに限らず、
標準入出力関係の三つについて知りたかったけど、
そう大差ないだろうと大雑把な書き方してしまいました。

で、マニュアル読んで理解した分には、STDOUT.reopenは
fork とかで作った小プロセスにも反映されるけど、
$stdout = Object.new だとそうではない。
STD(IN|OUT|ERR) の変更法は IO#reopenしかないけど、
$std(in|out|err)の場合はしかるべきメソッドを
持ったオブジェクトなら、普通に代入してもよい。

ところで「子プロセスにもリダイレクトの影響を与えたい」って、
これは既に forkしちゃったものに対しては、
それが同じソースコード内の rubyプロセスであろうと、
そこからさらに execされたprocessであろうと無関係ですよね?
478デフォルトの名無しさん:03/12/02 07:36
まともな書き込み多過ぎ。普通にruby-list使おうぜ。
>>478
ワラタ
「藻前」ってどういう意味?

とruby-listで聞いてもいいのでしょうか?
>>480
どうぞ
>>480
神になれます。
>>477
既にfork済みの子プロセスの標準入出力を親だけから操作するのは不可能。

もちろん、子プロセスとプロセス間通信して子プロセス側にそういうI/Fを
設けることは可能だろうけど、そういう意味の質問じゃないよね?

ま、そもそもforkすんなってこった。
>>480
まだ流れてこねーぞ?早く聞けよ。
よーし聞かれる前に答えちゃうぞー
486476 じゃないけど:03/12/02 13:22
>>485
いつもごくろうさまです。
487476 じゃないけど:03/12/02 13:35
>>476
全ての文字列を UTF-8 にして送受信するというのではダメなの?

# XML-RPC の例なので関係ないけど、うちのところには、
# XML を encoding="EUC-JP" としてやりとりするサーバ/クライアントがあって、
# そいつらとやりとりするために、Writer に手を入れたことはあったりする。
# Parser は XMLParser を使ってるので変更不要だった。
SOAPのサーバ側でpostgreSQL使ってて、レンタル鯖の事情とかpsqlコマンドで状態確認
する場合を考えてEUC-JPの方が楽かなと
クライアントとサーバでEUCなのに通信だけUTF-8にするのも効率わるいので
>>477
なんで STDOUT.reopenは小プロセスにも反映されるのに、
$stdout = Object.newだとそうじゃないの?
% ruby -rstringio -e'
$stdout = StringIO.new
fork { STDERR << $stdout.inspect }
'
#<StringIO:0x225328>

反映されているような気がするわけだが。
わけだが、何?
print "AAABAAABAAAB".sub(/x*(.*?B)(.*?B)(.*?B)x*/) \
{
$1.gsub('A','X')+
$2.gsub('A','Y')+
$3.gsub('A','Z')
}
#=>XXXBYYYBZZZB
ってやりたいのですが。
subとgsubを再定義するの?
scanでなんとかならんか?
状況がよー分からんけど、変数使うのはダメ?

print "AAABAAABAAAB".sub(/x*(.*?B)(.*?B)(.*?B)x*/) \
{
tmp1, tmp2, tmp3 = $1, $2, $3
tmp1.gsub('A','X')+
tmp2.gsub('A','Y')+
tmp3.gsub('A','Z')
}
変態風に
print "AAABAAABAAAB".sub(/x*(.*?B)(.*?B)(.*?B)x*/) \
{
tmp=$~
$1.gsub('A','X')+
($~=tmp and $2.gsub('A','Y'))+
($~=tmp and $3.gsub('A','Z'))
}
#=>XXXBYYYBZZZB
rep = ["X", "Y", "Z"]
src = "AAABAAABAAAB"
dst = ''
src.scan(/.*?B/).each_with_index{ |s, i| dst << s.gsub("A", rep[i]) }
p dst
tr なら大丈夫だったよ。1.6.8だけど

print "AAABAAABAAAB".sub(/x*(.*?B)(.*?B)(.*?B)x*/){
  $1.tr('A','X') +
  $2.tr('A','Y') +
  $3.tr('A','Z')
}
#=>XXXBYYYBZZZB
>>490
そりゃforkだから。そっから exec してみ。
#!/usr/local/bin/perl
my $obj = { "hoge" => "fuga" };
print $obj->{foo}->{bar}->{baz} . "\n";

↑ Perl だとエラーにもならないけど、

#!/usr/local/bin/ruby
obj = { "hoge" => "fuga" }
puts obj["foo"]["bar"]["baz"]

↑ Ruby だといちいち例外が上がるのはめんどい。
へんなことしてるな。
そうかな?
割と複雑な構造のデータを扱ってて、末端のノードの値を調べようと思ったとき、
それの親ノードの有無を全て検査してからじゃなきゃいけないのが面倒という話です。
1.8にあるinjectがほしかったので、1.6で適当に書いてみました。
module Enumerable
def inject(*a)
u=nil
each \
{
|t|
unless u
if a
u=a[0]
else
u=t
next
end
end
u=yield(u,t)
}
u
end
end
p [["a",1],["b",2],["c",3]].inject(1){|a,b| a+b[1]}
#=>7
なんか、よさげ。
で、質問なんですが、このままだと2個以上引数とれちゃうんで、
1.8みたいに ArgumentErrorにしたいんですけど、どうやるんですか?
>>502
わからんけど、shim に Enumerable#inject あるよ。
ruby-sumo をインストールしたらライブラリ構成が
無茶苦茶になって、動いていたものが動かなくなった。
責任取れ。
謝罪と賠償おつゆ。
>>501
ruby-list で似たような話が何度も出てるから調べてみ。
>>501
perlだとオブジェクト指向がとってつけたようなもんだから
リストやハッシュで複雑な構造のデータを作りがちだが
rubyだと最初から適当なクラスを作ればいいだけの話なので
rubyでperlと同じようなデータ構造を作る君が悪い。
>>507
君が悪いと言われましても、
標準でそういうデータ構造を吐いてくれるライブラリがゴマンとあるわけで。
回避することはできそうですが、普通はみんなどうしてるのかなと思ったわけです。
>>508
ちなみにどのライブラリ?
greentea さん日記やめちゃったの?
>>510
いつもあんな感じ。
512デフォルトの名無しさん:03/12/06 02:43
1.8.1 Preview3 age
513デフォルトの名無しさん:03/12/06 04:18
data.txtというファイルを読み込んで、1行ずつ
要素に持つ配列として、ファイルを出力したいんですが
open("data.txt") {|file|
a = file.readlines
p a
}
これだと、数字ばかりで出力されてしまいます。
何卒どなたか教えてくださいませ・・・。
あほみたいに簡単な質問ですみませんm(__)m
ちなみにdata.txtのないようは
氏名,国語,数学,英語
西山,90,100,20
田中,50,70,90
中村,80,80,70
です。
open("data.txt", "r").each {|line|
 items = line.split(",")
 p items
}
とかでないの。1.8ならCSVクラス使うとか。
p を puts に変えてみるとか
漢字コード指定してないから p だとエスケープして表示されるとか?

Shift_JIS なら ruby -Ks
EUC-JP なら ruby -Ke とか。
ヒントは「数字ばかり」です。
いや、てか、pでは日本語表示できないんじゃ?
昨日から始めたばかりなんでよく分からないんだけど・・・・・・
>>518できるよ。日本語がエスケープされちゃうのはdump。
>>518
-Kオプション参照
p a.to_s
とか?
だからEUCなら

$ ruby -e 'p ["あ"]'
["\244\242"]

$ ruby -Ke -e 'p ["あ"]'
["あ"]

ってことだ。
考えなしに漢字として出力してしまうと、ターミナルで
文字化けする場合があるでしょう?
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Object#inspect
(文字コード無指定のために)文字化けするかもしれ
ない"漢字"よりも、文字コードそのものを出力した方が、
多くの人間が「読める」のです。

そもそもpとかinspectって、主な用途はdebug print
じゃないかなぁ。処理に使うのはprintとかwriteじゃない?
524513:03/12/06 21:10
printで出力すると
氏名,国語,数学,英語
西山,90,100,20
田中,50,70,90
中村,80,80,70
と、そのまま出力されてしまうんですよ。
結果として["氏名,国語,数学,英語", "西山,90,100,20", "田中,50,70,90", "中村,80,80,70"]
ってな具合に出力したいんです。。。
人の話をきけよ
人の話を聞けって
>>524
それ先に言えよ。
gpgを呼び出して公開鍵を登録するってメソッドを書いています。
結果を取り込んで、鍵IDを抽出するってルーチンを書きたいのですが、
gpgを実行した後どうしたらいいのかわかりません(´-`;)

def entry()
option = " --import pktmp"
command = GpgPath + option
exec ("#{command}")
end

この後どうやって結果を取り込めば良いのでしょうか?
STDIN.getsとか使ってみましたが、駄目でした。
>>524
ar = Array.new
open("data.txt").each{|line|
 ar << line.chomp
}
p ar
execすると、自分がそのプロセスに変身してしまって、
スクリプトのそこより後の部分が実行されなくなるんじゃ
ないかしらん。

外部コマンドを起動するだけならsystemを、
入出力をしたいならIO.popenあたりを使ってはどうでしょ。

531528:03/12/06 23:02
>>530
レスありがとうございます。やってみます。
EclipseのプラグインのRDTの開発って止まってるんでしょうか?
533476:03/12/07 03:46
>>476
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/38857
ありがとうございました

ML入ろうかな・・・
534528:03/12/07 07:51
色々やってみた結果、どうもgpgの出力は標準の出力じゃないみたいで
gpg --import pktmp 2>&1 | tee result
を、systemで実行して、resultを開いて中身を見るという泥臭い処理になってしまっています。

ここのところ、スマートに書けないものでしょうか?
>>534
require 'open3'
{'a' => 'b', 'num' => 123}
というハッシュを元に、条件に応じて
@a = 'b', @num=123
又は
@a2 = 'b', @num2=123
みたいなインスタンス変数への代入をしたいのですが、
どうするのが楽でしょうか?
Object#send
>>536
考えなしにeval。
When in doubt, use brute force.
evalを試してみましたが、
{'a' => 'b', 'num' => 123}.each{|k, v|
if v.class == String
eval("@#{k} = '#{v}'\n")
else
eval("@#{k} = #{v}\n")
end
}
こんな感じに書く必要があるのでしょうか?
条件に応じて変数名変えるような事もすると、
期待したほどにはすっきりしないもんだなぁ。
>>539
{'a' => 'b', 'num' => 123}.each{ |k, v|
eval "@#{k} = v"
}
>>540
あー、なるほど。ありがとう。
# ちなみに上の\nは printに置き換えて試したときのゴミでした。
漏れは eval 使わないといけないと思ったら、
自分は間違ってることしてるんじゃないかと疑うようにしてる。
「漏れ」ってどういう意味ですか?
>>543
>>543
ちょっとは学習してください。「漏れ」については以前にも聞いてなかった?
キチガイの相手をする奴はキチガイ。
>>544
「俺」を「漏れ」と書く必要性はあるんですか?
549280:03/12/08 02:47
>>548
もういちど言いましょうか。

必要性はありますよ。
2ちゃんねるでしか通じない隠語を使うことで、
心理的に余所者を排除するという意図があるわけです。

端的に言えば、このスレにあなたのようなひとは不要というわけです。
>>535
解決できました。ありがとうございます。

しかし、gpgは何故標準エラーに出力するのでしょう?
標準エラー使って何か良い事ってあるんですかね?
>549
必要性はねェだろ
隠語を使用したヤツが、内心そう認識しているだけ

余所者とこちら側の違いってなんだよ
こちら側の人間って、
次々と思いつきで勝手に作られてく用語を、
2チャンネル内で収集して、その意味の把握に努めている人間かよッ
>>551
一度聞いて納得行かなかったらよそに行けばいいじゃん。
別に無理にここで話題に加わる必要はないですよ?
553551:03/12/08 15:46
一度聞いて納得しなかったらってなんですか;
俺この話題に触れたの551で最初なんですけど
まあ、そんな無理はしませんよ
じゃあこれでさようならだね。
555デフォルトの名無しさん:03/12/08 17:50
Struct.newはクラスを返してくれますが,こういうのをユーザ定義で実現できませんか?
メソッドの中でクラスを定義することはできないようなのですが.

Dog = Struct.new("Dog", :name, :age)
fred = Dog.new("fred", 5)
fred.age = 6
printf "name:%s age:%d\n", fred.name, fred.age
>>555
よく判らないけど、クラスじゃ駄目なの?
>>555
$ ruby -e 'foo = Class.new do def foo;:foo;end;end; p foo.new.foo'
:foo
558555:03/12/08 18:22
>>556,557
なるほど.どうもありがとうございます.
以下の2つはどう違うのですか?
同じだったら下の書き方でメソッド内に定義できてもいいと思うんですが.

foo = Class.new do
def foo
:foo
end
end

class foo
def foo
:foo
end
end


>>552
「ですよ?」ってどういう意味?
漏れはそういうとこに「?」つける香具師に吐き気を催す
>>560
香具師ってどういう意味ですか?
かぐし?
a. 香具を作り、また、売る人。
b. 縁日・祭礼などの人出の多い所で見世物などを興行し、
また粗製の商品などを売ることを業とする者。てきや。「大道―」「―の口上」
つまりヤクザな連中の副業
>>560
Ruby のスレで「香具師」の話を出す必要性はあるんですか?
>>558 classだとクラス名は大文字で始まってないとダメ。 Class.newだと無名クラスを生成できる。
あと、
class Foo
p Foo
end
は通るけど、
Foo = Class.new do
p Foo
end
はエラー。
567555:03/12/08 21:39
>>566
どうもです.
クラスには名前が2種類あるわけですね.
オブジェクトとしての名前とクラスの実体を参照するための名前と.
             /ヽ       /ヽ
            /  ヽ      /  ヽ
  ______ /     ヽ__/     ヽ
  | ____ /           :::::::::::::::\
  | |       //       \  :::::::::::::::|
  | |       |  ●      ●    ::::::::::::::|   ......
  | |      .|             :::::::::::::|   
  | |       |   (__人__丿  .....:::::::::::::::::::/  
  | |____ ヽ      .....:::::::::::::::::::::::< 
  └___/ ̄ ̄       :::::::::::::::::::::::::|
  |\    |            :::::::::::::::::::::::|
  \ \  \___       ::::::::::::::::::::::::|
569デフォルトの名無しさん:03/12/08 23:40
こんばんは、みなさま.
RubyでJPEGファイルを操作できるクラスライブラリってありませんか?
例えば以下のような使い方をしたいのです。
(そういうライブラリがあるとして、名前をGLとすると)

begin
objGL = GL.new

objGL.setOpen("FILENAME") # ファイルオープンする

objGL.chgImg(640,480) # 画像解像度を落とす

objGL.prtImg() # 画像を出力する

end

画像の表示部分はHTMLに任せようと思ってるのですが
解像度を落とす方法が知りたいのですが・・・
直接扱うのは知らないけど、
こんなのは?
http://raa.ruby-lang.org/list.rhtml?name=rmagick
GDでやれよ
572デフォルトの名無しさん:03/12/09 00:33
>> 570
こんなんあったんか・・・
ちょっとインストールしてみて、試してみます。
とりあえず画像を扱えるぽいけれど、使いやすい形
かどうか・・・自分ですこし改造してみよかな。

>> 571
rubyからGD呼び出して使えばおもしろそうですね。
GD rubyで調べたらこんなのがでてきました・・・
こっちをつかってみたい気がします。
hhttp://gruby.sourceforge.jp/
vRubyもよろしく
ところで全然関係ないんだけど、
cryptってどう読むの?

くりぷと?
>>560
どんどん吐いてくれていいですよ?
>>576
「ですよ?」ってどういう意味?
漏れはそういうとこに「?」つける香具師に吐き気を催す
>>577
Death Yo?
やあ、氏ね?
>>579
「氏ね」ってどういう意味?
>>580
Shine
輝け
1.8.1 になってからあちこちのライブラリで NameError:uninitialized constant 続発だな。なんだこれ。
>>582
具体的にはどれ?
>>582
いちいち ML に報告しる!
ここでもいいけど。
ここでいいよ
漏れも見てるしw
>>585
おまえ誰だよw
「漏れ」って誰ですか?
/:|)
-(:O)
>>587
オマイは日本語の一人称を全て把握してるのか?
そして、ある時点からは学習が停止するのか?
>>590
「オマイ」ってどういう意味?
そんなにRubyが嫌いなんだ?
>>589
「-(:O)」って誰ですか?これは初めて見た。
def hoge
def fuga
"in fuga"
end
print "in hoge ", fuga, "\n"
end
hoge
p fuga
---
fugaって外からでも呼べちゃうんですね。
ん、なんか色々変なんだよね。
作者のセンスかな。
>>594
メソッドってネストできるのか
2.0まだぁ〜?
スコープとかはやく変わってくれい。
>>596
1.8から変わったんだよ。効果は上下に並べて書くのと同じで、
Lisp とかのローカル関数とは違う。module_eval とか
instance_eval のブロック内でメソッド定義できるようにっ
てことだろうな。
超初心者でもオブジェクト指向が理解出来るサイトってないですか?
この際Rubyを例にしてなくてもいいです。
>>600
そこはもう既に見ました
殺伐としてて嫌です
Programming Rubyのクラス・オブジェクト・変数の項は?
ttp://www.rubycentral.com/book/tut_classes.html
わかりやすい英語だし、無料だし、
  After months of work, our highly paid Research and Development
  folks have determined that our jukebox needs *songs*.
こんなベタなアメリカンジョークもあるし。
>>590
ストーカーを相手にすんな。スルーが一番です。
ストーカー?
ロシア映画
matzがアスペクト指向について何か意見を述べた事はありますか?
matzはアスペクト指向には興味がないらしい
>>607
そうなの?Javaも興味が無い見たいだし…。

つーかmatzが今興味を持ってる物は何なの?
Ruby2.0
>>609
納得。
>>607
def wrap:foo
end

とかはアスペクト指向じゃないの?
612デフォルトの名無しさん:03/12/13 17:27
以下の ほげほげ の個所で レスポンスヘッダの値を参照することってできますか?
getの進捗状況を表示するためにContent-Lengthの値を使いたいのですが・・・

http = Net::HTTP.new("www.foo.com", 80)
http.get("/index.html") do |str|
ほげほげ
end
request_get を使う。
614デフォルトの名無しさん:03/12/13 17:46
line=gets
def wari(x, z)
(z/x)*100
end
printf "%d\n"

↑どこを直せば動作しますか?
>>614
何をしたいのかわからん。
616デフォルトの名無しさん:03/12/13 17:51
自分で作ったメソッドで読みこんだ数値を計算出来るようにしたい
>>614 全部。
618デフォルトの名無しさん:03/12/13 18:16
はぶし!!
>>602
どういうジョークなの?
オレの語学力では理解できなかった。
キサマ……
Ruby だけじゃなくて、プログラミング自体シロウトだな!!

>>611
rubyの特異メソッド等を用いてアスペクト指向を表現できるのではという事で
しょうか?おそらくそれである程度似たような事ができると思いますが、
AspectJと比べると表現力に乏しいという気がします。
>>614
1. eval する
2. ちゃんと字句解析する
3. racc を使う
2と3はどう違うのかと小一時間(ry
orecc か raccの違い
>>619
 ジュークボックスには再生する曲が必要だなんて
あたりまえなのに、わざわざ「研究開発部門」が
数ヶ月もかけて、「断定した」ところが可笑しい
・・・んだと思う。

 白衣を着た黒ぶちメガネの研究員たちが機械から
出力される紙テープをたぐりながら、「主任!解析
結果が出ました!どうやら・・・・ジュークボックスには
音楽が必要のようです!」「なんだって!すぐに報告を
まとめてくれたまえ!」「はっ!」

 みたいなのをイメージしました。
626デフォルトの名無しさん:03/12/14 00:02
class Card
def initialize( question, choice )
@question = question
@choice = choice
@link = []
end
def link( next_card )
@link = next_card
end
def ply
puts @question
if ( @choice != [] )
for i in [email protected]
print "#{i}) #{@choice[i]}\t"
end
print "\nPlease chose the number: "
ans = gets.to_i
@link[ ans ]
else
nil
end
end
end
627デフォルトの名無しさん:03/12/14 00:03
a = Card.new("三角形面積求める?", [ "する", "やらない" ])
b = Card.new
c = Card.new("バイバイ", [])
a.link( [ b, c ] )

current = a
while (current)
nxt = current.ply
current = nxt
end

このプログラムの b = Card.new(""[])
この部分に
def sannkaku(x,y)
(x*y)/2
end
puts sannkaku(5,5) 
の結果を表示するようにしたいんですけど
どうすればいいか教えてください。
やらないか?
629デフォルトの名無しさん:03/12/14 00:30
なにを?
ply って play の略なんだろうか。
ttp://dictionary.goo.ne.jp/search.php?MT=ply&kind=ej
next が使えなくて nxt にするなら、
current を cur に略してほしい気持ちでいっぱい。
つうか nxt.sourceforge.jp を思い出した。
632デフォルトの名無しさん:03/12/14 01:28
適当に名前付けただけ
むしろ不適当
たけし・さんま・るびきち
面白トライアングルの話が出来るスレと聞いてきたのに
出来ないんならお笑い板帰るわ
意味質問厨よ、「アクペクト指向ってどういう意味?」と、なぜ訊かん。
ってゆーか、俺知らないんだわ。誰か教えて。
とりあえずググってはみるけどさ。
↑↑↑アスペクト指向とは何か↓↓↓
http://pc2.2ch.net/test/read.cgi/tech/1031056945/

ここできいてもマトモな答えが返ってくる保証はないな
ふと思ったんですが、Ruby でプログラミングを始めた人が型宣言するタイプの
言語に移行するならなにがおすすめ?
638612:03/12/14 09:28
>>613
ありがとうございます。
できました。
WinXP ActiveScriptRuby1.8.0.5 +RDEで以下を実行すると

require 'open-uri'
p open("http://www.ruby-lang.org/").read

C:/Program Files/ruby-1.8/lib/ruby/1.8/net/protocol.rb:84:in `initialize': プリンタ キューがいっぱいです。 - connect(2) (Errno::E061)

って言われます。PC再起動しても同じでした。
2時間くらい前に試した時は動いたと思うのですが。
まだいろいろいじっている段階なので、その時のソースがありません。
リファレンスとかMLを検索してみましたがわかりませんでした。
どのへんがよくないのでしょうか。
>>621
いや、Ruby2 にあんな機能がはいるって聞いたから。
>>637
オブジェクト指向言語ならSather
関数型言語ならHaskell
>>639
それは本当はWSAECONNREFUSED。

$ cvs ann win32/win32.h | grep REFUSED

Annotations for win32/win32.h
***************
1.44 (usa 26-Aug-03): #define ECONNREFUSED WSAECONNREFUSED

2003-08-26以降の版ではちゃんとでるはず。
643639:03/12/14 13:24
>>642
ありがとうございます。

ActiveScriptRubyのRubyは配布サイトによると2003-08-05のもののようです。
WSAECONNREFUSEDはサーバに拒否されたという意味のようですね。
試しにローカルにWWWサーバを立てたところ、localhostにはアクセスできました。
そこで、それをプロクシとして動作させることで外部のHTMLファイルをGETすることができました。

私のネットワーク環境の問題であったようです。
おさわがせしてすみません。
>>640
>>621 は目が悪くて wrap:foo と wrap::foo の区別がつかないと思われ。
それなら wrap::foo じゃなくて wrap.foo だと思われ。
ここではAspectRは無視?
ここでは Ruby Object Teams は無視?
「思われ」って何ですか?
サトラレみたいなもんじゃねーの。
統合失調症の初期症状かと思われ
>>644,645
ごめん。rubyは殆ど分からんしランゲージリファレンスにも見当たらなかったんで
勘違いした。少しアスペクト指向を調べてみてコードの挿入や削除をするのに便利
そうだったんで有名な人はどう思ってるか聞いてみたかったのよ。
652デフォルトの名無しさん:03/12/14 19:17
1.Ruby1.8のwin32版をインストールする。(2に付属するruby1.7を使ってもいいと思う)
http://www.dm4lab.to/~usa/ruby/
↑こんなところからとってくる。

2.RDE(Ruby用のIDE)
http://homepage2.nifty.com/sakazuki/rde.html
ここからとってくる。(0990を展開して、そこに0991を展開してのをコピーすればいいだけ。)
(設定で、エディタのフォントを日本語フォント(MSGothicなど)に設定、
あと、僕の場合はさっきとってきたruby1.8の中のrubyw.exeを使うように設定した。)

3.次に、GTK2 for Windows をインストール
(.exeをダブルクリックすれば、あとはインストーラーまかせ。超簡単)
http://www.dropline.net/gtk/download.php

4.ruby-gtk2を取ってきて、rubyをインストールしたフォルダのlibに適当にコピーする
http://sourceforge.net/project/showfiles.php?group_id=53614
(とってくるファイル)ruby-gtk2-0.8.0-1-i386-msvcrt-1.8.zip

5.日本語をうまく使うための設定は
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A5%AC%A5%A4%A5%C9+Windows%CA%D4
ここを参考。
(僕の環境ではうまく行かなかったが。。Ruby1.8だからかな。)

これで、RDEから簡単に、GTK2が使える。超快適。
653デフォルトの名無しさん:03/12/14 19:18

WindowsからRubyに親和性の高いgtk2を使う設定。
RDEも使うと、とっても快適。
インストールマンドクサ⊂⌒~⊃。Д。)⊃
gtk2が標準の添付ライブラリに入っていれば、幾分楽になるんだが。
要望
RDEにLinux版、BSD版、Solaris版を作る(GTK希望)
RDEが常に最新のRubyをパッケージしてくれる。
Rubyにruby-gtk2が添付される。
あと、GTKのソースを吐いてくれるツール希望。

これを実現してくれるなら、寄付金だすんだが。
>>656
RDEはデルファイなのでカイリックスに移行出来れば・・・
>>656
> RDEが常に最新のRubyをパッケージ

継続的なものはさすがに難しいような。
>>656
> RDEにLinux版、BSD版、Solaris版を作る(GTK希望)
DelphiからGTK+(C|Ruby)だと、ほとんど書き直しだろう。

> Rubyにruby-gtk2が添付される。

サンプル除いても、1.2MBくらいあるんだが。

> あと、GTKのソースを吐いてくれるツール希望。
glade?
流行らんな。
RDEではなくEclipseをフルサポートしろと何度言わせれば・・・
簡単インストールFxRubyやろうよ。
http://prdownloads.sourceforge.net/rubyinstaller/ruby180-10.exe?download
EclipseのプラグインRDTの開発どうなってんだよぉー
Rubyを流行らせるにゲーム開発環境を提供すること。
だから、Ruby/SDLとgtk2を標準添付にしてください。
この流れで誰もFreeRIDEに言及しないのはなぜ?
>665
FreeRIDEってfxruby(fox-ruby)使って書いてんの?
動作速度悪いのでは。。
>>664
いらねーよ
使いたいんなら自分でインスコしろよ
>>664
正直、流行らせる必要はないと思われ。
どうしてもって言うなら664がパッケージ作ってみては?

それよりrdtoolとSQLiteが標準化されてほしいかも。
<% 〜 %>の中の文字列って
pat = /(^<%)( .+)($%>)/
でマッチさせて$&で取り出せばOKですか?
ついでになんですが、eRuby使っているもので、
↑の正規表現をeRubyコード中に埋め込むと
eRubyが誤作動を起こします(当たり前ですが)
何か回避するいい方法ありませんか?
>>669-670
/(<%.+?%>)/
で、eRuby内なら<%%と%%>がエスケープになるはずだから
/(<%%.+?%%>)/
じゃないかな?
^や$の意図がびみょうにわからんけど。
というか$が行末という意味なら、位置間違ってます。
そういや $ == \Z != \z ですよね。
となると、なんで ^ == \A != \a じゃないんだろ?
Perl互換のための足かせ?
673671:03/12/16 11:12
あ、中の文字だった。それなら/<%(.+?)%>/ですね。
そのへんの括弧はお好みで。
ちなみに + に ? をつけなかったり ^ $ をつけると、
一行に複数個の<% 〜 %>があったときに哀しいことになります。
>>671
$の使い方間違ってましたかw(ノ∀`)アチャー

この意図としては、送られてきたeRubyコード(htmlと混在している)
中からeRubyコード(<%〜%>の〜部)を抜き出すといった作業を
目的としてます。
正規表現のマッチングが上手くいってないみたいですが、どの
パターンが上手くいきますかね?
675671:03/12/16 11:56
>>674
上手くいくって、こういうこと?
"<% eruby1 %>plain<% eruby2 %>".scan(/<%(.+?)%>/)
=> [[" eruby1 "], [" eruby2 "]]
>>667-668
おめーら、matzと一緒で、ゲームを卑下してるだろ。
ゲーム開発なんか低能おこちゃまプログラマのオナニーだと。
677668:03/12/16 12:46
>>676
卑下してるのは>>676自身だと言ってみるテスト。
もっと胸張っていいんじゃない?
ゲーム開発は、下を見るときりがないけど、上を見てもやっぱりきりがない
世界だと思うんだけどね。

で、流行る流行らないでモノを考えるのはどうかってこと。

スクリプトが動作する環境は増えてほしいから普及自体はしてほしいけど、
それは流行るのとはちょっと違うのです。
678676:03/12/16 13:36
>>677
ちくしょう!冷静だな。
Google でたまたまヒットした ruby-dev のアーカイブ。
面白すぎて、そのスレッド全部読んじゃったよ。
>>679
どのスレッド?読みたい。
>>680
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/14209

Virtual Machine に関する資料を漁っている最中で、ruby 関係だったから
てっきり、次期 Ruby の実装について議論されてるのかと思いきや。。
>>681
サンクス。懐かしいな。やっぱり金光タンの関わるスレッドは楽しいね。
チョソか。
>>682
彼は有名人なの?
あのMLでのやりとり、なんか微笑ましかったわ。
保存しとけばよかったかな。
>>684
Ruby 256本 をいっぱい出した立役者ではある。
686684:03/12/17 23:11
>>685
げげっ、そうなのか。
256本を買う前に知っといてよかった。
情報サンクス。
げっ げっ げげげのげげっ、
>>681
リンク先が見えないんだが、ひょっとして「Rubyにグラフィックエンジンを実装しる!」って話?
「実装しる」ってどういう意味ですか?
この前食べた実装汁はうまかったなあ
いいねえ。やっぱり冬は実装汁だよな。
実装汁奉行ウザー。
好きなようにさせてくれよ実行汁くらい。
694685:03/12/18 16:28
>>686
あれ、言葉が足りなかったかな?

256本を *書かせた* ひとで、書いたひととは別です。
あと、RHG の出版社をさがしてくれたらしい。
編集者としてはいいひとなのかも。
いいひと?
いい人ニダ
Rubyの未来は金光様が握っておられます。
みなさん、失礼のないようにお願いしますよ。
悲しい言語だな。
金光です。どもっ。


M.Kanemitsu
―――――――――――――――
金光雅夫 [email protected]

http://www.ne.jp/asahi/masao-k/home/
http://isweb14.infoseek.co.jp/art/soshikon/
http://isweb15.infoseek.co.jp/computer/ruby256/
〒216-0031 川崎市宮前区神木本町5-14-12
自宅: 044-877-5006
携帯: 090-2753-5292
削除対象 *
個人名・住所・所属
一群:
 公開されているもの・情報価値があるもの・公益性が有るもの・等は削除しません。
削除の可否は管理人が判断します。
二類:
 外部から確認できない・責任や事象に無関係な情報は削除対象です。
公開されたインターネットサイト・全国的マスメディア・電話帳で確認できる・等、
隠されていない情報については削除しません。
三種:
 誹謗中傷の個人特定が目的である・文意により攻撃目的である等の場合は全て削除対象になります。

電話番号
 電話番号は、一部伏字・それを示唆するような文字列・等でも、
確認方法が確立していない為に原則として全て削除対象です。
 明らかに公的な物・投稿者がハンドルキャップ使用・文意によって本人が公開したと
判断できるもの・リンク先で確認できるもの・等は、自己責任として削除されないことがあります。

メールアドレス
 騙りの可能性や悪意が明らかで攻撃を目的としている・趣旨説明が無く衆目に晒すことを
目的としている・等の場合のみ荒らし依頼として扱います。メール欄に書かれていても同様です。
判断は文意によります。
Dir::glob の問題がよくわからんのですが、
Windows で multi-byte な文字を含むファイルがあった場合に
Dir::glob が使い物にならなかったので、それを直している、ということでしょうか?
Perl の glob なんかはどうなってるんだろう?
jperlはともかく、perl 5のencoding使うのはダメみたい。

# multi-byte対応されてたのは、File.dirnameとかexpand_pathだけだな。
ところでお前ら昨日のタワラちゃんの披露宴はちゃんと見たんだろうな?
(;谷)ノ<ボスケテ
別に呼ばれてないし。
>>705
何かと思ったら……
IDがRubyってことか
IDがどうだらっていうやつ抹殺したい。
正規表現中のメタ文字を無効にするにはどうすれば良いんでしょうか?
Perl での /\Q...\E/ みたいな…
>>708
/#{Regexp.quote("...")}/
>>709
それってなんとなくむずがゆい気がするんだけど、かといって、
Regexp::compile(Regexp::quote("..."))
ってのもくどい気がして、なんかこう、一発で書けないもんかね。
>>710
今のとこ一発で書けるような方法はない。

それは、前に要望(RCR?)が出てrejectされたような気がしなくもないけど、
記憶違いかも。
自分でメソッド定義すればいいじゃん。
微妙にスレ違いだけど、 akr さんはプログラミングの本を書いたりしないの?
書いてくれれば僕なんかは絶対買うのに、、、
彼は文章を書く暇があったらプログラム書くタイプだろう
>>712
ま、そうなんだけどね。やっぱ %記法の拡張欲しいなあ。 %R!REGEX! とかやりたいよ。
>>709
ありがとうございました。
大変助かりました。
>>715
提案してみれば。
1.8.1間際だから今はまず入らないと思うけど。
>>711
RCR (?) ってなんじゃらほい?
その手のプロトコル (?) ってどっかにまとまってますか?
>>718
Ruby Change Request
http://www.rcrchive.net
>>719
thx!
%R!STRING! == Regexp.new(Regexp.quote("STRING"))
ってこと?
でも %q, %Q の関係と逆になるのがイタイなぁ。
>>721
そうそう、そゆこと。
%q, %Q と対象になっていいかなと思ってたんだけど、そうか、逆やったか・・・
>>714
akrさんてどういうプログラム書いてるの?
>>724
なんでこのページ?と思ったけど、たしかにakrさんのが多い。。
zsh でかいてくれないかなぁ、、、
zsh だったらこないだ雑誌記事書いてたが……
RFC 2822 の Tanaka Akira さんって akr さん?
>>723
田中哲 akr でぐぐれば。
ruby 1.6.8 (2002-12-24) [i386-mingw32]でこんなスクリプトを実行すると、、、

require "amrita/template"
include Amrita

tmpl = TemplateText.new('<a id="a">り</a>')
tmpl.xml = true
tmpl.expand(STDOUT, {:a => "A"})

REXMLがエラーをはくのですが、どこを直せばいいでしょうか。
テンプレートの「り」をなくせばエラーはなくなります。

D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/rexml/element.rb:625:in `parse_stream': malformed XML: bad content (REXML::ParseException)
at about line :


from D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/rexml/document.rb:191:in `parse_stream'
from D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/amrita/xml.rb:95:in `parse_text'
from D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/amrita/template.rb:405:in `load_template'
from D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/amrita/template.rb:208:in `setup_template'
from D:/opt/ruby-1.6.8-i386-mingw32/lib/ruby/site_ruby/1.6/amrita/template.rb:115:in `expand'
from amrita.rb:6
>>730
REXML は EUC-JP や Shift_JIS な XML には対応してないけど、そのへんは O.K. ?
NilClass を継承したクラスのオブジェクトって作れない?
class MyNilClass < NilClass; end
mynil = MyNilClass::new # => error
>>732
NilClass.new自体がないからなぁ。Singletonみたいなもんだし。
>>733
それで、 initialize や new を def すればいけるかなーと思ったのですが、
それでもダメなので、どうしてかな&どういう仕組みになってるのかな、
と思ったんです。
>>734
Cレベルでいろいろやってるんだろうから、rubyレベルで
考えてもしょうがないんじゃない?
「Object-Module-Classの環」の同類だろうし。
# RHG読みたい。。早く公開されないかなぁ。

つか、nil以外のNilClassインスタンスってなんの役に立つの?
>>735
買えよ!
>>734
1.6ならできなくはない。
1.8ではそういうことを排除するような仕組みにしてある。
>>737 アロケータ書けば1.8でも可能なんじゃない?
どのみちrubyだけではどうしようもない領域だけど
>>735
図書館にあるぞ。住んでいる区、市の図書館の蔵書をインターネットで検索してみろ。
>>731
してるよ。
>>731
そ、そうなんすか・・・
ども。
リリース直前とは言え、ruby-devとlist合わせて1日100通ながれるとは
ステキなクリスマスイブですね
1.8.1 release age
>>741
サポートしてるってば。
ドキュメントくらい読めよ。
746デフォルトの名無しさん:03/12/25 10:40
聖夜のプレゼントキター
>>738
> >>737 アロケータ書けば1.8でも可能なんじゃない?
そりゃもちろん、そうじゃなきゃ拡張ライブラリでクラス作れなくなっちゃう。

それよりも、>>732が何をしたいのかが気になる。
>>747
nil にメソッドを追加したいことがあって、NilClass にメソッド追加するよりも、
NilClass を継承したクラスにメソッド追加する方がいいかな、と思ったのです。
で、そもそもなんで nil にメソッド追加しようと思ったか、
その大元のきっかけはもう忘れちゃった。
>>747
nil自体に特異メソッドを追加するのが正解。
まあ、nilにメソッドを追加したいという発想が、大抵の場合×なわけだが。
トークセンスzeroきちさん

メリークリスマス

今年の口癖は「彼女が欲しい」でしたね
>>750
それはよそのスレでどうぞ。
obj.empty?
とかして、「チッ、nilだったか」という場面が無いでもない。
753デフォルトの名無しさん:03/12/25 22:27
予約語と処理系標準の識別子(__FILE__, $0, new, eachなど)一覧ってないですか?
754デフォルトの名無しさん:03/12/25 22:28
>>753
あります
nullpo
>>753
リファレンスマニュアルはどのくらい調べましたか?
>>753
そもそもリファレンスマニュアルがどこにあるかご存知ですか?
>753
きれいなお姉さんは好きですか?
rubyに予約語は存在しない。
>>745
そ、そうなんすか・・・
ども。
>>760
インスコしたREXMLのバージョンによる。
インスコってなに?
tdiary でタイトル [keyword]で選んだ大文字と小文字を区別してますけど、
[ruby] と [Ruby] を同一と認識させることはできますか?
>>763 できません。技術的には困難ではないと思うが。
>>763
tdiary.rb の TDiaryCategoryView#initialize を
こう書き換えるのはどうよ?
…重くなるだろうなぁ。

@specified = @cgi.params['category']
@specified.delete("ALL")
@specified.map! { |str|
 class << str
  def ==(other)
   /\A#{self}\z/i =~ other
  end
 end
 str
}
@categorized = {}
>>759
予約語ありますよ。
だからよけい「リファレンス嫁!」なわけだけど。

でもnewとかeachとかはどうなんだろ。メソッドに関してはまとめようが
ない気がする。言語的には、Class#newを呼んでるだけだったり、
Enumerableが#eachを要求してるだけだったりだし。
>>753
ちなみに,$0 も new も each も予約語ではない。
# ハテ,リファレンスには __FILE__ と __LINE__ が抜け落ちてるな。rb_reserved_wordには入ってるから予約語だろう。
>>764-765

自分は tdiary を借りて利用している人間なのですが、カテゴリーの名前を
case-insensitive にしたらなにか不都合な点でもあるのかな?と思って質問
してみたんです。

[ruby]、[Ruby] でうっかりやってしまった人は自分以外にも結構いそうだし。

case-insensitive だと「VB 見たいで(゚д゚)マズー」と思うか、「scheme 見たいで
(・∀・)イイ!」と思うかは感性によるかもしれませんが。

>>768
せっかくHackしたのに。(´・ω・`)ショボーン
Regexp使わずにdowncaseでもしろよという感じですが。>>765

Stringがcase-insensitiveに対応してない、というのが一番の理由じゃないかな。
でもちょっと「びっくり」なところではあるよね。
たださんってこういうところを気にしそうな感じがするけど。

あ、String#casecmpなんてあるのか。
String#caseeql?とかも組み込みにあれば、alias streql? ==; alias == caseeql?
とかやった特異クラスやサブクラスをなんの気兼ねもなく使えるのに。
tdiary.confあたりで
$= = true
という手もある。警告出るかも知れんが。
>>748
もしそうしたとしても、nilはやっぱりそのMyNilClassのインスタンスじゃな
いから意味がない。

あと一ついっておくと、1.8以降ではnilの特異メソッドとNilClassのインスタ
ンスメソッドは完全に等価。まぁNilClass自体がnilの特異クラスみたいなも
んだが。
これはtrueとTrueClass、falseとFalseClassでも同じ。
1.8.[01]-mswin32のirbがよくsegvしてフラストレーションたまるんだけど、
自分だけなのかな?

調べてみるとreadline.soが悪さしてるらしく、
ruby -rreadline -e'Readline.readline()'
でカーソルキーでもなんでもいいから押しっぱなしにすると
10〜20秒でsegvりました。
キー操作が計500回ぐらいに達すると発生するらしい。
773初心者:03/12/27 01:32
Rubyで書いたプログラムのソースから、
使ってる変数とか、メソッドの一覧とかを取ってくるには、どうすればいいんでしょうか?
簡易IDEみたいなのを作りたいんですが。
774デフォルトの名無しさん:03/12/27 02:27
ruby-gtk2でdrawableのダブルバッファリングをやりたいんだけど、
gtk2で追加されたGdk::Pixbufの使い方がさっぱりわかりません。

gtk1のころはPixmapを使ってやってたのですが、Gdk::Drawable.draw_pixmap
がなくなってしまっているようなので、pixmapからdrawableに書き出せません。

ってことでGdk::Pixbufを使うってのはあってますよね?

Gdk::Pixbuf.from_drawable の使用法
ruby-gtk2でのダブルバッファリングの実現法、サンプル

などをご存じの方はいないでしょうか。
>>773
本当に簡易なものでいいなら

メソッドは
/^\s*def\s+(\w+)/

変数(定数含む)は
/^\s([@\w]+)\s*=/

で大体のものは取れる。精度は悪いけどね。
本格的にやるならパースしてやる必要がある。
Rubyのパーサのコードなりrtagsのコードなりを読むよろし。

あと、簡易的といえばruby-mode.elを読むという手もあるかな。
elispが読めればだけど。
>>772
readlineはどこの?
cygwinのってことはないよな。
>>776
http://jarp.jin.gr.jp/win32/
のreadline.dllです。
# cygwinのじゃそもそも動かないような?

ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.0-i386-mswin32.zip
http://jarp.jin.gr.jp/win32/readline-4.3-1-mswin32.zip
の一般的と思われる組み合わせでもダメだし、
ruby-1.8.1.tar.gzとreadline-4.3-1-src.zipを全部VC7.0で
ビルドしてみてもダメ。

TietewさんのBeckrb用rubyも静的リンクをしたreadline.soを
含んでるとのことだったので試してみたのですが、これもダメ。
ftp://ftp.tietew.jp/pub/becky/beckrb/ruby-1.8.1-20031225_vc71.zip

readline-4.3-1-src.zipに入ってたサンプルだと問題ないので
readline.dll自体は悪くなさそうなんだけど、
でもbuffer overflowくさい挙動が気になる。

…って、やっぱ自分だけですか?鬱だ。
>>777
artonさんのとこにパッチが出てる。
readline自体のバグのようだ。
>>778
情報thx!
でも、ActiveScriptRubyあたりにありそうな気がするのですけど、
どうにも見つかりません。URLを晒していただけませんか?
ああ、artonさんの日記でしたか。
http://arton.no-ip.info/diary/20031227.html#p03

ありがとうございます。>artonさん
うう、まだsegvするみたいです。。・゚・(ノ∀`)・゚・。
irbでirb/completionつけてると、
[Tab][q][Tab][Tab] や [m][Tab][Tab][Tab] など
tab三回で落ちてしまいます。
[Tab]の代わりに[Esc][Esc]でも同様でした。
[a][Tab][Tab][n][Bs] でもなります。
>artonさん
度々すみません。
以前の問題は解決されているので、新しいのがロードされているはずです。
ESC押しっぱなしだけでは大丈夫ですけど、

C:\>irb
irb(main):001:0> require 'irb/completion'
=> true
irb(main):002:0>[Esc押しっぱ]
Display all 304 possibilities? (y or n)[n]
irb(main):002:0>[Esc押しっぱ] c:/usr/local/lib/ruby/1.8/irb/input-method.rb:97: [BUG] Segment
ation fault
ruby 1.8.1 (2003-12-25) [i386-mswin32]

という具合に落ちます。
irb/completionを読まなければ大丈夫そうなので、complete.cあたり
に虫がいるのかなぁと思ってます。
調べ忘れ。以前のreadline.dll使ってもダメでした。
784デフォルトの名無しさん:03/12/28 00:41
再現できないよう。
>>784
すみません、irb/completionの件はVC++7.0使って自分でビルドした
ruby-1.8.1でしか起きていませんでした。
VC++7.0特有か、ビルドの仕方が悪いのか。うーん。
1.8.1にしたら、migemo で tの入力すると死ぬ。
/usr/local/lib/ruby/site_ruby/migemo-regex.rb:202:in `escape_string': stack level too deep (SystemStackError)
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:229:in `render_string'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:240:in `render0'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:198:in `render_concatnation'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:198:in `map'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:39:in `map'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:39:in `map'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:198:in `render_concatnation'
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:236:in `render0'
... 360 levels...
from /usr/local/lib/ruby/site_ruby/migemo-regex.rb:251:in `render'
from /usr/local/lib/ruby/site_ruby/migemo.rb:231:in `regex'
from /usr/local/bin/migemo:99:in `main'
from /usr/local/bin/migemo:104
ちなみに 1.8.1pre2は okだった。
788786:03/12/28 16:55
ごめんなさい。ディストリビューションの specの変更が原因のようでした。
1.8.1pre2 は自分でビルドしたやつだったから、
多分pre2以降の変更が原因というわけではない。

ちなみに gcc 2.96で
% CFLAGS='-O6 -mpentiumpro -Wall -fstrength-reduce -Wno-parentheses -ffast-math -malign-functions=2 -malign-jumps=2 -malign-loops=2 ' ./configure --prefix=/usr/local/ruby-1.8.1 --enable-frame-address --enable-pthread

と、gcc 2.95.3で --enable-pthreadのみ付けて、再現する事確認しました。
# あまり条件変えて試すのも、その間にここ読んでる人に迷惑かけそうなので、とりあえず。
pthread外すことにします。おさわがせしてすみませんでした。
正直rubyって█████████じゃね?
機種依存文字?
読めないのだが。
>>789
ワロタ
>>789
素直スギ
>>789
通報シマスタ
>>788
そういや--enable-pthreadのときは使えるスタックが小さくなるらしいね。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/22003
賞味期限がそれなりに過ぎた乳製品を食べるのは結構勇気がいるような。
>>795
12日は「それなり」なのか。
ruby-luaみたいな類いってみんな利用してる?
Ruby/Perl なら。
moonwolf さんはちゃんと年を越せているのだろうか?
最近音沙汰がないのだが、、、
>>799
こせたみたいでなによりですな。
>>799
wakeruに期待してたので気になる

あと、あけおめ
「あけおめ」って何?
FF11のキャラ
0xFF11のchar
matz 日記が urahon で検索にひっかかるのは何がきっかけ?
urahonって何?
あけおめ
ことよろ
「ことよろ」って何?
"ruby"でググったらスポンサーに「Rubyを活かす求人情報」とか出てきてワロタ
んなもんねーだろ
そりゃもう、履歴書に 「ruby 経験あり」とかけばどん(r
その広告のリンク先のサイト、rubyで検索したら

 1件が検索に該当しました。
>>811 の仕事内容にSunOS4/5が入ってるのは若者に対するイヤがらせですか?
Mixinってどういう使われ方を想定しているのでしょうか?
やはりインスタンスメソッドを追加するためですよね?
インスタンスメソッドならインスタンス変数を使うことが前提ですよね?
class側に予め記述されているインスタンス変数を、Mixinするmoduleがそのまま使うって、
それは動くのですが、作法として良いのでしょうか?
>>813
使われ方は、メソッド群の追加とそれによる似非多重継承ですかね。
インスタンスメソッドとは限らないです。SingletonとかForwardableとか。

作法はわからないけれども、そもそもclassとmodule両方で同じ変数に
アクセスする状況自体を避けたい気もします。
具体的にはどういう状況ですか?
iモードのJavaがRubyに置き換わるのはいつごろになりますか?
>>813
> インスタンスメソッドならインスタンス変数を使うことが前提ですよね?

なんで?
>>815
> iモードのJavaがRubyに置き換わるのはいつごろになりますか?

なんで?
Mixinされるmoduleは、なにがMixinするかわからないんだから、インスタンス変数を使いようが無いと思うんだけど。
>>818
moduleが先にあって、classをそれに合わせて作るのだから問題ないかと。
プログラムの流れとしては、使いようが無く見えますけどね。
Enumerableがeachを要求しているようなもんじゃないかな。

でも、やっぱりインスタンス変数に直に手を出すよりは、
アクセス用メソッドをclassに用意させるほうがよさそうかなぁ。
オーバーヘッドがあったとしても、どの変数にアクセスされるのかが
明確になりますから。

もっとも、状況次第ですけどね。813さんのレス待ちということで。
>>819
moduleの変数をMixinする側が使うのではなくて、Mixinする側の変数をmoduleが使うって話かとおもったんだけど
違ってた?
もう一回読んだら、何か違う気がしてきたよ
822813:04/01/03 23:27
なに?
真面目な?
コミュニケーション?
期待?
してんだよ?
あれ?
こえが?
おくれて?
きこえて?
くるよ?
>>822は、何か別人な気がしてきたよ
あけ
おめこ
とよろ
826813:04/01/04 00:22
状況次第ですか;
実は既に過去のことなので、詳しくは覚えてないですが
こんな使い方でいいのかなァと思いつつも、そのように使っていたのですよ

819さんがおっしゃってることが
なんかしっくりくる感じですね

そしてそのようにもとからある特定のインスタンスメソッド等に依存して、
インスタンスメソッドを追加するのがMixinの真髄かなと‥?


>>824
もち別人です
使い方があってるかどうかは知らないが、用語の使い方は間違ってる。だから他人に話が伝わらない。
日本語の文法の区切りにもセミコロンっているんだ;
日本語;の;文法;の;区切り;に;も;セミコロン;って;いる;んだ; ??
818=819=822=823=825=828=829だよね?
まさかソフトクリームの頭見てう○こを連呼するようなやつが、
そんなにこのスレ見てるとは思えん。
831819:04/01/04 12:25
>>826
Mix-inの真髄は、先にも述べましたけど「似非多重継承」では
ないでしょうか。多重継承問題を起こさない(起こしにくい?)、
継承の一様態。Rubyには型がないために恩恵を受けにくいですが、
クラスツリーもすっきりします。

826さんの言う「真髄」も、継承の一側面と言えそうです。
Strategyパターンで、アルゴリズムのみをSubClassで実装すると
そのようになりますよね。

でも一般的な継承ではそれとは逆向きの使い方が一般的でしょうし、
そしてMix-inもそれと同じではないかと思います。

とはいっても、継承云々を超えた便利な使い方ができるのが
moduleの真髄(Mix-inのではなく)ですよね。
Forwardableとかは、Rubyのclass定義自体を強化している様な
ものですし。

>>830
がーん。
頼むから「俺用語」で会話をしないでくれ。
Mix-inは多重継承ってよりも、Objectに対する実装の追加だとおもう今日このごろ。

Rubyはclass basedではなくobject orientedっていうふうに理解すると
特異クラスとか特異メソッドとかがわかりやすくなる。
834830:04/01/04 20:15
>>831
818,819が816,817でした。
逝ってきます。
835デフォルトの名無しさん:04/01/05 01:43
>>815
Ravaじゃなくて、Jubyができたらね。
あるファイルの行数を取得したいんですけど何か良い方法はありますか?
一行ずつ読んだり一気に読む以外に。
perlだと↓を使ってるんですが。

open(F,"hoge.txt");
while (read(F, $buffer, 4096)) {
    $line += ($buffer =~ tr/\n//);
}
line = 0
open("hoge.txt") do |f|
 buf = " "*4096
 while f.read(4096, buf)
  line += buf.count("\n")
 end
end
rubyってバッファを操作する専用の型ってないの?
あとメモリマップファイルなクラスはある?
>rubyってバッファを操作する専用の型ってないの?
バッファって何の?

>あとメモリマップファイルなクラスはある?
標準では付いて来ない。
RAAにはある。→http://moulon.inra.fr/ruby/mmap.html
>バッファって何の?
uint8_t *p = (uint8_t*)malloc(4096)
みたいなの
StringIOのことかな。
そういうこと気にしなくて済むのが
この手のスクリプト言語の利点という気がするんだが、
ナニしたいのだろう?
>>832
「似非多重継承」はわざとですが、「多重継承の問題(菱形継承)」は「の」を
落としました。スンマソン。
# 他にもありそう。

>>833
なるほど。でもたぶんどちらの視点も大切かもしれないです。
けれどもclass-basedな視点に凝り固まってしまったのには反省です。

>>840
そのままCで書いて、拡張ライブラリで定義するとか。
>>840
それだけだと p=" "*4096 という答えしかできないんだが
class A
 @@a = 10
 def foo
  print @@a
 end
end
class B < A
 @@a = 20
end
class C < A
 @@a = 30
end
で b = B.new; b.foo; c = C.new; c.foo とすると30 30になる.
@@aをAにすると10 10になる.これをfooメソッドに手を付けずに20 30にはできません?
クラスツリーで共有されるものがクラス変数だから、無理。
クラスごとに持たせたいんなら、クラスのインスタンス変数にして
self.class.aとでもする。
> クラスのインスタンス変数
どうやるんだっけ
class A
@a = 10
class << self
attr_accessor :a
end
def foo
puts self.class.a
end
end
class B < A
@a = 20
end
class C < A
@a = 30
end
849845:04/01/05 15:47
確かに実現できました.ここはすごいインターネットですね.
まだ仕組みはしっかり理解しきっていませんが...
まつもとゆきひろの「プログラミング言語論」【前編】(1)
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20031224/1/
>>850
要約を書いたのは日経BPの人なんだろうけど、
とてもプロの物書きが書いた文章とは思えない・・・
852デフォルトの名無しさん:04/01/06 05:20
ruby/gtkをはじめたばっかりで、GUIアプリ自体初挑戦です。
referenceのシグナルのところに、
selfと沢山でてくるのですが、何のことを指してるのでしょうか。
以下のような感じです。

http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AButton#clicked%3A+self
の下の方
-----------------------------
clicked: self
□self: Gtk::Button
ruby-win32 ML って、無かったっけ?
ruby-lang.org にも RWiki にも表示されていないようだけど。
>>853
ある。RWikiにも載ってる。
現在、ML自体もアーカイブも停止中みたいだけどね。
>>854
RWiki にあるのは、アーカイブへのリンクだけだよね?
それとも、俺の目が節穴ってこと? どこのページか教えてください。

ML自体が機能していないとしたら、RubyのWindows関連の開発は
どこで進んでいるのでしょうか?
>>855
ああそういうことか。ruby-win32 at moonwolf dot com のはずです。


RubyのWindows関連の開発は、ruby-devまたはruby-listまたは
ruby-coreまたはruby-talkあたりで進んでます。
>>856
なるほど、今は特に Windows 関連は分かれてないんだね。
よく分かりました。ありがとう。
859デフォルトの名無しさん:04/01/06 19:02
すまん、

for(i=0;i<14;i++){
***
}

みたいなこと、rubyではどうやってかくのですか?
for i in 0...14 do
 puts '逝ってよし'
end

for i in 0..13 do
 puts '逝ってよし'
end

i = 0
while i < 14
 puts '逝ってよし'
 i += 1
end

14.times {|i|
 puts '|i|は何回目か知りたいときに付ける'
}
なんか冗長な言語だな・・・
これと対極にあるようなシンプルだけど必要十分な機能を備えたスクリプトってある?
いや、>>860は、これ全文で繰り返しって意味じゃなくて、
4つの文のうちどれかひとつで繰り返しができるっていみだよ?
>>861
WSHのVBS
>>862
>>861 は、そんなのわかってて煽ってるんでしょ。放置しとけ。
>14.times {|i|
なんつ〜キワイ(´д`;)
なんじゃこりゃ?とか思ってしまったが、ただの数字もオブジェクトだから
メソッドを持ってたとしてもなんら不思議ではないってのがRUBY的常識
って理解で合ってる?

ところで、HTML Split以外でお勧めのHTMLパーサーってあります?
>>860
オレは 0.upto(13) をよく使うなあ。14.times も使うけど。
.. と ... は、どっちがどっちかわからなくなってしまう……。
>>865
合ってる。 tagiter 。
むしろJavaでint変数にIntegerラッパをかぶせる必要が出たりすると
どうしてintがオブジェクトじゃないのじゃワレ とか思ったり.
m-1までのn...mより,mを含むn..mの方が長い範囲なのにどうして点が少ないのだろう.
使う頻度ってやつか.

uptoは忘れてた.
timesは初期値が0からになってしまうけどuptoは初期値が設定できるね.
ていうかこれも0からのことが多いからtimesってのがあるのか.

でもCのforはfor(p = link_head; p->next; p = p->next)とかいろんな使い方があるけど,
これに純粋に対応するのはwhileと手動更新の併用だけだね.
そういう実装を隠すためにイテレータを作れるようにしてるんじゃん
おお、Perlについての質問箱スレを抜き返した(w

14.times {|i|
 puts '|i|は何回目か知りたいときに付ける'
}
この繰り返しおもろいね。
初めて知った。
Rubyの表記法のキモさはさんざん話題に上がってるが、
個人的には

>>175-189

あたりがインパクト強かった。
これに耐えられるかどうかでRubyへの適正があるかどうかが決まりそう。
>>868
> むしろJavaでint変数にIntegerラッパをかぶせる必要が出たりすると
> どうしてintがオブジェクトじゃないのじゃワレ とか思ったり.
1.5からできるらしいね。
ボクシングだっけ?
>>868

おれはドット二つ「..」を「いろいろ」と読んで、いろいろの直後まで含むと覚えてる。

n..m → nいろいろm → mを含む
n...m → nいろいろ.m -> .はmの一個前だから、(m - 1)まで。

我ながらキモい覚え方だとは思うけど、間違えたことはない。

matzがおれの覚え方のようなイメージで作ったのかどうか、
または他の言語にこの表現があるのかどうか、
はたまたこう表記する習慣がどこかにあるのかそれは知らない。
perlだろ
>>873
わろた
キモいと思うのは相対的な問題に過ぎない。
要は首尾一貫しているかどうかだ。
その点では Python の中途半端なオブジェクト指向は非常にキモい。
n..m, n...mって数学用語でなんていうの?英語で。
>>877
数学用語にはそんなもの無いと思われ。
なにげに不等式とは別物ですし。
[1,3)みたいのなかったっけ?
区間 (閉区間: 両端含む, 開区間: 両端含まない, 半開区間: 片端含む片端含まない) だな
rangeとか
5..1 で減ってゆくと思ってた。スマソ。

じゃあ closed interval と half-closed interval かな。
883デフォルトの名無しさん:04/01/08 20:49
どなたかライフゲームのプログラムをうpしてください。
聖書買え
885デフォルトの名無しさん:04/01/08 21:07
RD 気に入って使ってるんだけど、複数行に渡るコードを乗せるにはどうした
ら良いの?
(({(+ (* 3 5) (- 10 6))
19}))
とか書くと一行になっちゃうし。

>>885
インデント
akrたんのpitってどうなのよ。
RDより書きやすい?
perl使いはperlerだけど、
ruby使いはなんと呼ぶんですか?

rubyer?
>>889
>>887のURLのドメイン
>>889
既知害
>>889
外吉
perl 使いは perl monger だろう。
>>889
> ruby使いはなんと呼ぶんですか?
るびきち (rubykitty) です。
>>887
ありがとう。一応そこは読んでたんだけど、
コード用に Verbatim を使うとなると
(({}))の存在意義が良くわからないな。
二つはどう使い分けるの?
>>895
inlineとblockの違い。一応じゃなくてもっと読んでみて。
MESS = "回数="
0.upto(4) {|i|
str = MESS
str << i.to_s
puts str
}

このスクリプトで次のような実行結果を期待していたのですが

回数=0
回数=1
回数=2
回数=3
回数=4

実際には

回数=0
回数=01
回数=012
回数=0123
回数=01234

となります。

変数(と言ってもオブジェクトの入れ物なんでしょうが)なら分からないでもないのですが、
定数が書き換わるのはなんなんでしょ。

str = MESS.dup

とすれば、期待通りに動作するのですが、納得がいきません。
Cのポインタじゃあるまいし、、、
Cのポインタですよ?
<< は破壊的メソッドだから当然の結果。

MESS = "回数="
0.upto(4) {|i| puts MESS + i.to_s }
>>897が勘違いしている点とは違うが、Rubyの定数は代入し直せるんだから、
もはや定数としての性質は欠いていると思うのだがどうだろう。何か別の名前
にすべきではないか。
>>900
それは Ruby に限らない話だと思うけど。
関数型とかだと事情は違うだろうが。
>>897
おきかわってませんよ?
% irb
>> CONST = ''
=> ""
>> CONST.object_id
=> 135079136
>> CONST << 'foo'
=> "foo"
>> CONST.object_id
=> 135079136

>>896
inline と blockっていうのが RD の中では大きく違うものだというのは分か
りました。block があって その中にinlineがあるというか。( verbatim の中
では inline が使えませんが )

ただ、(({}))で書いた時は HTML にしたときに<code></code>タグになるのに、
verbatim だと引用でもコードでも <pre></pre>になるというところがまで気
持い悪いです。もともと HTML を吐くためにあるのではないのだからしょうが
ないのかもしれないのですが…

と書いてるあいだにGoogleで
http://www2.pos.to/~tosh/ruby/diary/2000/05/b.html#sec15_2
とそこからリンクされてるMLの議論を見つけました。

これって今はどうなってるんでしょう?
:::Code:::
を verbatimの先頭につけても上手くいかない…




定数でなく定物
905900:04/01/09 21:49
>>901の考える定数の性質って何よ。俺は少なくとも代入し直せる変数は定数とは呼ばない気がするんだが。
>>900
> 何か別の名前にすべきではないか。

「Ruby の定数」
定ID
ラベルでえーやん
>>900
> Rubyの定数は代入し直せる

無理矢理できる、というだけ。
warningを気持ち悪く思わない癖は危険です。

Cとかが(ライブラリのせいで)吐きまくって麻痺しそうだけれど。
910897:04/01/10 09:29
>>897 のスクリプトですが、オプション -w -W2 を付けて実行しても
“warning: already initialized constant”などのワーニングは発生しません。
だから余計に納得出来ない・・・
>>910
>>902 を 65439 回読みなおしなさい
>>910
ああ、そっちですか。

> 代入し直せる変数
str << "str"
str += "str"
この二つは別物です。後者だと str と "str" をつないだ*新しい*
Stringのオブジェクトが生成されて代入されるのに対して、前者は
ただのメソッド呼び出し(ただし破壊型)であり、代入ではありません。

897さんの望む結果は、オブジェクト自身に「変更不可能」を
指示すればよいので
MESS = "回数=".freeze
で得られるはずです。

でも破壊型メソッドを定数に使おうとするところが間違いなんですけどね。
freeze
914912:04/01/10 11:10
897さんと900さんがごっちゃになってた。逝ってきます。
>>897
> 変数(と言ってもオブジェクトの入れ物なんでしょうが)
まずここが誤解してる。
変数論争再燃の予感?
なんかものスゲー勢いで成長してきたな。このスレ。
PHPもあと3年か。

Matzにっきの2003-09-03に
Q.ところで、Rubyって、複数の変数が同一の実体を指すこと無いのですか。参照渡しなんかも含めて。複数の変数が同一の実体を指すことができると、それはそれで便利ですが、 Rubyではそうできなくなっている理由は何なのでしょう?

A.もちろんあります。ないのはC++のリファレンスに相当する「複数の名前で同じ変数を指すこと」です。
C++と比較するとRubyは一段少ないんです。


とあるのですが、これはどういう意味ですか?
同一のオブジェクトを指す変数は、複数存在しないという意味に取れそうなのですが、そうではないですよね?
変数を指す変数はないという意味でしょうか?
918917:04/01/10 15:30
おお、なんか他のスレッドで書いたゴミが残ってた。
C++ではオブジェクトを変数がさしていて、その変数を複数の変数がさすことができる(リファレンス)。
Rubyではオブジェクトを複数の変数がさすことができる。
なので一段少ない。つまり全ての変数のさす先はオブジェクトということ。
aが Xから Yを指すようになったとき、
C++ なら bでも Yを指せるけど、Rubyなら取り残されて Xを指してると?
変数陽気節祭開催?
>>920
君って決定的に頭悪いね
レンタル用の tdiary でトラックバックやExcerptがつくようになったのはいつから?
ふとさっき気が付いたのだけど。
perlにはInline Ruby ってもんがあるんだな。
http://pc2.2ch.net/test/read.cgi/tech/1068051036/891-892

いや、Rubyを使えよ。
RubyにはInline Perl はないの?
ありません。必要ないし。
inline pythonは?
>>903
構造化を意識しすぎると、RDの魅力が失われてしまいませんか?

> verbatim だと引用でもコードでも
Verbatimは「コードの引用」です。
(現状の)RDには<blockquote>に相当する概念自体がないようですね。

そして<code>はinline elementなので、<pre>は間違いではないかと。
# HTMLにもblockとinlineの概念があります。

とはいえ、:::Code:::のような指示も悪くないと思ったので、
RD2HTMLVisitor#apply_to_Verbatimを自分好みに書き換えてしまっては
いかがでしょう。
inline ja(ry
inline C...
ひきずるほどのネタとは思えないんだけどな < inline
Ruby で FFI っていうか、C の関数をお手軽に呼びたい場合って SWIG を使うのかな。
require 'dl'
>>933
Ruby だけで使うんなら SWIG よりも、普通に拡張ライブラリにした方が楽だと思う。
>>928

>この部分が
>HTMLでいうblockquote要素に
>なります

って感じで。実装されないもんかね(くれくれ君だ。つーかRD使ってないし)
>>936
どの部分でどんな感じ??
inline オナニー
939903:04/01/12 00:58
遅レスですが…
>>928
どうもありがとうございます。

> 構造化を意識しすぎると、RDの魅力が失われてしまいませんか?

そうかもしれませんね。しかし、どうも 引用した英語と引用したコードが同
じ扱いになってしまうというのがあれで…

> Verbatimは「コードの引用」です。

しかし、そのコードを「引用」と呼ぶかどうかは作者の考えやコードのorigin
に依るだけで、 inline か block かには関係ないと思うのですが。。
個人的には html 吐くときに css に渡せるようにクラス分けしてくれればベストっす。

> RD2HTMLVisitor#apply_to_Verbatimを自分好みに書き換えてしまっては

自分のひどいスキルではこころもとないですが、暇なときにトライしてみます。
ありがとうございました。
>>939
>> 「コードの引用」
著作権用語の「引用」ではなく、どこからか引っ張ってくるという程度の
ニュアンスです。「例示」とかのほうが正確かもしれません。
だからorignはこの際無関係ですし、また著作権用語的な「引用」
("引用した英語")を表現する能力を現状のRDは備えていないと言えます。

で、実は"verbatim"という言葉の意味を知らないことにいまさら気がついたの
ですが、"逐語的"だったのですね。となると、<pre>相当の意味しか持っておらず、
「余計なことをしないから、プログラムコードを提示するのにぴったり」という
だけだったみたいです。

RDが「Rubyスクリプトの埋め込みドキュメント」の枠で設計されたということ。
そして(自分を含めて)その枠を超えた使い方をRDに求めているということ。
きっと、この二点のズレによって生じた問題なのでしょう。
…やっぱquoteぐらいほしいですね。RD本来の役目はRDocに奪われそうですし。
>>936さんの案、よさげです。こんなことできたらいいなぁ。

=begin
> quote ((>inline-quote<))
> * quote-list
>   quote-verbatim
> > quote-quote
=end

<html>
<blockquote>
 <p>quote <q>inline-quote</q></p>
 <ul><li>
  <p>quote-list</p>
  <pre>quote-verbatim</pre>
 </li></ul>
 <blockquote>
  <p>quote-quote</p>
 </blockquote>
</blockquote>
</html>
それは>で始まる行はblockquoteってこと?
ある文字列が与えられて、それに関して以下の処理が必要です。
・特定の文字(ここでは{ }とする)に囲まれた文字はあるメソッドに渡す
・そのメソッドの返り値は、そのあった位置({ }の所)に置換される
・それ以外の部分はスルー

…という問題があるんですが、正規表現等にサパーリなもので
どうしたらいいか分かりません。
置換・スルー部分も含めて、おおまかでいいので
この処理を実現出来るRubyコードを書いてくれませんか?
>>943
"abc{def}ghi{jkl}".gsub(/\{(.*?)\}/) { |str| str.upcase }
=> "abc{DEF}ghi{JKL}"
こういうこと?
>>944
おおお、まさにそういうことです!
ありがとうございます!
>>944
…ちょっと申し訳ないんですが、{ }を取り外すにはどうやるんですか?
つまり、"abcDEFghiJKL"みたいな感じにしたいのです。
>>944
"abc{def}ghi{jkl}".gsub(/(\{.*?\})/) { |str| str.upcase }

gsubの中の括弧の位置を変えれ。
948947:04/01/12 20:28
あ、駄目ジャン。
ごめん違った。
949947:04/01/12 20:30
"abc{def}ghi{jkl}".gsub(/\{(.*?)\}/) { $1.upcase }
こうカー!
>>949
おおお、素晴らしいです!
本当にありがとうございます!!
>>946
irb(main):012:0> "abc{def}ghi{jkl}".gsub(/(\{.*?\})/) { |str| str[1,str.length-2].upcase }
=> "abcDEFghiJKL"

"abc{def}ghi{jkl}".gsub(/(\{(.*?)\})/) { $2.upcase }
=> "abcDEFghiJKL"

もうちょっとよい書き方がありそう。
952951:04/01/12 20:37
>>949
そ れ だ !
953947:04/01/12 20:40
>>952
ありがとう(ワラタ
C++の関数オブジェクトとか関数ポインタみたいなことをするには、何を使えばいいのでしょうか。
lambda かなとも思ったんですが、引数が渡せないんですよね。
lambda{|a| p a}.call(100)
のこと?
あぁブロックパラメータが引数になったんですね。
ありがとうございます。
957デフォルトの名無しさん:04/01/14 11:42
txtファイルから文字列を読み込んだ場合、改行ってどうやって
表しているのですか?
いくつか改行が重なった場合、それを1つにまとめようというのは
after = before.gsub(/\\n+/,"\n")
でOKですか?

つまり

a




b

c
みたいなのを、
a
b
c
にと変換しようとしたいのですが…
after = before.gsub(/^\n$/,"")
でいいと思う。
>>957
うーん、最終的にどうしたいのかわからないけど、
after = before.gsub(/\n+/,"\n")
\\n を \nに直したらできたよ。
after = before.tr_s("\n", "\n")
961957:04/01/14 12:37
みなさんありがとうございます
その前にひとつ問題が発生したので、そっちを解決させてから
もう一度来ます
962デフォルトの名無しさん:04/01/15 10:26
とあるRubyのソースみてたら、
クラス関数からインスタンス変数へのアクセスしてるのを見つけたんだけど、
これってどういうこと?実行しても特にエラー出ないし。
頭がJavaな私に説明してください。

class Sample
 def self.sampleMethod=(str)
  @sampleVar = str
 end
 def self.sampleMethod
  @sampleVar
 end
end
SampleクラスもClassのインスタンスの一つだから。
その@sampleVarはSampleのインスタンスからはアクセスできない。
Samle.is_a? Class # => true SampleはClassクラスのインスタンス
Sample.instance_variables # => [] まだ@sampleVarは存在しない
Samle.sampleMethod= "hoge" # Sampleクラス自体のインスタンス変数が@sampleVar定義される
Sample.instance_variables # => ["@samleVar"]
965962:04/01/15 12:11
なるほど。
なんとなくわかってきたような気がするけど、もう少し教えてください。

> SampleクラスもClassのインスタンスの一つだから。
> その@sampleVarはSampleのインスタンスからはアクセスできない。

Rubyでは Sample.sampleMethod を出すとき暗黙的に
Sample = Class.new ( <-- 適当です)みたいな感じでインスタンスを作ってるとなのかな?

クラス変数 @@sampleVar を使わないであえて >>962 のような使い方をするのは
どのような時なのでしょうか?
966962:04/01/15 12:13
>>965
s/作ってると/作ってるということ/
962はメタクラスって知ってる?
>>965
class Foo; ... end
は,概念的に次と同じこと。Classのインスタンスを作って「定数」に代入してるの。
Foo = Class.new; Foo.class_eval { ... }

クラス変数を使わない理由があるなら,「インスタンスからアクセスできないようにするため」かな。
969962:04/01/15 14:35
>>967
わかってませんでした。
今いろいろ調べててわかってきました。

>>968
なるほど、ちょっとすっきりしました。
>>968
> クラス変数を使わない理由があるなら,「インスタンスからアクセスできないようにするため」かな。
もう一つ、「サブクラスと共有したくない」ってのも考えられる。
Linkavailable: Ruby,diary はLinkavailable 五月雨版に移行したということなの?
さんざん既出かも知れないけど、
「サブクラスで override できるクラス変数」が欲しいなあ。
>>971
そうみたいだけど、激しく見にくくなったな。
ruby-listでmatz氏が、
「戻り値をis_a? で検査するのはよくないと長年言っている」
と言ってますが、何が悪いのかイマイチわからない。。。
具体的にどんなデメリットが?
>>974
動的結合だからじゃない?
>>974
open-closed principle
977974:04/01/16 01:33
ちと動的結合との関連がまだ理解できていないけど、
ttp://member.nifty.ne.jp/masarl/article/dp-ocp-2.html
あたりを読んで、OCPはなんとなくわかった感じがした。
is_a?でタイプごとに処理を決めてたら修正に閉じないわけか。
わかった気がしてきた。さらに精進します。ありがとー。
>>971
更新間隔はどのくらいなんだろう。Last-modified が欲すぃ。
>>978
いまんとこ、毎時チェックみたいだね。
スタイルシートなどは改善希望。
テキストを処理するメソッド(引数は基本的に文字列を期待)で、引
数がIOのインスタンスならそこから読み込んだ文字列を引数にする、
みたいなことをときどきやるんだけどこういうis_a?の使い方は
open-closed principle 的にはどうなのかな?

def process(arg1)
arg1 = arg1.read if str.is_a? IO
...
end

こういうのが気軽にできるのがrubyのいいところだとも思うのだが、
ついでに、is_a? を使うか respond_to? か迷うことが多い。

def process(arg1)
arg1 = arg1.read if arg.respond_to?(:read)
raise 文字列か文字列を返すreadがホスイ unless arg1.is_a? String
...
end
>>980
メソッドが引数を判断するより、引数に与えるオブジェクトを詳しく知っている
呼び出し側がメソッドを選ぶほうがいいと思われ。

ところで、素直に本体が出す NoMethodError でよくない?
>>980
OCP 的には is_a? より respond_to? かなあ。

Ruby 的にも respond_to? か。
たとえば StringIO は IO を継承してないけれど IO と同名のメソッドを
持ってるから、IO のかわりに StringIO を渡しても大抵うまく行く。

標準添付のクラスだと、たとえば open-uri.rb はこんな感じ。

> module Kernel
> def open(name, *rest, &block)
> if name.respond_to?(:open)
> name.open(*rest, &block)
> elsif name.respond_to?(:to_str) &&
> %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
> (uri = URI.parse(name)).respond_to?(:open)
> uri.open(*rest, &block)
> else
> open_uri_original_open(name, *rest, &block)
> end
> end
> end

>>981
オレもメソッドを汎用的にしたくて >>980 みたいなことをする時があるけど、
これって YAGNI なのかも。
>>981
確かに。その説明は説得力があります。
新スレは?
そろそろ立てるかね。
ところで>>1の&#160;は何?