- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 11:47:53 ]
- オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 29 pc11.2ch.net/test/read.cgi/tech/1193668038/ 過去スレ・関連スレは >>2-
- 357 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:14:45 ]
- >>355
初心者スレで見たんだが require 'net/http' uri = URI.parse('www.2ch.net/') response = Net::HTTP.start(uri.host, uri.port){|http| http.head(uri.path) } p response.code_type == Net::HTTPOK p response.is_a?(Net::HTTPOK) これ両方ともtrueなんだよな Net::HTTPOK使うのなんて初めて見たぞ
- 358 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:19:22 ]
- def code_type
self.class end なんだな。
- 359 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:27:44 ]
- response.code == '200' という半マジックナンバーよりは見かけ健全だな
初心者スレでは response.code == 200 という比較をして動かないってハマってたが
- 360 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 23:33:43 ]
- >357
あと、typoをパーザーが見つけてくれるから、response.code == '200'より便利だよ。
- 361 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:34:05 ]
- >>357-358
それは、rdocにあるように、caseでチェックするため。 case response when Net::HTTPSuccess then response when Net::HTTPRedirection then fetch(response['location'], limit - 1) else response.error! end
- 362 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:07:30 ]
- >>356
どんなドキュメントが欲しい? リファレンスマニュアルとは別のものかな。
- 363 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:53:27 ]
- >>362
356じゃないが、チュートリアルというか、こういう時はこういう組み合わせでやれ、みたいな感じの物はほしいな。 るびまにproxy作る例があったけど、あんな感じで。
- 364 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:59:18 ]
- WEBrickでプロキシを作る例を読むのはもう飽きたお…
- 365 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:47:39 ]
- レシピブックじゃだめかね。
- 366 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:59:26 ]
- >>362
Webrickのクラスでセッション管理するドキュメント
- 367 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:29:45 ]
- >>366
ttp://www.ruby-lang.org/ja/man/html/webrick.html
- 368 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:34:36 ]
- Ramazeってよさそうだけど、あれ試してみた人いる?
- 369 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:52:18 ]
- >>368
最近できたフレームワークですね。 最小限の構成ながら、MVCで、 必須だろうセッション管理やキャッシュ機構もデフォでついてたり、 それでいて、HTTPDやテンプレートやORマッパがすげ替え可能だったり、 よさげではあるな・・・。 てか、OpenID対応とか時代を反映してますな。 Rails はでかいと思う人にはかなりよさげ。 ただ、Railsの次点は Merbだろうし、 使っている人はどれだけいるんだろうか
- 370 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:12:47 ]
- お前ら小さいのがいいならSinatraも忘れないでください。
Sinatra : Classy web-development dressed in a DSL sinatra.rubyforge.org/ セッション管理がねえ?そんなのカンk(ry
- 371 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:07:56 ]
- だからセッション管理が無いなら標準添付のWebrickでいいんだってば
- 372 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:12:04 ]
- cgi.rb 再構成案
cat > cgi.rb require 'webrick/cgi'
- 373 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 03:21:39 ]
- もう1.9.0を出しちゃった以上、インタフェイスレベルでの変更はやめたほうがいいんじゃないの。
デイブトーマスも「開発者は1.9でライブラリ書けよ」って言ってるぐらいだし。それよりはMLで やってるみたいに実装を高速なものに変更するとかがいい。あるいはCgiAltをcgi2って名前で 取り込むとかね。 でもね、それよりはドキュメントをですね、もうちょっと埋め込むとかなんとかして irbのhelpがpythonのhelp()並に情報がでるようにしてほしい。Pixaxe本の記述って ソースコードにコピーしちゃだめなのかな。
- 374 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 06:23:10 ]
- 1.9.0 はただの snapshot だし。
- 375 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 07:18:44 ]
- 俺は StringList が欲しかったが
StringIO がそれなりに望みの動作に近かったので使ってる 俺みたいな奴には to_s が自然なのかもな IO として使いたい奴には不自然かも知れん
- 376 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:32:16 ]
- >>367
doc.loveruby.net/refm/api/view/library/webrick
- 377 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:39:12 ]
- Rubyの公式MLでいい大人が2ちゃんねるの話題だすなよなー
ここは便所の落書きですぞ?暗黙的に提案すればいいのに。
- 378 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:51:14 ]
- 最近の「2ch観」は各人でかなり異なるから、一概には言えないよ。
皆、自分のよく読むもの・よく書くことを中心に2chを捉えてるわけだけど、最近はその内容に凄く個人差があるし、 ブログの影響もあって、今や2ch以外も匿名・暴言の山で、2chだけがどうのって感じではなくなってるしね。 別の板も含めた俺の経験では、「2chに関係することを2chの外で口にすること」について 問答無用で「何てイタイんだ!」みたいに反応する奴は、大抵同じIDで草生やしまくってたりする。 あと、基本的に中傷とかの濃度の濃い場所の住人ほど、そういう傾向がある。 たぶんこれは「鏡にどんな人間が映ってますか?」的な話題なんだろう。
- 379 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:55:33 ]
- >>377-378
気にしなくていいですよ 俺みたいな世代は、2chもネットの掲示板の一つだから 便所の落書きでも、情報源には違いないものです
- 380 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:56:49 ]
- ああ、あと、>>378の後半は余計だと思うがwその辺が2chたる所以かw
- 381 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:36:07 ]
- そういやもう2chが特別な場所である感覚はないね。
- 382 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:36:27 ]
- 2chが特別だったのはログとってなかった頃まで
- 383 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:39:49 ]
- お前ら何年いるんだ。
- 384 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:42:37 ]
- 7年くらいかな?
- 385 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:28:44 ]
- 4・5年くらいの人が今は一番多いんじゃね
- 386 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:58:54 ]
- >>367
WEBRick でのセッション管理はどこに書いてあるんだ?
- 387 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:27:35 ]
- >>386
「自分で書き加えろ」という遠回しなメッセージではないだろうか
- 388 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:39:57 ]
- そんなセッションな〜
という駄洒落を思いついた
- 389 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:40:39 ]
- shingichuu
- 390 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:16:16 ]
- 【判決】
Segmentation fault
- 391 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 13:08:43 ]
- その判決はなかったわ
- 392 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:10:18 ]
- マルチプラットフォームで輝き始める“Ruby”
www.itmedia.co.jp/enterprise/articles/0802/06/news007.html
- 393 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:44:23 ]
- 輝き始めるとは失礼だな。
今まで輝いてなかったみたいじゃないか。
- 394 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:53:49 ]
- 輝くどころか、各方言で骨肉の争いが
- 395 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:36:42 ]
- 輝き始めていると表現できるのは確かだが、
同じような紅い輝きがあちこちにあって統一性が感じられないのはなんでだぜ
- 396 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:43:32 ]
- 燃え尽きる直前の煌き
- 397 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:43:14 ]
- def [(key)]=(value); end
みたいに書きたい! def []=(value, *keys); end でもいいけど
- 398 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:01:40 ]
- 1.9ではrubyが無いとbuildできないのか?
baserubyを指定しろと怒られる。
- 399 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:26:30 ]
- >398
insns.defとかの処理でBASERUBYを使ってるね。 他のマシンで処理しておいて、それを持ってくるって方法もあるけど、 1.8も入れておいた方が無難だと思う。 なお、tarballだと処理したものが入れてあるんじゃないかな。
- 400 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 03:17:46 ]
- >>387
>「自分で書き加えろ」という遠回しなメッセージではないだろうか WEBrickにsession機能がないのに、ドキュメント書けるわけないだろアホ
- 401 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 03:33:06 ]
- そりゃ>>376が何も言わずにリンク先しめすもんだから、勘違いするじゃない
>>400みたいに言ってくれないと
- 402 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 09:43:14 ]
- いやWEBrick自体にセッション管理機能がないのは周知の上で、
自前でかっこよくセッション機能を組み入れる解説が欲しいのでは 実際問題としてWEBrickの目ぼしい弱点ってそこだけだし
- 403 名前:デフォルトの名無しさん [2008/02/07(木) 09:52:18 ]
- WEBrickのプロクシサーバって、アクセス先のデータを一回全部読み込んでるみたいだが、
ちょっとずつ読み込みながら返してくるようにしてほしい。
- 404 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:03:16 ]
- それはあまりRubyっぽい動作ではないな
RubyのIO系はメモリに一気に読み込んでから配列にしたりして1単位ずつ返したりするのが主流 Proxyっぽい動作ではないけどな
- 405 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:28:21 ]
- >>403
ああ、完全に同意。あの動作はクソすぎる。 >>404 メモリに一気に読み込むのを主流だとか馬鹿なことをいうのはやめてくれ。 IO#eachという一番わかりやすいメソッドを見てみろよ。
- 406 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:35:30 ]
- Net::HTTPResponse#read_body{|str| ...} は全部読み込んでから区切ってた気がする
- 407 名前:デフォルトの名無しさん [2008/02/07(木) 23:32:50 ]
- 煽りじゃなくて、Scheme(or Lisp)に有って、Rubyに無い機能ってある?
あるとしたら、その機能って必要?他の機能で代用可能? いろいろ細かいことも教えて。 (初心者スレから誘導されました。)
- 408 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:38:23 ]
- >>407
マクロ
- 409 名前:デフォルトの名無しさん [2008/02/07(木) 23:42:40 ]
- マクロはRubyの他の機能で代用可能ではないの?
あった方が便利?
- 410 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:46:19 ]
- >>409
何したいのか判らんけど代用可能かどうかの判断つかないんなら聞いても意味無くない?
- 411 名前:デフォルトの名無しさん [2008/02/07(木) 23:47:38 ]
- 代用可能ではないと判断した。けど、詳しい人なら代用方法を知っているかもしれない。だから聞いている。
- 412 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:22:18 ]
- >>402
CGI::Session の移植ならあね。 moonrock.jp/~don/ruby/#ID-WEBRICK
- 413 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:23:15 ]
- 代用というからには用途による。
あらゆる用途で同じように使えるなら、それはその機能そのものだ。
- 414 名前:デフォルトの名無しさん [2008/02/08(金) 00:25:30 ]
- こういう用途には代用になる、と言えばいい。
すべてを網羅しなくても思いつくだけ述べてくれて構わない。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:30:04 ]
- Schemeのマクロは文法拡張ができる。
Rubyでは文法拡張する方法はない。 でいいの?
- 416 名前:デフォルトの名無しさん [2008/02/08(金) 00:38:31 ]
- >>415
それは、例えば新しいif文を定義して、標準のif文と同じように使うことができるようになる、ということ? それが、Schemeでは出来て、Rubyでは出来ないと。正しい?
- 417 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:40:22 ]
- eval系列の命令でマクロっぽいことはできる。
attr_reader, attr_accessorもそれ
- 418 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:43:27 ]
- >>416
可能だが、どこまで自然になればOKなのかは使う人によるからな・・・ Rubyでも DSLは作られるが、 例えば、brainfu*k を再現するのは無理だろう
- 419 名前:デフォルトの名無しさん [2008/02/08(金) 00:50:38 ]
- lispってlispのソース上でbrainfu*kを再現できるの?()は出てこないの?
インタプリタを作るならlispでもRubyでもできるよね。それとは違うの?
- 420 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:52:42 ]
- >>416
普通の関数なら関数を呼び出す時点で引数の評価は完了しているが、 マクロなら引数を評価するタイミングをマクロ側で制御できる。 ruby でオレオレif を作るなら、if/else の本体を Proc で包んで渡すしかない。 じゃないと オレオレif 関数を読んだ時点で if/else の本体が実行さてしまうから。 それか Proc のシンタックスシュガーであるブロックをうまく使ってごまかすか。 このサスペンダーの人の記事も参考に。 blog.livedoor.jp/dankogai/archives/50996734.html
- 421 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:52:43 ]
- >>418
my_if(proc { cond }, proc { then_clause }, proc { else_clause }) は「文法拡張した」とはさすがに言えないだろう
- 422 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:48:53 ]
- >>421
いや、だから人によるってば >>419 インタプリンタつくって、文字列を実行してという話ではなくね。 お得意のマクロとやらでできるんじゃないのかな? > Lisp DSLをよく作るとか聞いた いや、おれはLisp詳しくないのだが・・・ ちなみに、Io-language だとかなりそのものに近ずけることができる。マクロなしに
- 423 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:08:56 ]
- >>422
人による、って程度じゃないだろ。 >>421が受け入れられるなら、cond、then_clause、else_clauseを文字列にして パーサ動かしてもいいってことか。
- 424 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:41:48 ]
- >>422
>標準のif文と同じように使うことができる が達成されてないじゃん。 これは主観ではなく客観で定義できる達成基準だぞ。
- 425 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:43:53 ]
- 揉めるなよ。
Matz的にはLispのマクロは「あまりに強力すぎる」ことに難があって、 Rubyをあえてそこまで行かせずにいるんだから。
- 426 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:46:10 ]
- Rubyでも構文木いじればけっこう何でもできるんじゃないかな
PycoのRuby版もできるかもしれない。ParseTreeはどうよ
- 427 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 13:56:50 ]
- ところでバイトコードからデコンパイルってできんのかな。
- 428 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:23:10 ]
- Rubyの構文木ってすげー内部的でなかった?
生のポインタに触らずにいじれそう?
- 429 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:58:18 ]
- Ruby もそろそろ smalltalk みたいになんでもオブジェクトして欲しい。
- 430 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:38:16 ]
- >>424はともかく
>>423 静的言語ばかり使ってきた俺には、lambdaなどでif文作っても、 文法が拡張されているように見えるんだ。 たぶん経験の違いだと思う。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 18:11:20 ]
- Ruby個人的には大好き・・・
- 432 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:41:11 ]
- Rubyまで「個人的に」とか断り付けなきゃいけないご時世か
普及したもんだなあ
- 433 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:44:40 ]
- 言ってることはよくわからんがとにかく凄い自信だ
- 434 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:14:52 ]
- Object.instance_methods が、1.8 だと String の配列で、1.9 からは Symbol の配列になるそうですが、
今まで MyClass.instance_methods.include?('methodname') としていたのを MyClass.instance_methods.include?(:methodname) としなければなりません。 1.8 と 1.9 の両方で使えるような書き方はありませんか。 arr = MyClass.instance_methods arr.include?('methodname') || arr.include?(:methodname) とか格好悪すぎる
- 435 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:21:03 ]
- .map{|m|m.to_s}
- 436 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:23:05 ]
- |m| って何の略?いや、気になったので
- 437 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:32:09 ]
- method names か何かだろ
m 自体は method の m だと思う 「文字列かシンボルのどっち来るかわからん場合は to_s しとけ」という >>435 のアプローチは妥当
- 438 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 22:50:47 ]
- >>434
> 今まで MyClass.instance_methods.include?('methodname') としていたのを その書き方はそもそも効率が悪い。 MyClass.method_defined?(:methodname)
- 439 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:42:14 ]
- >>425
「Scheme(or Lisp)に有って、Rubyに無い機能」であることは事実。 それがいいとか悪いとか言うつもりはない。 >>426 標準で構文木いじる方法がないってこと。 ParseTree は既存の文法でパースしたプログラムをいじることは できても、既存の文法自体は拡張できない。
- 440 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:35:56 ]
- javascriptのfunctionって最高じゃない?シンプルで。
rubyのproc、Proc.new、lambdaって何なの?同じようなのいくつも作って。馬鹿なの?
- 441 名前:あ [2008/02/09(土) 00:37:38 ]
- pythonとRuby、そんなに変らん
- 442 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:01:24 ]
- ECMAScript系はいいもんだね
サーバサイド実装も出て来てるし、今後RubyやPythonと比較されるユースケースが増えるかもなぁ。 現状では、利用形態がきっちり棲み分けてるから現実的に比べにくいかな。
- 443 名前:デフォルトの名無しさん [2008/02/09(土) 01:18:09 ]
- functionは長いからfunかfnか\がいい。
- 444 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:25:21 ]
- defで無名関数が定義できればいいのに。
- 445 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:27:43 ]
- lengthかlength()かで迷うのはもうごめんだお
- 446 名前:デフォルトの名無しさん [2008/02/09(土) 01:30:37 ]
- proc、Proc.new、lambdaを廃止して、全部defにしたら何か問題ある?
- 447 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:32:19 ]
- メソッドとクロージャは違う
- 448 名前:デフォルトの名無しさん [2008/02/09(土) 01:33:40 ]
- >>447
何が違う?具体的に。
- 449 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:35:02 ]
- def: メソッド
proc、Proc.new、lambda:クローじゃ でいいのかな?
- 450 名前:デフォルトの名無しさん [2008/02/09(土) 01:36:23 ]
- >>449
だから、defでクロージャーも定義できるようにして何か問題があるかと聞いている。 現状がどうかなんて聞いていない。
- 451 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:37:43 ]
- >>448
ブロックの外のローカル変数が見えるかどうか あと無名関数なんて全然defineしてないのにdefって名前はさすがにどうかと
- 452 名前:デフォルトの名無しさん [2008/02/09(土) 01:40:06 ]
- >>451
じゃあ、proc、Proc.new、lambda、defをobsoleteにして、全部funcにしたら何か問題ある?
- 453 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:42:17 ]
- >>451
そんなこと言ったらlambdaなんて何の意味もない名前だろ。
- 454 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:45:08 ]
- そういえば
proc,lambdaとProc.newじゃreturn等の挙動が変わるんだったな
- 455 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:46:30 ]
- 似て非なるものがゴチャゴチャあると紛らわしいから、functionにまとめてほしいな。
- 456 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:47:23 ]
- Ruby1.9って反面教師であるはずのPerlに怪奇しつつあるよな
もっとシンプルで速度10倍くらい速くする方向に進歩して欲しい
- 457 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:54:05 ]
- 速度の話ではシンプルさよかeval捨てるか否かが優先されるかと。
そういや旧macromediaもeval捨てた矢先にActionScriptの速度上げたな
|

|