1 :
デフォルトの名無しさん :
03/11/01 03:10
2 :
デフォルトの名無しさん :03/11/01 03:15
2
4
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!
Rubbish!
trashみたいなものか
>>8 その特徴がawkから折衷したものだとちゃんと知ってうなづいているのかギモーン
>>8 Perlはふるい言語だろうから、
今のRubyやjavaに比べて見劣りするのは当たり前だと思う。
逆にそんなふるい言語が最近の言語より使いやすかったらおかしいしね。
C は使いやすいですよ。
Cは言語自体の表現力、ライブラリともにしょぼすぎ。 他の比較的先進的な言語に慣れたら使いづらいことこの上ない。
>>19 毎度おなじみ strangeworld のブラクラ
Ruby の正規表現についてリファレンス的にまとめられているページはありますか? 英語でも日本語でも構いません。
23 :
デフォルトの名無しさん :03/11/02 18:57
WEBrickのサーブレットでアプロダを作っています。 マルチパートで送られてくるデータの元ファイルの拡張子を知りたいのですが、 元ファイル名はHTTPRequestには入ってないのでしょうか?
24 :
デフォルトの名無しさん :03/11/02 20:31
>>23 req.query["foo"].filename
>>22 これを利用させてもらいます。
どうもありがとう。
27 :
デフォルトの名無しさん :03/11/03 08:38
配列が入れ子になっているやつの深いコピーってどうやってやるんだっけ? ちなみに、flattenするとNumericとRationalのみの配列になるやつ。
28 :
デフォルトの名無しさん :03/11/03 09:07
,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ヽ| l l .| ● | l , , , ● l ` 、 (__人__丿 、、、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬'''""´ ./ ___ l __ l ./ / |/ | `ー-< / ./ ./ `ー‐--{___/ゝ、,ノ
31 :
デフォルトの名無しさん :03/11/03 10:30
attr_accessor のあとの変数の先頭につく : って意味があるんでしょうか?
いろいろ調べたら、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
>>45 Wiki 使えばええやん。ホワイトペーパ読んだ感じでは Wiki との違いが分からん。
>>46 Wiki と比べるのはどうかと思うぞ。ちゃんと読んだのか?
つかネタになってないし。
たくさん釣れてるし。 おれもか。
未出見たいだから一応書いとこう 1.8.1 pre2出てます
pre1の間違いでした
Rubyに使いやすい複数行コメントはいつ付きますか。
=begin =end でいいじゃん。
行頭に書かなきゃいけないから面倒。 文字数が多い。 行の途中の一部分だけコメントアウトできないのがいや。
たぶん将来的にも、今と違ったブロックコメントの書き方は導入されないと思うよ。
(|:/ コメント /:|)
Python みたいに文字列リテラルをコメントとして運用すればいいじゃん。
[提案] * コメントにするかわり、%q!...!でごまかす [問題点] * 使われてない記号を選ばなければならない * (メソッド定義の最後など)値に意味のある場所では使えない [結論] * ダメだな……
うお、微妙にカブった……
[提案] * cpp よろしく、スクリプトを gsub(/\(\|\:\/.*?\/\:\|\)/, "") してから Ruby の実体へ渡すような wrapper を作り、それを ruby とする。 [以下略]
camlp4 みたいなの作ってください
>>61 "(|:/" "/:|)"って何ですか?
ぐぐったらなにも出てきません。
ゆきひろくんのフッタ
>>68 ruby-list ML のアーカイブを検索してみるとか。
C++のソース(クラス定義とか)をパースするスクリプトないですか? クラス名とかメンバ関数名やその引数が取り出せればいいです。
>>71 そういうのは自分で頭をひねって楽しまないと
プログラマとして成長しないと思うけど?
まつもとひろゆきってカッコイイ
>>75 「まつもとひろゆき Ruby」でぐぐれよ。
Oliverですが何か
ruby のオフィシャルなrpmパッケージはありますか?
RedHat標準になったという話は聞かんな。
まつともゆきひろ
1.6.2は入ってるが
Matzさんって宣教師だったんだ。
そういえば、「コンピュータの名著・古典 100冊」に、 「オブジェクト指向スクリプト言語 Ruby」の紹介と matz さんのコラムが載ってるね。 もちろん matz さんの紹介で、宣教師云々のくだりもある。
Ruby を宣教して回っているということ?
ヤソ教(変換できん)の宣教師です
耶蘇教
Matz日聖徒イエス・キリスト教会
異端だけどな。
宗教の正統/異端論議は板違い。
「インデント幅は3」教は異端ですか?
そもそも宣教師の話題が板違い。
GNU教ならいいけど。
>>90 磔刑モノです。
「オブジェクト指向スクリプト言語 Ruby」が名著かあ?
ruby史において重要な本ではあるんだろうが、名著と言われるとなんだな。
なんだが凄そうな部屋だな。後のボロボロのってふすま?
>>93 「世界でもわりと成功している言語をつくった日本人の本」としては貴重。
本としては、それほど名著とは思わないけどな。
>>79 Ruby としては、ソースからのインストールしか認めてないんですか?
rpm 配布はやってないの?
お前には認めてない
ソースからコンパイルすることすら出来ない管理者居るしなぁ
あー、末日聖徒ってモルモン教の事か。 そこの宣教師って事は、ケント・デリカットとご同業なのね。
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 です。
=~
さらに言えば文字列の方を先に書くマッチは非推奨。
そこが違ったんですね。 !=と同じ原理で書いてしまった。イコールの変種みたいな。 どうもありがとうございました。
>>120 =~が正規表現オブジェクトのメソッドだから。
>>114 た、確かに。セットされてますね…。
Exception::messageの方をがんばればってセットすればいいんですね!
三都州!
>>122 理由になってるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるるよ
>>123 .sub( "がんばればって", "がんばって")
意味わかんない日本語になっちまいました。
=~は正規表現オブジェクトのメソッドだから
ワラタ
>>129 そんなんじゃ理由にならないという理由にならない。
=~は文字列オブジェクトのメソッドでもあるから =~は正規表現オブジェクトのメソッドだからでは理由にならない。
>>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対応してけろ。 お・ね・が・い
> バカが征く これって何て読むの? 「いく?」
>>134 $ ruby -e 'class TestException < StandardError;end' -e 'raise TestException, "エラーですよ"'
-e:2: エラーですよ (TestException)
messageもraiseのときに指定するもの。
ついでに、普通の例外ならException直接じゃなくてStandardErrorから派生させた方がいいと思われ。
なんでいいと思われましたか?
うちのとうちゃんがいいって言ってたよ!
>>135 UTF8 対応の nkf 2.x がまだ unstable だから。
あえて言うならMatzが非推奨って言ってるから非推奨。文句ある?
class Foo def to_str "foo" end end p /foo/ =~ Foo.new # => 0 p Foo.new =~ /foo/ # => false だから
>>140 すでに納得したようだけど、
rescueの引数を省略できるのはStandardErrorかそのサブクラスだけだから。
rescue修飾子のときには使えないし。
かっこ悪いから非推奨
>>149 すまんす、ちょっとわからないので教えてくださいです。
「rescueの引数を省略できる」と「rescue修飾子のときには使えない」とはどんな状況のこと?
StandardErrorとExceptionをいろいろ試してみたけど、素人目ではどっちも同じにみえます。
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 が呼ばれるだけだから無駄。
というのが理由じゃダメ?
しかし、おれは StandardError より Exception の方が、 綴りがカッコイイという理由により Exception を使うが。
>>160 Exception = StandardError しとけ。 (嘘)
>>163 そうですか。では、引続き String#=~ をお使いください。
ていうか、リファレンスマニュアル見てみたけど、
非推奨なのは string =~ other_string な場合だけで、
string =~ regexp は別に非推奨じゃなくなくない?
うーん。 見た目なら /aaaa/ =~ "aaaa" より "aaaa" =~ /aaaa/ の方がわかりやすいから非推奨にされても困るけどね。
>>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/] という表記は変態的でいいね。
ていうか、 String#=~ が非推奨って、このスレ以外ではどこで言われてるの?典拠は何?
str[/regexp/] = substr なんて脳汁出そうなくらいイイ
warning: string =~ string will be obsolete; use explicit regexp
>>178 漏れへのレス?もしそうなら答えになってないよ。
>>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 warning: don't put space before argument parentheses
193 :
デフォルトの名無しさん :03/11/14 00:10
divとかtofuって何をするためのものかイマイチわかりません
(´・ω・`)
http-access2 で POST ができんぞ. さっさとバグ直せ
俺はhttp-access2捨てて標準のnet/httpライブラリ使うことにしたが…
あんな中途半端なもんがFreeBSDのportsにまでなってるのが謎.
>198 どっちのこと?今のところ、俺はnet/httpとnet/httpsでほとんど不自由してないからhttp-access2のことだと思うけど。 http-access2はコロコロ仕様変わってだめぽ感が漂ってる
もちろんhttp-access2. たしかにnet/httpでことたりるわな.
漏れにはむしろ net/* みたいなもんが標準添付ライブラリにまでなってるのが謎。 尤も、ほかにも(ry
cgi.rbももう捨てた方がいいとおもうよ
>>202 ですね。
今、最も yet another cgi.rb として見込みがあるのはどれでしょうか?
俺のチンコ
しょせんたいした処理はしていないので自作するが吉。
>>203
>>205 いや、既に (何度も) 自作してるんですけどね。
できれば標準で (もっとマトモなのが) あったらそれに越したことはないですよね。
>207 あー、俺もPerl使ってた頃何度となく作ったよ しまいにはCGI.pm使うようになったが、多少便利がいいぐらいで結局やること大差ないよなぁ
209 :
デフォルトの名無しさん :03/11/14 22:50
標準でCRCチェック用のハッシュ値求める方法はないの?
Perl→PHP→Rubyと全部dirtyな書き方で来て、今度はPHP/XSLTにしようかと思ってる この方式で縛れば少しはすっきりした明快なコード書けるようになるかなぁ…正直今まで書いたコード、自分では絶対保守したくない
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 出力するライブラリで定番とかオススメってありますか? 各種ライブラリを比較してるサイトとかあると嬉しいんだけどなあ。
Win VC++版でエラーになるっぽい
詳細を加計
>>216 「手書きすれば」という意味じゃないでしょうか
「すれ」は「しろ」の方言
放置おつゆ
>>216 手書きは飽きちゃったんだもの。かと言って cgi.rb のは死んでも使いたくないし。
>>228 > cgi.rb のは死んでも使いたくないし。
お約束だが、
じ ゃ ぁ 、 自 分 で 作 れ よ 。
皆自分で作ってるっての
だよねー
perlにすれば?
>>234 手書きは飽きちゃったんだもの。かと言って CGI.pm のは死んでも使いたくないし。
じゃPHPにしなよ。
>>235 > CGI.pm のは死んでも使いたくないし。
お約束だが、
じ ゃ ぁ 、 自 分 で 作 れ よ 。
キティガイはスルーの方向で。
242 :
デフォルトの名無しさん :03/11/16 18:48
死んでも〜したくないとか言う奴は信用できない
死んでも〜したくないとか言う奴は死ななかったらしたいのか!
死んでもセックルしたい
じゃ先ず死ね。
自分は拡張ライブラリを書いている者です。 いろいろ調べたつもりなのですが、rb_define_alloc_func()の 存在意義がよくわかりませんでした。 どういった時に必要な物なんでしょうか?
>>244 こいつは信用できる
心意気が伝わってくる
PHPみたいな文法で書けるRubyライブラリでも作れよ。 まあ、それが erb なんだが。
>>250 PHP みたいな埋め込み式なクソ文法は覚えたくないです。むしろ吐き気を覚えます。
PHPハァハァ
>>247 Marshal関係なんですね。どうもです。
意味質問厨が人工無能みたいで笑える。
意味質問廚のソース公開しる!
つか意味質問厨だけでなくこのス自体人口無能的。 オレノコノカキコミモナー。
>>260 お前のことだ。
って、人工無能にレスするのって虚しいね・・・
Rubyスレっていつもこんな感じなの?
最近は人工無能のテスト用スレになってしまったらしい。
>>251 んじゃ今はどうやってるの?全部printでHTML気合出力?
>>255 amritaかぁ。この構文ならJavaとかでも共通化できるね。なかなかおもしろいかも。
ただ、これデータとなる配列全部用意してから出力処理に入るのかな?
メモリ食いそうだなぁ。
rubist.netなんてものがあったか。アカウント欲しいなぁ。
たしかrubyist.netはMatz個人の持ち物だったはずなので、直談判してみれば?
>>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サーバを再起動せずにサーブレットをデバッグする方法を教えて下さい
ApolloはMLで聞いたほうがいいかも。
>>281 最後は止めてやり直しになると思うけど、どういうことがしたいですかね。
>>272 ruby(というかtcltklib.so)の出所は?
Tcl/Tkのバージョンは?
実際のPATH環境変数の中身は?
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++必須だけど。
ありがとうございました。これで一歩野望に近づきました。ではでは
>>293 うー。とりあえず、待つか。
Tcl8.3を探します。
ありがとうございます。
質問です。 1.8.0だとできるのですが、1.6.8だと class Klass::Klass2; end こういうクラス定義方法ができません。 ↓こう書けばうまくいくんですが、ちょっとインデントが深くなるので避けたいんです。 class Klass class Klass2 end end 1.6.8だとこういう書き方はできないんでしょうか。
すまそ。ime.nu通さずにコピペでよろしく。
連続で申し訳ない。1.6で試してないけど、これでいける? class Klass2 end class Klass Klass = ::Klass2 end ::Klassが残ってちょっと邪魔くさい。 定数をundefできたらよかったんだけどなぁ。
>>304 ダメでしょ。せめて 1.8 で逝けるかくらい試しみてよ。
あれ?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}
>>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 辺りで
ぐぐって、他のも試してみれば ?
レスありがとうございます。 >コード見てないから何とも言えんが、ruby win32api unlha 辺りで >ぐぐって、他のも試してみれば ? ほかのも試して見ます。では失礼します。
誰に失礼するんだよ!コラ!
怒こられてしまいました。 lha.exeを使うことで解決しました。 道標 system("lha e hogelzh") では
330 :
デフォルトの名無しさん :03/11/21 01:41
Rubyのクラスライブラリのサーチパスって環境変数で設定できる?
サンクス manにないし、ぐぐってもでてこねーんだもんよ
>>332 うわ、そうなのか。
次スレではテンプレ入りきぼん。>リファレンス
>>332 man にないってのは手落ちだよなー。
とか言ってたら早速・・・。お手数掛けます。
336 :
デフォルトの名無しさん :03/11/21 17:40
サッカーでさ、ボール囲んで肩とか組みながら 相手のゴールにつっこめないかな? こんな風に ○○ ○ ○ ワー ○ ● ○ ワー ○ ○ ○○
>>336 俺もそれ考えたことあるけどボールにあまり関与していない選手が相手選手の動きを妨害したとみなされるんじゃないかな
338 :
デフォルトの名無しさん :03/11/22 01:11
>>336 相手方も11人でゴール前に固まって防げばいい
>>339 ドリブルして持って逝くんだからオフサイドにはならないのでは
>>300 気づくのが遅くなってすみません。
とりあえず、次のが出るまで、mingw版をいれて、まちますw。
ravaスレ消えちゃったね
るびきち叩きの時は全く消さなかったのに
叩き対象が
>>1 になったとたんこれかよ
いや、削除依頼出てなかったし。
つーかさ、サッカーって何であんなに点入れでデフレ起こしてんの? 見てて面白いか? 賑わってない側のゴールキーパーとか両端にいるメンバーなんか毎回暇持て余してるしよ。 そもそもフィールド大きすぎなんだよ。客も首疲れるだけだろ。 それに比べてバレーボールは1分もしないうちにぽんぽん点入るよな。 どう考えてもあっちの方が一喜一憂できるだろ。 ボケどもが。
点が入るまでのビルドアップが面白いんじゃん。
deflation ━━ n. 空気[ガス]を抜くこと; 自信喪失; 【経済】通貨収縮, デフレ.
>>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 のリリースはいつ頃なのですか?
とりあえず、漏れはバカなので、命題の傍証ではあるわけだが。
>>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が意味あるのは、#{}で式を埋め込んでる場合だけ。
それ以外ではまったく関係ない。
*の意味をよく理解する必要がある。 肛門じゃない。
>>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とか。
>>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
>>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 だから、
挙動が変わったのは「$」のようだ。
>>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 のようなソフトを作ろうと思ったら、どういう本を読んでいけばいいのですか?
Rava なんてめんどくさいだけで誰でもできるだろ
バカか。めんどくさいから誰にでも出来るものじゃないんだよ。
言い方が悪かった。 めんどくさいだけで誰でもできるが 誰もやらないのは役に立たないのがわかりきってるからで それをあえてやるのははっきりいってバカだ
自分の勉強の役に立つ
>>420 言語の設計や実装の動機ってほとんどがそれなんじゃないかと。
>>419 十年後に路頭に迷ってそうな人間性だな。
>>421 同感。ていうか、
今まで生まれてきた言語の中で、卒論(修論・博論)のためだけに
生まれ、そして死んでいったものがどれだけの数を占めることか…。
そんなにポンポンと生まれポンポンと死んでいく過酷な言語戦争の中、なんでHSPが生き残っているのか?
>>424 まったくもって同感。実は今日、昼飯食いながら
同じ事考えてました。
HSPにせよN88BASICにせよ、プラットホーム固定なのが
手軽さにつながっているのでは。それと、「ゲーム向け」と
「仲間がいますよ」ってのを前面に出したプロモーション。
あとは、ソース見せ合って洗練させるっていう文化が無いからでは。
HSPはexeファイル作れるのが売りの一つだし。それにゲームって、
他のアプリと違って一つが長い間使われるものでないと思う。
だから、ゲーム作者にとってソフトは「動けば終わり」。
「よりよいコードにする」なんてことは考えもしない。
んで、とりあえず「動く」だけの時代遅れ言語が生き残ってしまう。
でも確か、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のリファレンスなんてもう
どこにも存在しないから実装不能という罠。
(自分は文法忘れました)
FBASIC
Ruby/SDLのruby1.8用のi386-mingw32バイナリってどこかにない? 作者のページにはruby1.6対応しかない。
いや、してるか。 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
環境を書かないとなんとも
def A() end
+1 + 1といい構文破綻してないか?
>>447 そのカッコ付けても何も変わらないと思うが?
>>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 って何やってるとこ?
/usr/local/lib/ruby/1.8/timeout.rb:40 [BUG] Segmentation fault
藻前ら、そんなに情報出すのがイヤですか。 ruby -vとスタックトレースくらい出してもバチは当たらんぞ。 とりあえず1.8.0releaseは四ヶ月前もなので、CVS HEADでは直ってることもある。
>>453 定義ができても、後ろに「()」つけないと呼び出せない。
という話です。
エスパー降臨きぼん
>>459 すみません
1.8.1にしたら治ってるっぽいです
soap関連えらい変わったな・・・
$stdin と STDIN等の使い分けってどんな具合ですか? ちなみに STDOUT は文句を言われつつ nilとかにも出来ちゃいますが、 $stdout は TypeError: $stdout must have write method, NilClass given とか言われますね。
ruby -vとスタートレックくらい出してもバチは当たらんぞ。
むしろ、なにも情報を出さんやつにバチを投げ付けたい。
>>462 また出たな。
「パー"サ"って何?」位の事を書けよ。
レベル低いな。
>>467 パーサともパーザとも発音することを知ってての発言か?
>>464 ていうか、定数を再定義するのはダメだろ。
グローバル定数に関しては代入がフックできるので、そこで判定しているのだろうと思う。
いずれにせよ、ふつうはIO#reopen使うよな。
うわ、名前が残ってた
あうち。$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使おうぜ。
「藻前」ってどういう意味? とruby-listで聞いてもいいのでしょうか?
>>477 既にfork済みの子プロセスの標準入出力を親だけから操作するのは不可能。
もちろん、子プロセスとプロセス間通信して子プロセス側にそういうI/Fを
設けることは可能だろうけど、そういう意味の質問じゃないよね?
ま、そもそもforkすんなってこった。
よーし聞かれる前に答えちゃうぞー
>>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 君が悪いと言われましても、
標準でそういうデータ構造を吐いてくれるライブラリがゴマンとあるわけで。
回避することはできそうですが、普通はみんなどうしてるのかなと思ったわけです。
greentea さん日記やめちゃったの?
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。
p a.to_s とか?
だからEUCなら $ ruby -e 'p ["あ"]' ["\244\242"] $ ruby -Ke -e 'p ["あ"]' ["あ"] ってことだ。
printで出力すると 氏名,国語,数学,英語 西山,90,100,20 田中,50,70,90 中村,80,80,70 と、そのまま出力されてしまうんですよ。 結果として["氏名,国語,数学,英語", "西山,90,100,20", "田中,50,70,90", "中村,80,80,70"] ってな具合に出力したいんです。。。
人の話をきけよ
人の話を聞けって
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あたりを使ってはどうでしょ。
>>530 レスありがとうございます。やってみます。
EclipseのプラグインのRDTの開発って止まってるんでしょうか?
色々やってみた結果、どうもgpgの出力は標準の出力じゃないみたいで gpg --import pktmp 2>&1 | tee result を、systemで実行して、resultを開いて中身を見るという泥臭い処理になってしまっています。 ここのところ、スマートに書けないものでしょうか?
{'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 ちょっとは学習してください。「漏れ」については以前にも聞いてなかった?
キチガイの相手をする奴はキチガイ。
>>544 「俺」を「漏れ」と書く必要性はあるんですか?
>>548 もういちど言いましょうか。
必要性はありますよ。
2ちゃんねるでしか通じない隠語を使うことで、
心理的に余所者を排除するという意図があるわけです。
端的に言えば、このスレにあなたのようなひとは不要というわけです。
>>535 解決できました。ありがとうございます。
しかし、gpgは何故標準エラーに出力するのでしょう?
標準エラー使って何か良い事ってあるんですかね?
>549 必要性はねェだろ 隠語を使用したヤツが、内心そう認識しているだけ 余所者とこちら側の違いってなんだよ こちら側の人間って、 次々と思いつきで勝手に作られてく用語を、 2チャンネル内で収集して、その意味の把握に努めている人間かよッ
>>551 一度聞いて納得行かなかったらよそに行けばいいじゃん。
別に無理にここで話題に加わる必要はないですよ?
一度聞いて納得しなかったらってなんですか; 俺この話題に触れたの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
>>556 ,557
なるほど.どうもありがとうございます.
以下の2つはどう違うのですか?
同じだったら下の書き方でメソッド内に定義できてもいいと思うんですが.
foo = Class.new do
def foo
:foo
end
end
class foo
def foo
:foo
end
end
漏れはそういうとこに「?」つける香具師に吐き気を催す
かぐし?
a. 香具を作り、また、売る人。 b. 縁日・祭礼などの人出の多い所で見世物などを興行し、 また粗製の商品などを売ることを業とする者。てきや。「大道―」「―の口上」
つまりヤクザな連中の副業
>>560 Ruby のスレで「香具師」の話を出す必要性はあるんですか?
>>558 classだとクラス名は大文字で始まってないとダメ。 Class.newだと無名クラスを生成できる。
あと、
class Foo
p Foo
end
は通るけど、
Foo = Class.new do
p Foo
end
はエラー。
>>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に任せようと思ってるのですが 解像度を落とす方法が知りたいのですが・・・
GDでやれよ
572 :
デフォルトの名無しさん :03/12/09 00:33
>> 570
こんなんあったんか・・・
ちょっとインストールしてみて、試してみます。
とりあえず画像を扱えるぽいけれど、使いやすい形
かどうか・・・自分ですこし改造してみよかな。
>> 571
rubyからGD呼び出して使えばおもしろそうですね。
GD rubyで調べたらこんなのがでてきました・・・
こっちをつかってみたい気がします。
h
http://gruby.sourceforge.jp/
vRubyもよろしく
ところで全然関係ないんだけど、 cryptってどう読むの? くりぷと?
漏れはそういうとこに「?」つける香具師に吐き気を催す
1.8.1 になってからあちこちのライブラリで NameError:uninitialized constant 続発だな。なんだこれ。
>>582 いちいち ML に報告しる!
ここでもいいけど。
ここでいいよ 漏れも見てるしw
「漏れ」って誰ですか?
/:|)
-(:O)
>>587 オマイは日本語の一人称を全て把握してるのか?
そして、ある時点からは学習が停止するのか?
そんなにRubyが嫌いなんだ?
>>589 「-(:O)」って誰ですか?これは初めて見た。
def hoge def fuga "in fuga" end print "in hoge ", fuga, "\n" end hoge p fuga --- fugaって外からでも呼べちゃうんですね。
ん、なんか色々変なんだよね。 作者のセンスかな。
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
>>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" ↑どこを直せば動作しますか?
616 :
デフォルトの名無しさん :03/12/13 17:51
自分で作ったメソッドで読みこんだ数値を計算出来るようにしたい
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
なにを?
632 :
デフォルトの名無しさん :03/12/14 01:28
適当に名前付けただけ
むしろ不適当
たけし・さんま・るびきち 面白トライアングルの話が出来るスレと聞いてきたのに 出来ないんならお笑い板帰るわ
意味質問厨よ、「アクペクト指向ってどういう意味?」と、なぜ訊かん。 ってゆーか、俺知らないんだわ。誰か教えて。 とりあえずググってはみるけどさ。
ふと思ったんですが、Ruby でプログラミングを始めた人が型宣言するタイプの 言語に移行するならなにがおすすめ?
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以降の版ではちゃんとでるはず。
>>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
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をフルサポートしろと何度言わせれば・・・
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互換のための足かせ?
あ、中の文字だった。それなら/<%(.+?)%>/ですね。 そのへんの括弧はお好みで。 ちなみに + に ? をつけなかったり ^ $ をつけると、 一行に複数個の<% 〜 %>があったときに哀しいことになります。
>>671 $の使い方間違ってましたかw(ノ∀`)アチャー
この意図としては、送られてきたeRubyコード(htmlと混在している)
中からeRubyコード(<%〜%>の〜部)を抜き出すといった作業を
目的としてます。
正規表現のマッチングが上手くいってないみたいですが、どの
パターンが上手くいきますかね?
>>674 上手くいくって、こういうこと?
"<% eruby1 %>plain<% eruby2 %>".scan(/<%(.+?)%>/)
=> [[" eruby1 "], [" eruby2 "]]
>>667-668 おめーら、matzと一緒で、ゲームを卑下してるだろ。
ゲーム開発なんか低能おこちゃまプログラマのオナニーだと。
>>676 卑下してるのは
>>676 自身だと言ってみるテスト。
もっと胸張っていいんじゃない?
ゲーム開発は、下を見るときりがないけど、上を見てもやっぱりきりがない
世界だと思うんだけどね。
で、流行る流行らないでモノを考えるのはどうかってこと。
スクリプトが動作する環境は増えてほしいから普及自体はしてほしいけど、
それは流行るのとはちょっと違うのです。
Google でたまたまヒットした ruby-dev のアーカイブ。 面白すぎて、そのスレッド全部読んじゃったよ。
>>681 サンクス。懐かしいな。やっぱり金光タンの関わるスレッドは楽しいね。
チョソか。
>>682 彼は有名人なの?
あのMLでのやりとり、なんか微笑ましかったわ。
保存しとけばよかったかな。
>>684 Ruby 256本 をいっぱい出した立役者ではある。
>>685 げげっ、そうなのか。
256本を買う前に知っといてよかった。
情報サンクス。
げっ げっ げげげのげげっ、
>>681 リンク先が見えないんだが、ひょっとして「Rubyにグラフィックエンジンを実装しる!」って話?
「実装しる」ってどういう意味ですか?
この前食べた実装汁はうまかったなあ
いいねえ。やっぱり冬は実装汁だよな。
実装汁奉行ウザー。 好きなようにさせてくれよ実行汁くらい。
>>686 あれ、言葉が足りなかったかな?
256本を *書かせた* ひとで、書いたひととは別です。
あと、RHG の出版社をさがしてくれたらしい。
編集者としてはいいひとなのかも。
いいひと?
いい人ニダ
Rubyの未来は金光様が握っておられます。 みなさん、失礼のないようにお願いしますよ。
悲しい言語だな。
削除対象 * 個人名・住所・所属 一群: 公開されているもの・情報価値があるもの・公益性が有るもの・等は削除しません。 削除の可否は管理人が判断します。 二類: 外部から確認できない・責任や事象に無関係な情報は削除対象です。 公開されたインターネットサイト・全国的マスメディア・電話帳で確認できる・等、 隠されていない情報については削除しません。 三種: 誹謗中傷の個人特定が目的である・文意により攻撃目的である等の場合は全て削除対象になります。 電話番号 電話番号は、一部伏字・それを示唆するような文字列・等でも、 確認方法が確立していない為に原則として全て削除対象です。 明らかに公的な物・投稿者がハンドルキャップ使用・文意によって本人が公開したと 判断できるもの・リンク先で確認できるもの・等は、自己責任として削除されないことがあります。 メールアドレス 騙りの可能性や悪意が明らかで攻撃を目的としている・趣旨説明が無く衆目に晒すことを 目的としている・等の場合のみ荒らし依頼として扱います。メール欄に書かれていても同様です。 判断は文意によります。
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 (?) ってなんじゃらほい?
その手のプロトコル (?) ってどっかにまとまってますか?
%R!STRING! == Regexp.new(Regexp.quote("STRING")) ってこと? でも %q, %Q の関係と逆になるのがイタイなぁ。
>>721 そうそう、そゆこと。
%q, %Q と対象になっていいかなと思ってたんだけど、そうか、逆やったか・・・
>>714 akrさんてどういうプログラム書いてるの?
>>724 なんでこのページ?と思ったけど、たしかにakrさんのが多い。。
zsh でかいてくれないかなぁ、、、
zsh だったらこないだ雑誌記事書いてたが……
RFC 2822 の Tanaka Akira さんって 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インスタンスってなんの役に立つの?
>>734 1.6ならできなくはない。
1.8ではそういうことを排除するような仕組みにしてある。
>>737 アロケータ書けば1.8でも可能なんじゃない?
どのみちrubyだけではどうしようもない領域だけど
>>735 図書館にあるぞ。住んでいる区、市の図書館の蔵書をインターネットで検索してみろ。
リリース直前とは言え、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きちさん メリークリスマス 今年の口癖は「彼女が欲しい」でしたね
obj.empty? とかして、「チッ、nilだったか」という場面が無いでもない。
753 :
デフォルトの名無しさん :03/12/25 22:27
予約語と処理系標準の識別子(__FILE__, $0, new, eachなど)一覧ってないですか?
754 :
デフォルトの名無しさん :03/12/25 22:28
nullpo
>>753 リファレンスマニュアルはどのくらい調べましたか?
>>753 そもそもリファレンスマニュアルがどこにあるかご存知ですか?
>753 きれいなお姉さんは好きですか?
rubyに予約語は存在しない。
>>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回ぐらいに達すると発生するらしい。
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のってことはないよな。
>>777 artonさんのとこにパッチが出てる。
readline自体のバグのようだ。
>>778 情報thx!
でも、ActiveScriptRubyあたりにありそうな気がするのですけど、
どうにも見つかりません。URLを晒していただけませんか?
うう、まだ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だった。
ごめんなさい。ディストリビューションの 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って█████████じゃね?
機種依存文字? 読めないのだが。
賞味期限がそれなりに過ぎた乳製品を食べるのは結構勇気がいるような。
ruby-luaみたいな類いってみんな利用してる?
Ruby/Perl なら。
moonwolf さんはちゃんと年を越せているのだろうか? 最近音沙汰がないのだが、、、
>>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が使うって話かとおもったんだけど
違ってた?
もう一回読んだら、何か違う気がしてきたよ
なに? 真面目な? コミュニケーション? 期待? してんだよ?
あれ? こえが? おくれて? きこえて? くるよ?
あけ おめこ とよろ
状況次第ですか;
実は既に過去のことなので、詳しくは覚えてないですが
こんな使い方でいいのかなァと思いつつも、そのように使っていたのですよ
819さんがおっしゃってることが
なんかしっくりくる感じですね
そしてそのようにもとからある特定のインスタンスメソッド等に依存して、
インスタンスメソッドを追加するのがMixinの真髄かなと‥?
>>824 もち別人です
使い方があってるかどうかは知らないが、用語の使い方は間違ってる。だから他人に話が伝わらない。
日本語の文法の区切りにもセミコロンっているんだ;
日本語;の;文法;の;区切り;に;も;セミコロン;って;いる;んだ; ??
818=819=822=823=825=828=829だよね? まさかソフトクリームの頭見てう○こを連呼するようなやつが、 そんなにこのスレ見てるとは思えん。
>>826 Mix-inの真髄は、先にも述べましたけど「似非多重継承」では
ないでしょうか。多重継承問題を起こさない(起こしにくい?)、
継承の一様態。Rubyには型がないために恩恵を受けにくいですが、
クラスツリーもすっきりします。
826さんの言う「真髄」も、継承の一側面と言えそうです。
Strategyパターンで、アルゴリズムのみをSubClassで実装すると
そのようになりますよね。
でも一般的な継承ではそれとは逆向きの使い方が一般的でしょうし、
そしてMix-inもそれと同じではないかと思います。
とはいっても、継承云々を超えた便利な使い方ができるのが
moduleの真髄(Mix-inのではなく)ですよね。
Forwardableとかは、Rubyのclass定義自体を強化している様な
ものですし。
>>830 がーん。
頼むから「俺用語」で会話をしないでくれ。
Mix-inは多重継承ってよりも、Objectに対する実装の追加だとおもう今日このごろ。 Rubyはclass basedではなくobject orientedっていうふうに理解すると 特異クラスとか特異メソッドとかがわかりやすくなる。
>>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ってバッファを操作する専用の型ってないの? あとメモリマップファイルなクラスはある?
>バッファって何の? 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
確かに実現できました.ここはすごいインターネットですね. まだ仕組みはしっかり理解しきっていませんが...
>>850 要約を書いたのは日経BPの人なんだろうけど、
とてもプロの物書きが書いた文章とは思えない・・・
852 :
デフォルトの名無しさん :04/01/06 05:20
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つの文のうちどれかひとつで繰り返しができるっていみだよ?
>14.times {|i| なんつ〜キワイ(´д`;) なんじゃこりゃ?とか思ってしまったが、ただの数字もオブジェクトだから メソッドを持ってたとしてもなんら不思議ではないってのがRUBY的常識 って理解で合ってる? ところで、HTML Split以外でお勧めのHTMLパーサーってあります?
>>860 オレは 0.upto(13) をよく使うなあ。14.times も使うけど。
.. と ... は、どっちがどっちかわからなくなってしまう……。
むしろ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だろ
キモいと思うのは相対的な問題に過ぎない。 要は首尾一貫しているかどうかだ。 その点では 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})) とか書くと一行になっちゃうし。
akrたんのpitってどうなのよ。 RDより書きやすい?
perl使いはperlerだけど、 ruby使いはなんと呼ぶんですか? rubyer?
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の先頭につけても上手くいかない…
定数でなく定物
>>901 の考える定数の性質って何よ。俺は少なくとも代入し直せる変数は定数とは呼ばない気がするんだが。
>>900 > 何か別の名前にすべきではないか。
「Ruby の定数」
定ID
ラベルでえーやん
>>900 > Rubyの定数は代入し直せる
無理矢理できる、というだけ。
warningを気持ち悪く思わない癖は危険です。
Cとかが(ライブラリのせいで)吐きまくって麻痺しそうだけれど。
>>897 のスクリプトですが、オプション -w -W2 を付けて実行しても
“warning: already initialized constant”などのワーニングは発生しません。
だから余計に納得出来ない・・・
>>910 ああ、そっちですか。
> 代入し直せる変数
str << "str"
str += "str"
この二つは別物です。後者だと str と "str" をつないだ*新しい*
Stringのオブジェクトが生成されて代入されるのに対して、前者は
ただのメソッド呼び出し(ただし破壊型)であり、代入ではありません。
897さんの望む結果は、オブジェクト自身に「変更不可能」を
指示すればよいので
MESS = "回数=".freeze
で得られるはずです。
でも破壊型メソッドを定数に使おうとするところが間違いなんですけどね。
freeze
897さんと900さんがごっちゃになってた。逝ってきます。
>>897 > 変数(と言ってもオブジェクトの入れ物なんでしょうが)
まずここが誤解してる。
変数論争再燃の予感?
なんかものスゲー勢いで成長してきたな。このスレ。 PHPもあと3年か。 Matzにっきの2003-09-03に Q.ところで、Rubyって、複数の変数が同一の実体を指すこと無いのですか。参照渡しなんかも含めて。複数の変数が同一の実体を指すことができると、それはそれで便利ですが、 Rubyではそうできなくなっている理由は何なのでしょう? A.もちろんあります。ないのはC++のリファレンスに相当する「複数の名前で同じ変数を指すこと」です。 C++と比較するとRubyは一段少ないんです。 とあるのですが、これはどういう意味ですか? 同一のオブジェクトを指す変数は、複数存在しないという意味に取れそうなのですが、そうではないですよね? 変数を指す変数はないという意味でしょうか?
おお、なんか他のスレッドで書いたゴミが残ってた。
C++ではオブジェクトを変数がさしていて、その変数を複数の変数がさすことができる(リファレンス)。 Rubyではオブジェクトを複数の変数がさすことができる。 なので一段少ない。つまり全ての変数のさす先はオブジェクトということ。
aが Xから Yを指すようになったとき、 C++ なら bでも Yを指せるけど、Rubyなら取り残されて Xを指してると?
変数陽気節祭開催?
レンタル用の tdiary でトラックバックやExcerptがつくようになったのはいつから? ふとさっき気が付いたのだけど。
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使ってないし)
inline オナニー
遅レスですが…
>>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の中の括弧の位置を変えれ。
あ、駄目ジャン。 ごめん違った。
"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"
もうちょっとよい書き方がありそう。
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")
みなさんありがとうございます その前にひとつ問題が発生したので、そっちを解決させてから もう一度来ます
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"]
なるほど。
なんとなくわかってきたような気がするけど、もう少し教えてください。
> SampleクラスもClassのインスタンスの一つだから。
> その@sampleVarはSampleのインスタンスからはアクセスできない。
Rubyでは Sample.sampleMethod を出すとき暗黙的に
Sample = Class.new ( <-- 適当です)みたいな感じでインスタンスを作ってるとなのかな?
クラス変数 @@sampleVar を使わないであえて
>>962 のような使い方をするのは
どのような時なのでしょうか?
962はメタクラスって知ってる?
>>965 class Foo; ... end
は,概念的に次と同じこと。Classのインスタンスを作って「定数」に代入してるの。
Foo = Class.new; Foo.class_eval { ... }
クラス変数を使わない理由があるなら,「インスタンスからアクセスできないようにするため」かな。
>>967 わかってませんでした。
今いろいろ調べててわかってきました。
>>968 なるほど、ちょっとすっきりしました。
>>968 > クラス変数を使わない理由があるなら,「インスタンスからアクセスできないようにするため」かな。
もう一つ、「サブクラスと共有したくない」ってのも考えられる。
Linkavailable: Ruby,diary はLinkavailable 五月雨版に移行したということなの?
さんざん既出かも知れないけど、 「サブクラスで override できるクラス変数」が欲しいなあ。
>>971 そうみたいだけど、激しく見にくくなったな。
ruby-listでmatz氏が、 「戻り値をis_a? で検査するのはよくないと長年言っている」 と言ってますが、何が悪いのかイマイチわからない。。。 具体的にどんなデメリットが?
>>974 open-closed principle
>>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 なのかも。
新スレは?
そろそろ立てるかね。
ところで
>>1 の は何?